Изменение виджета приводит к ошибке "Имя класса должно быть допустимым объектом или строкой"


Я использую hook_field_widget_properties_alter, чтобы успешно установить тип виджета для некоторых полей в "options_select", но при попытке установить для других значение entityreference_autocomplete, я получаю ошибку "Имя класса должно быть допустимым объектом или строкой в mysite\includes\common.inc". Вот код:

/*implementation of hook form alter*/
function mymodule_overrides_field_widget_properties_alter(&$widget, $context){ 
  // set widget type to options_select for field_expertisetags and og_group_ref
     $widget['module'] = 'entityreference';
     $widget['type'] = 'entityreference_autocomplete_tags';
}

Есть какие-нибудь соображения относительно причины?

 1
Author: kiamlaluno, 2013-06-26

1 answers

Я обнаружил, что целевое поле было такого типа, для которого требовались другие настройки. Я решил эту проблему, введя следующее:

$widget['active'] = '1';
$widget['#access'] = '1';
$widget['module'] = 'taxonomy';
$widget['type'] = 'taxonomy_autocomplete';
$widget['settings']['autocomplete_path'] = 'taxonomy/autocomplete';
$widget['settings']['size'] = '60';

Я также понял, что вы можете перейти к типу контента, выбрать тип поля, и базовый html для этого раскрывающегося списка покажет значение модуля типа поля, а настройки в раскрывающемся списке виджета покажут значение "тип", которое вам нужно использовать. Надеюсь, это кому-то поможет.

 1
Author: Jav, 2013-06-26 03:40:53