Comment faire pour désactiver un champ ou faire readonly dans Drupal 7
Je suis en train de désactiver couple de champs et de les rendre en lecture seule via hook_page_alter(). J'ai été en mesure de vérifier si l'utilisateur est l'affichage de la page edit de l'article (la forme edit)
$page['content']['system_main']['#node_edit_form'] == TRUE)
puis quand j'ai essayé de désactiver le couple de champs, j'ai constaté que la liste de sélection peut être désactivé par le présent code:
$page['content']['system_main']['field_my_field_name_a_select_list']['und']['#attributes']['disabled'] = TRUE;
mais si j'utilise le code suivant ne fonctionne pas:
$page['content']['system_main']['field_my_field_name_a_select_list']['und']['#disabled'] = TRUE;
J'ai aussi constaté que je ne peux pas utiliser le même code pour désactiver un champ zone de texte:
$page['content']['system_main']['field_my_text_area']['und']['#attributes']['disabled'] = TRUE;
Le code ci-dessus n'est pas de désactiver la zone de texte, mais le même code peut désactiver la liste de sélection!
Ensuite, j'ai essayé hook_form_alter() pour faire la même chose, et j'ai été en mesure de désactiver les champs et quand j'ai vérifié le rendu de la matrice de $tableau page, j'ai vu ce qu'il montre:
$page['content']['system_main']['field_my_field_name_a_select_list']['und']['#disabled'] = TRUE;
mais quand j'ai mis le même code dans hook_page_alter(), ça ne fonctionne pas. Ressemble à quelque chose d'autre va le remplacer, j'ai pensé que hook_page_alter() est le dernier endroit pour changer de balisage.
Aucune idée de quel est le meilleur moyen de le désactiver/readonly tout type de terrain, à l'intérieur de hook_page_alter() dans drupal 7?
Merci
Vous devez vous connecter pour publier un commentaire.
Il fonctionne pour les champs de texte^
hook_form_alter
Comme il l'a dit dans les docs
Vous pouvez utiliser des attributs :