Как установить значение поля с помощью 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,

Другие вопросы по тегам