J'essaye de stocker par programme des noeuds de type CCK en utilisant drupal_execute(). Les nœuds vides sont créés. aucun des champs CCK n'est sauvegardé. De toute évidence la première ligne drupal_process_form() est responsable:
$form_state['values'] = array();
Alors ma question est pourquoi s'efface « valeurs », et plus important encore, comment puis-je enregistrer les champs CCK en utilisant drupal_execute()?
J'ai essayé save_node() aussi qui a bien fonctionné; cependant je préférerais le premier puisqu'il invoque la validation.
Merci pour l'explication. Je pense que j'ai rencontré ce fil auparavant; ça a été utile. Je fais face à plus de 200 champs dans un seul type (c'est juste un prototype, il devrait être normalisé par la suite) pour le moment, et il est plutôt difficile de localiser le coupable. J'ai remarqué que form_get_errors() émet des messages concernant uniquement les champs standard tels que title; Y at-il peut-être une manière différente d'extraire les erreurs de validation? – Stan
@Stan: Il n'y a pas de façon différente que je connais. Êtes-vous sûr que ce n'est pas juste un problème de synchronisation (poids), c'est-à-dire que votre appel à 'form_get_errors()' se produit avant que les fonctions de validation de CCK ne soient appelées? –
Bien 'form_get_errors()' est appelé juste après 'drupal_execute()'. Je vais utiliser 'node_save()' pour le moment ou jusqu'à ce que le nombre de champs devienne plus gérable. – Stan