Я хочу вызвать drupal_execute () для полей cck (DateTime user_reference), но он ничего не сохраняет в БД - PullRequest
0 голосов
/ 23 октября 2010

У меня есть тип контента в качестве элемента списка задач.У него есть некоторые поля cck, такие как дедлайн (в формате DateTime) и assign_user (поле ссылки пользователя).Я хочу использовать функцию drupal_execute для программного создания такого узла, но после полного количества ошибок, таких как

предупреждение: call_user_func_array () [function.call-user-func-array]: ожидается первый аргументчтобы быть действительным обратным вызовом, 'views_access' был задан в ..include / menu.inc в строке 454.

и при создании узла его значения 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 Ответ

2 голосов
/ 23 октября 2010

вам не нужно использовать drupal_execute. Вы можете создать свой объект узла, как вы хотите, и в и вы вызываете:

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

узел сохранения затем вызовет CCK, чтобы попросить правильно сохранить поле в БД.

...