Drupal 6 - 我正在使用drupal_execute将CCK节点插入我的站点。除分类学外,一切都在发挥作用

时间:2010-06-09 21:37:35

标签: drupal drupal-6 cck

  $form_state['values']['field_prx_mp3_labels'][0][value] = $mp3_labels;  
  $form_state['values']['taxonomy'][0][value] = array('tags'=>array('1'=>'Music'));  
  $errs = drupal_execute('prx_content_node_form', $form_state, (object) $nodeTmp);  

这是一个Drupal 6网站。我正在使用drupal_execute以编程方式创建节点。第一行适用于field_prx_mp3_labels。第二个(分类法)不是。

以下是我在cck节点上添加的选项如下所示:

<select name="taxonomy[2][]" multiple="multiple"  class="form-select" id="edit-taxonomy-2"  size="9"><option value="">- None -</option><option value="5">Music</option><option value="6">-Rock/Pop</option><option value="7">-Jazz/Blues</option><option value="8">-Classical</option><option value="9">-Music Documentaries</option><option value="10">-Festivals/Concerts</option><option value="11">Arts</option><option value="19">-Literature</option><option value="12">Nature</option><option value="13">History</option><option value="15">-Music</option><option value="14">Culture</option><option value="17">-American Indian</option><option value="18">-Latino</option><option value="16">-Youth Perspective</option></select> 

我为第2行尝试了许多变体(与分类有关)。

这条评论似乎很接近,但对我来说没有用: http://drupal.org/node/178506#comment-1155576

谢谢!

2 个答案:

答案 0 :(得分:1)

不是[值]必须在引号中吗?

你是否试过这个:

$form_state['values']['taxonomy'] = array('tags'=>array('1'=>'Music'));

答案 1 :(得分:0)

我最后以不同的方式做到了。基本上我运行drupal_execute来推送Drupal中的CCK内容。在运行之后,我查询数据库以获取刚刚插入的节点的ID。然后我获取该ID并运行一个循环,将分类关系直接插入term_node表。

这可能导致的问题是在drupal_execute期间分类信息不可用。这意味着如果您依赖于部分pathauto /别名规则的分类法,那么分类法将无法使用。