Dans _field_info_prepare_extra_fields()
les champs supplémentaires sont définis comme visibles par défaut, mais les paramètres de champ supplémentaires sont stockés dans la variable field_bundle_settings que vous pouvez modifier dans votre module hook_install()
comme:
$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 () , le rappel de pré-rendu utilisé par field_attach_form () et field_attach_view () , contient le code suivant:
En implémentant hook_field_extra_fields_display_alter () , vous pouvez modifier le paramètre de visibilité, mais cela rendrait le champ non visible tout le temps que le formulaire est affiché. Si vous ne souhaitez pas afficher le champ lors du premier chargement du formulaire et l'afficher lorsque, par exemple, un autre champ de formulaire est sélectionné ou sa valeur est modifiée, vous devez utiliser du code JavaScript.
la source
<hidden>
d'abord.hook_field_extra_fields()
. Vous pouvez cependant modifier le champ de formulaire ou modifier le formateur utilisé par le champ.Il y a un patch pour ajouter cette capacité au noyau drupal.
Si vous voulez voir cela entrer, veuillez l'examiner et donner votre avis.
http://drupal.org/node/1256368#comment-7201552
la source
Dans le crochet d'installation de votre module, vous pouvez appeler une fonction similaire à celle-ci et elle masquera vos champs supplémentaires par défaut.
la source
Exemple tellement plus simple. Pour Drupal 7 Créez example_module.install sous le répertoire example_module
Documentation pour hook_install https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_install/7
Dans votre fichier example_module.module, ajoutez
Documentation pour hook_field_extra_fields https://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_extra_fields/7
la source