Drupal 5: поля CCK в пользовательском типе контента
У меня есть модуль, который реализует пользовательский тип контента через хуки 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 ответ
Я считаю, что поле
$node->field_flag[0]['value']
Именно так в Drupal 6, он не следует фактическому имени поля или имени поля таблицы. Самый простой способ увидеть, что это за поле - заполнить узел, а затем вывести его, чтобы увидеть его структуру. Это даст вам имя, которое он ожидает в node_save. Я не использовал Drupal 5 некоторое время, но вы не можете быть слишком далеко. Вы близки.