Вопрос к гуру.
Программно создается нода с imagefield'ом.
После того, как объект $node сформирован делаю, как положено, node_submit и node_save.
Нода сохраняется, картинки сохраняются, но к картинкам нет title и alt.
Причем, если стоит модуль Imagefield Tokens, то он срабатывает только в том случае, если войти в редактирование созданной ноды и заново её сохранить.
Решил прописывать title и alt самостоятельно при создании ноды, но при первом node_save сделать этого нельзя, так как по сути объект imagefield еще не сформирован, поэтому приходится сохранять ноду, дописывать alt и title, а потом еще раз сохранять ноду.
Вопрос. Можно ли это сделать как-то более изящно? Потому что два подряд node_save меня напрягают.
Комментарии
http://api.drupal.org/api/drupal/includes%21form.inc/function/drupal_exe...
В $form_state прописываете все данные, которые вам нужно сохранить.node_submit и node_save - не нужны
Кстати, спасибо. Не додумался до этого.
Кстати, где-то вычитал, что drupal_execute выполняется дольше, чем node_save и использовать его нужно исключительно там, где без него вообще никак.
drupal_execute выполняет имитацию отправки формы - с валидацией, сабмитами и прочее. Если вам нужно именно это - юзайте
array(
'fid' => $file->fid,
'title' => basename($file->filename),
'filename' => $file->filename,
'filepath' => $file->filepath,
'filesize' => $file->filesize,
'mimetype' => $mime,
'description' => basename($file->filename),
'list' => 1,
'data'=>array('alt' => 'image alt',
'title' => 'image title',
),
),
);