Как установить значение поля с помощью API поля?
Я использую API-интерфейс поля Drupal 7, который выглядит великолепно: я могу добавить настраиваемое поле для типа сущности 'user' и редактировать в GUI.
я использую field_get_items($entity_type, $entity, $field)
чтобы получить значения настраиваемого поля.
Теперь мне нужно программно установить значение моего настраиваемого поля.
Как я могу это сделать? Я не могу найти field_set_items()
вызов функции в любом месте документации Drupal API.
1 ответ
Нет функции для установки значения поля. Как правило, вы можете установить значение поля с помощью следующего кода.
$entity->$fieldname[$language][$delta] = $value;
Что меняется для каждого поля - это массив, который вы передаете $value
, Например, поле тела узла использует следующую структуру.
array(
'value' => 'Empty text. Revision 3.',
'summary' => '',
'format' => 'full_html',
'safe_value' => '<p>Empty text. Revision 3.</p>',
'safe_summary' => '',
);
Структура, используемая для термина таксономии, следующая.
array(
'tid' => 4,
);
$delta
это значение, которое обычно равно 0, но для полей с несколькими значениями оно может иметь любое значение, если оно не превышает максимальное количество значений, которое оно может получить (которое может быть установлено в пользовательском интерфейсе для определенного поля),$language
это идентификатор языка, и он также может быть установлен на LANGUAGE_NONE
,