Если вам программно нужно изменить настройки поля в Drupal, то на помощь приходит Field CRUD API. Это набор функций из файла modules/field/field.crud.inc.
Подробное описание всех функций смотрите вот тут.
А далее я покажу типовой пример кода, который можно использовать для вашего случая как шаблон. Задача изменения поля обычно реализуется через написание hook_update вашего модуля, т.к. настройки типично меняются один раз при выполнении процедуры ‘run updates’ (/update.php).
1 2 3 4 5 6 7 8 9 10 11 |
/** * Update field settings */ function HOOK_update_N() { // загрузим текущее значение $instance = field_read_instance('ENTITY_TYPE', 'FIELD_NAME', 'BUNDLE_NAME'); // поменяем его $instance['...'] = '...'; // сохраним обратно в базу field_update_instance($instance); } |
Настройки представляют собой сложный ассоциативный массив, пример можете посмотреть ниже. Некоторые параметры, например длина поля, не достаточно изменить в настройках, чтобы они применились к структуре базы данных. Может потребоваться выполнить ряд запросов непосредственно на языке sql.
Пример кода, меняющий длину поля программно, вы можете посмотреть в другой статье.