Создайте узел программно и установите значения его поля CCK
Я попробовал технику, описанную здесь: http://lucasforge .2bopen.org/2010/06/drupal-6-create-a-node-with-cck-fields-programmatically/
И здесь: http://drupal.org/node/1111514
Похоже, ни то, ни другое не работает. Узел создается, но поле CCK, которое я пытаюсь установить, никогда не устанавливается.
Оба они просто описывают использование "имя_поля[0]['значение'] = 'что-то'", но даже если я задам значение поля через веб-форму и DSM, результат у него никогда не задано "значение", просто "#default_value".
Я попытался установить "имя_поля[0]['#значение по умолчанию'][0]['nid'] = 'mynodeid'", но это тоже не сработало.
Это структура поля CCK, которую я пытаюсь установить:
field_application_discipline_id (Array, 13 elements)
#type (String, 20 characters ) nodereference_select
#default_value (Array, 1 element)
#required (String, 1 characters ) 0
#columns (Array, 1 element)
#title (String, 13 characters ) Discipline ID
#description (String, 0 characters )
#delta (Integer) 0
#field_name (String, 31 characters ) field_application_discipline_id
#type_name (String, 11 characters ) application
#tree (Boolean) TRUE
#weight (String, 2 characters ) 31
#access (Boolean) TRUE
#count (Integer) 9
Есть идеи, почему это не сработает?
1 answers
Для полей nodereference вы должны использовать "nid" вместо "значение".
//123 is the nid of the node you want to reference
$node->field_application_discipline_id[0]['nid'] = 123;
Лучший способ узнать, какую переменную использовать, - это установить Модуль разработки и просмотреть вкладку разработка рядом с вкладкой просмотр/редактирование на странице узла.