2013-10-26 6 views
0

У меня есть сайт, который показывает картины художников. На каждой странице рисунка есть раздел под названием «связанные картины». Это связанная область, которая дает пользователю администратора возможность отмечать другие связанные картины.Установка значений по умолчанию для поля в drupal 6 admin

Я хотел бы пометить картины того же художника по умолчанию, поэтому администратору это не нужно. Первоначально я сделал это, и он работает, но, очевидно, только помечает одну картину:

return array(
    0 => array('nid' => '278') 
); 

Тогда я попробовал это, что делает работу в шаблоне, то он производит массив в правильном формате:

$artist_nid = $node->field_artist[0]["nid"]; 
$artist_paintings = node_load($artist_nid)->field_painting_nodes[0]    ["items"]; 
$a = array(); 
foreach ($artist_paintings as $painting) { 
    $a[] = array('nid' => $painting["nid"]); 
} 

Но это не работает, когда называется, я получаю ошибку:

warning: Invalid argument supplied for foreach() in /home/will/sites/modernprints/www/sites/all/modules/cck/content.module(2220) : eval()'d code on line 4.  

Я предполагаю, что $ узлы не существует или что-то в этом контексте? Какие переменные доступны?

ответ

0

Я только что понял, что то, что я пытаюсь сделать, полностью испорчено - при добавлении новой картины узел еще не существует, поэтому вы не можете получить художника и картины художников.

Это может сработать, если пользователь сохранил его первым, но это не очень удобно.

Единственный способ сделать это правильно - это использовать javascript, т. Е. Отключить событие, когда пользователь выбрал исполнителя, чтобы выбрать связанные иллюстрации.

Смежные вопросы