При реализации hook_field_extra_fields () я могу сделать дополнительное поле скрытым по умолчанию?
Иногда удобнее предлагать дополнительные поля в качестве опции, а не отображать их сразу после включения модуля.
При реализации hook_field_extra_fields () я могу сделать дополнительное поле скрытым по умолчанию?
Иногда удобнее предлагать дополнительные поля в качестве опции, а не отображать их сразу после включения модуля.
В _field_info_prepare_extra_fields()
дополнительных полях по умолчанию установлено видимое, но настройки дополнительных полей хранятся в переменной field_bundle_settings, которую вы можете изменить в вашем модуле hook_install()
следующим образом:
$entity_type = 'node';
$bundle = 'article';
$field_name = 'my_extra_field';
$view_mode = 'teaser';
$field_bundle_setting = variable_get('field_bundle_settings', array());
$field_bundle_setting[$entity_type][$bundle]['extra_fields']['display'][$field_name][$view_mode]['visible'] = FALSE;
variable_set('field_bundle_settings', $field_bundle_setting);
_field_extra_fields_pre_render () , обратный вызов перед рендерингом, используемый field_attach_form () и field_attach_view () , содержит следующий код:
Реализуя hook_field_extra_fields_display_alter () , вы можете изменить настройку видимости, но это сделает поле невидимым все время, пока отображается форма. Если вы не хотите показывать поле при первой загрузке формы и показывать его, когда, например, выбрано другое поле формы или изменено его значение, вам необходимо использовать некоторый код JavaScript.
источник
<hidden>
на первом.hook_field_extra_fields()
. Вы можете изменить поле формы или форматер, используемый этим полем.Существует патч, чтобы добавить эту способность в ядро друпала.
Если вы хотите увидеть это, пожалуйста, просмотрите его и оставьте отзыв.
http://drupal.org/node/1256368#comment-7201552
источник
В хуке установки вашего модуля вы можете вызвать функцию, подобную этой, и она по умолчанию скроет ваши дополнительные поля.
источник
Намного проще. Для Drupal 7 Создайте example_module.install в каталоге example_module
Документация для hook_install https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_install/7
В вашем файле example_module.module добавьте
Документация для hook_field_extra_fields https://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_extra_fields/7
источник