Вы здесь

Как программно заполнить поле с неограниченным количеством значений?

0

Добрый день, у меня программно создаётся/обновляется пользователь на сайте, и по ходу создания заполняются дополнительные поля. Когда поле имеет одно значение всё достаточно просто

      Create user
      'field_user_title_subdepartment' => array(LANGUAGE_NONE => array(array('value' => $data->title_subdepartment))),
      'field_user_phone' => array(LANGUAGE_NONE => array(array('value' => $data->phone))),
      'field_user_hash' => array(LANGUAGE_NONE => array(array('value' => $data->hash))),

      Update user
      $user_fields->field_user_title_subdepartment['und'][0]['value'] = $data->title_subdepartment;
      $user_fields->field_user_phone['und'][0]['value'] = $data->phone;
      $user_fields->field_user_hash['und'][0]['value'] = $data->hash;      

А теперь стала задача программно заполнить поле Роли (текстовое поле с неограниченным количеством значений)
Причём у меня задача состоит из двух подзадач, данные которые приходят для заполнения представляют собой большую строку, где значение разделяются символом | , т.е. например на входе:

Администратор|Модератор|Эксперт

Мне нужно его разбить как бы в перечень значений, и занести их при создании или изменении пользователя (в случае изменения, нужно старые значения все удалить и просто вставить новые)

Строку на входе получается я explode-ю, а дальше как то циклом нужно поместить в поле

$input_roles = 'Администратор|Модератор|Эксперт';
$array_roles = explode('|', $input_roles);
foreach ($array_roles as $role)
{
 ...
}
Версия Drupal: 
7.x
Категория: 
Field API
Вопрос задан 03.09.2019 - 14:56

Ответы