我想为crck字段调用drupal_execute()(DateTime user_reference),但它不会在DB中保存任何内容

时间:2010-10-23 17:47:18

标签: drupal drupal-6 cck

我有一个内容类型作为待办事项列表元素。它有一些cck字段,如截止日期(以DateTime格式)和assigned_user(用户引用字段)。我想使用函数drupal_execute以编程方式创建这样的节点,但在出现诸如

之类的错误之后
  

警告:call_user_func_array()[function.call-user-func-array]:第一个参数应该是一个有效的回调,第454行的..includes / menu.inc中给出了'views_access'。

并创建节点,其cck值为NULL。这是我的代码

    $form_state = array();
$form_state['values'] = array(
    'title' => $title,
    'body' => $description,
    'name' => $GLOBALS['user']->name,
    'op' => t('Save'),
    'field_deadline' => array(
                0=> array('value'=>array('month'=>1,
                            'day'=>1,
                            'year'=>2011,
                            'hour'=> 1,
                            'minute'=> 1
                            ))      
            ),
    'field_notification_time' => array(
                0=> array('value'=>array('month'=>10,
                            'day'=>24,
                            'year'=>2010,
                            'hour'=> 0,
                            'minute'=> 24
                            ))      
            ),
    'field_assign_user' => array(
                0=> array(
                    'uid' => array( 'uid'=> 'user1')
                    )
            ),
);

$ node =(object)array(     'type'=> 'todo_element'); module_load_include('inc','node','node.pages'); drupal_execute('todo_element_node_form',$ form_state,$ node);

1 个答案:

答案 0 :(得分:2)

您不需要使用drupal_execute。您可以根据需要创建节点对象,然后调用:

$node = node_submit($node);
node_save($node);

节点保存然后将调用CCK以要求在DB中正确保存字段。