Drupal 5: поля CCK в пользовательском типе контента - PullRequest
3 голосов
/ 22 марта 2010

У меня есть модуль, который реализует пользовательский тип контента через хуки NodeAPI (hook_insert, hook_update и т. Д.). Я хочу добавить поле CCK к этому типу контента и заполнить его с помощью вызовов hook_nodeapi, таких как create или update (чтобы показать узлы контента в Views).

Проблема в том, что я не могу получить доступ к полям CCK для этого типа контента. Конечно, он включен на странице «Управление полями», но когда я загружаю любой узел этого типа с модулем Devel, я не вижу атрибута поля (field_flag) в объекте узла. Я вижу его на вкладке «Dev Render» как часть атрибута «content», например $node->content['field_flag']['#value'], но если я назначу значение $node->field_flag или $node->content['field_flag']['#value'] и вызову node_save, поля CCK не сохранятся. *

Может быть, я должен вызвать какую-то другую функцию для сохранения полей CCK? Или что может быть не так с этой настройкой?

1 Ответ

1 голос
/ 22 марта 2010

Я считаю, что поле

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

Это так в Drupal 6, он не следует фактическому имени поля или имени поля таблицы. Самый простой способ увидеть, что это за поле - заполнить узел, а затем вывести его, чтобы увидеть его структуру. Это даст вам имя, которое он ожидает в node_save. Я не использовал Drupal 5 некоторое время, но вы не можете быть слишком далеко. Вы рядом.

...