2010-10-23 17 views
0

J'ai un type de contenu comme élément de liste de tâches. Il a des champs cck comme deadline (au format DateTime) et assigned_user (un champ de référence utilisateur). Je veux utiliser la fonction drupal_execute pour créer un tel noeud programme, mais après un plein d'erreurs commeJe veux appeler drupal_execute() pour les champs cck (DateTime user_reference) mais il n'enregistre rien dans la base de données

avertissement: call_user_func_array() [function.call-utilisateur func-tableau]: Le premier argument devrait être un callback valide, 'views_access' a été donné dans ..includes/menu.inc sur la ligne 454.

et en créant le noeud, ses valeurs cck sont NULL. c'est mon code

$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') 
        ) 
      ), 
); 

noeud $ = (objet) tableau ( 'type' => 'todo_element'); module_load_include ('inc', 'node', 'node.pages'); drupal_execute ('todo_element_node_form', $ form_state, $ noeud);

Répondre

2

vous n'avez pas besoin d'utiliser drupal_execute. Vous pouvez créer votre objet de nœud que vous voulez et à vous appeler:

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

sauvegarde puis appellera CCK demander d'enregistrer correctement le champ dans la base de données.