2010-03-22 19 views
3

J'ai un module qui implémente le type de contenu personnalisé via les hooks NodeAPI (hook_insert, hook_update etc.). Je souhaite ajouter un champ CCK à ce type de contenu et le remplir via des appels hook_nodeapi comme créer ou mettre à jour (pour afficher les nœuds de contenu dans les vues).Drupal 5: champs CCK dans le type de contenu personnalisé

Le problème est que je ne peux pas accéder aux champs CCK pour ce type de contenu. Bien sûr, il est activé sur la page "Gérer les champs", mais lorsque je charge un nœud de ce type avec le module Devel, je ne peux pas voir l'attribut de champ (field_flag) dans l'objet nœud. Je peux le voir sous l'onglet "Dev Render" en tant qu'élément de l'attribut "content", comme $node->content['field_flag']['#value'], mais si j'affecte la valeur à $node->field_flag ou $node->content['field_flag']['#value'] et appelez node_save, les champs CCK ne sont pas sauvegardés.

Peut-être que je dois appeler une autre fonction pour enregistrer les champs CCK? Ou qu'est-ce qui ne va pas avec cette configuration?

Répondre

1

Je crois que le champ est

$node->field_flag[0]['value'] 

Il est ainsi dans Drupal 6, il ne suit pas le nom réel du nom du champ champ ou une table. Le moyen le plus simple de voir ce que le champ est est de remplir un nœud, puis de le vider pour voir sa structure. Cela vous donnera le nom qu'il attend dans node_save. Je n'ai pas utilisé Drupal 5 depuis un moment, mais vous ne pouvez pas être trop loin. Tu es proche.

+0

Merci, c'est ça :) Il semble que Devel ne me montrera pas ce champ s'il n'a pas été paramétré. –