Как установить значение поля с помощью API поля?

Я использую API полей Drupal 7, что кажется отличным: я могу добавить настраиваемое поле для типа сущности «пользователь» и редактировать его в графическом интерфейсе.

Я использую field_get_items($entity_type, $entity, $field) для получения значений настраиваемых полей.

Теперь мне нужно программно установить значение моего настраиваемого поля.

Как мне это сделать? Я не могу найти field_set_items() вызов функции в документации API Drupal.


person Keith Palmer Jr.    schedule 07.04.2012    source источник


Ответы (1)


Нет функции для установки значения поля. Обычно вы можете установить значение поля с помощью следующего кода.

$entity->$fieldname[$language][$delta] = $value;

Для каждого поля изменяется массив, который вы передаете в $value. Например, поле body узла использует следующую структуру.

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.

person apaderno    schedule 07.04.2012