2010-09-29 3 views
2

Je ne comprends vraiment pas pourquoi cela ne fonctionne pas. Je souhaite éviter qu'un élément de formulaire spécifique soit réduit.Drupal: comment puis-je éviter que cet élément de formulaire soit réduit?

Ceci est mon élément que je veux modifier (après le changement avec le code ci-dessous):

[taxonomy] => Array 
     (
      [tags] => Array 
       (
        [1] => Array 
         (
          [#type] => textfield 
          [#title] => Tags 
          [#description] => A comma-separated list of terms describing this content. Example: funny, bungee jumping, "Company, Inc.". 
          [#required] => 0 
          [#default_value] => 
          [#autocomplete_path] => taxonomy/autocomplete/1 
          [#weight] => 0 
          [#maxlength] => 1024 
          [#collapsed] => 0 
          [#collapsible] => 0 
         ) 

        [#collapsed] => 0 
        [#collapsible] => 0 
       ) 

      [#weight] => -3 
      [#tree] => 1 
      [#collapsed] => 0 
      [#collapsible] => 0 

Ceci est mon code dans hook_form_alter (je suis sûr que le formulaire est modifié par le code):

$form['taxonomy']['#collapsed'] = 0; 
$form['taxonomy']['tags']['#collapsed'] = 0; 
$form['taxonomy']['tags'][2]['#collapsed'] = 0; 

$form['taxonomy']['#collapsible'] = 0; 
$form['taxonomy']['tags']['#collapsible'] = 0; 
$form['taxonomy']['tags'][3]['#collapsible'] = 0; 

Mais cela ne fonctionne pas. L'élément est toujours réduit. Et je l'ai rafraîchi toutes les caches alt text

http://dl.dropbox.com/u/72686/tagsform.txt

Update2:

$form['taxonomy']['#required'] = TRUE; 
$form['taxonomy']['tags']['#required'] = TRUE; 
$form['taxonomy']['tags'][5]['#required'] = TRUE; 

alt text

+0

Quels sont les tags #type? fieldset? – IcanDivideBy0

+0

@Tarentrulle uhm, c'est le titre du domaine. Attendez que j'ai joint une capture d'écran du champ pour le rendre plus clair (évidemment après avoir cliqué pour le décrocher) – aneuryzm

+0

si vous le pouvez s'il vous plaît poster la sortie complète de l'print_r pour le formulaire. J'ai la même question que @Tarentrulle – mirzu

Répondre

0

à partir du tableau que vous avez publié, il semble que vous essayez de régler l'élément de forme avant module taxonomie il se fait dans un fieldset (notez qu'il n'y a pas de déclaration '#type' => 'fieldset' dans ce tableau). Si vous regardez taxonomy_form_alter(), vous pouvez voir que c'est dans cette implémentation hook_form_alter() que le tableau de taxonomie du noeud est converti en éléments API de formulaires.

Donc je suppose que vos ajustements résident dans une mise en œuvre hook_form_alter() qui court avant celle du module de taxonomie, de sorte que vos déclarations pour les états faillis seront écrasés par le module de taxonomie immédiatement après que vous les définissez. Essayez de adjust your modules weight à quelque chose de plus élevé que celui du module de taxonomie et voyez si cela change les choses. (Sachez que le fait de changer le poids peut avoir d'autres effets sur votre module, alors testez-le soigneusement après l'avoir fait!)

+0

ok, nous sommes plus proches, mais toujours pas parfait.J'ai réduit le poids de la taxonomie du module (-9) et de la supersélection de la taxonomie (-10) et j'ai joint la nouvelle capture d'écran à la question. Comme vous pouvez le voir il y a une amélioration mais les cases à cocher ne sont pas affichées. J'ai essayé de jouer avec ces valeurs (ie taxonomie (-11 ou -10) mais je ne peux obtenir que ce résultat ou l'effondrement total) – aneuryzm

+0

en général J'essaie de faire de mon module personnalisé le dernier en cours d'exécution donc je vais le donner Comme vous pouvez être sûr que les tableaux que vous obtenez ne seront pas affectés par les modules contrib, j'essaierais de mettre votre module en dernier et de poster le tableau qui est sorti. faites les changements à partir de là – mirzu

+0

@Patrick: Je vous suggère de modifier le poids de vos modules, pas celui des autres, vous ne devez pas modifier le poids d'un module de base, jusqu'à ce que vous sachiez exactement ce que vous faites! [taxonomy weight] +1, donc il veut exécuter _after_ taxonomy (vous l'avez configuré pour s'exécuter avant) –

0

Il devrait y avoir theme_ ou la fonction pre_process_ qui changent la façon dont la sortie est imprimée , je ne peux pas voir les cases à cocher sous le champ de texte dans le tableau $ form ... D'où viennent ces cases à cocher, peut venir le fieldset.

+0

Je pensais pouvoir spécifier la propriété "collapsing" pour tous les éléments dans hook_form_alter. Au lieu de cela, certains modules le contournent? par traiter l'élément avant? Par ailleurs, le module est Taxonomy SuperSelect (drupal.org/project/taxonomy_super_select) – aneuryzm

+0

@Patrick @ Henrik-Opel a obtenu le point, dans taxonomy_super_select, il y a un merveilleux '' taxonomy_super_select_form_alter '' qui '' unset ($ form ['taxonomie '] [' tags '] [$ vid]);' 'puis' '$ form [' taxonomy '] [' tags '] [...]' 'est reconstruit par le module – IcanDivideBy0

+0

Je n'y suis pas allé Profondément dans le code, mais il semble que si vous définissez la taxonomie comme requis, il sera étendu – IcanDivideBy0

Questions connexes