Drupal 5: поля CCK в настраиваемом типе содержимого

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

Проблема в том, что я не могу получить доступ к полям CCK для этого типа содержимого. Конечно, он включен на странице "Управление полями", но когда я загружаю любой node этого типа с помощью модуля Devel, я не могу видеть атрибут поля (field_flag) в объекте node. Я вижу это под вкладкой "Демонстрация" как часть атрибута "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, а затем выгрузить его, чтобы увидеть его структуру. Это даст вам имя, которое оно ожидает в node_save. Я не использовал Drupal 5 некоторое время, но вы не можете быть слишком далеко. Вы близки.

licensed under cc by-sa 3.0 with attribution.