在 drupal 6 admin 中设置字段的默认值


Setting default values of a field in 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.    

我猜$node不存在或在这种情况下?有哪些变量可用?

我刚刚意识到我正在尝试做的事情是完全有缺陷的 - 添加新绘画时,节点尚不存在,因此您无法获得艺术家和艺术家的绘画。

如果用户先保存它,它可能会起作用,但这不是很方便。

正确执行此操作的唯一方法是使用javascript,即一旦用户选择了艺术家来选择相关的绘画复选框,就会触发一个事件。