Computed Field "заводится" только со второго раза

Главные вкладки

Аватар пользователя Sergey1 Sergey1 19 февраля 2008 в 19:20

Сделал Computed Field, которое компилирует в ссылку несколько параметров, указываемых в других полях CCK ноды. Все отлично работает, кроме одного параметра - $node->path. Он почему-то прописывается в моем Computed только со второго раза, при повторном сохранении ноды. Так и должно быть? Видимо, $node->path формируется только после нажатия на Submit, да? А можно ли как-нибудь обойти это? Например, обсчитывать Computed динамически, не обращаясь к базе?

Вот мой код текущий код:
Computed Code:

if (!$node->nid) node_save($node);
$node_field[0]['value']="<a href=\"/".$node->path."\"> <img src=\"".$node->field_teaser_image_url[0]['value']."\" alt=\"".t($node->title)."\"/></a>";

Display Format:
$display = $node_field_item['value'];

Поле хранится в базе как varchar длиной 1024

Комментарии

Аватар пользователя Sergey1 Sergey1 19 февраля 2008 в 19:40

В принципе решил - просто снес галку "хранить в базе". Все динамически пересчитывается, для небольшого проекта нагрузка не критична

Аватар пользователя Dimm Dimm 20 февраля 2008 в 14:45

А работает нормально?
У меня почему-то если в базу не сохраняешь - то вычисленное значение не выводится Sad

Аватар пользователя Sergey1 Sergey1 23 февраля 2008 в 19:40

Потом опять включил хранение в базе - что-то загадочное с этим Computed, надо пересохранять надо, чтобы оно пересчиталось