Программное создание imagefield поля, Alt и Title - Пичалька.

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

Аватар пользователя Koreychenko Koreychenko 15 мая 2012 в 12:21

Вопрос к гуру.

Программно создается нода с imagefield'ом.

После того, как объект $node сформирован делаю, как положено, node_submit и node_save.

Нода сохраняется, картинки сохраняются, но к картинкам нет title и alt.

Причем, если стоит модуль Imagefield Tokens, то он срабатывает только в том случае, если войти в редактирование созданной ноды и заново её сохранить.

Решил прописывать title и alt самостоятельно при создании ноды, но при первом node_save сделать этого нельзя, так как по сути объект imagefield еще не сформирован, поэтому приходится сохранять ноду, дописывать alt и title, а потом еще раз сохранять ноду.

Вопрос. Можно ли это сделать как-то более изящно? Потому что два подряд node_save меня напрягают.

Комментарии

Аватар пользователя Koreychenko Koreychenko 16 мая 2012 в 19:33

"emzzy" wrote:
В $form_state прописываете все данные, которые вам нужно сохранить.node_submit и node_save - не нужны

Кстати, спасибо. Не додумался до этого.
Кстати, где-то вычитал, что drupal_execute выполняется дольше, чем node_save и использовать его нужно исключительно там, где без него вообще никак.

Аватар пользователя emzzy emzzy 16 мая 2012 в 23:43

drupal_execute выполняет имитацию отправки формы - с валидацией, сабмитами и прочее. Если вам нужно именно это - юзайте

Аватар пользователя gaydabura gaydabura 17 мая 2012 в 12:12
$node->field_img_mycoolimage = array(
    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',
                ),
),
);