Изменение виджета приводит к ошибке "Имя класса должно быть допустимым объектом или строкой"
Я использую 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 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 для этого раскрывающегося списка покажет значение модуля типа поля, а настройки в раскрывающемся списке виджета покажут значение "тип", которое вам нужно использовать. Надеюсь, это кому-то поможет.