Drupal: как я могу избежать свертывания этого элемента формы? - PullRequest
2 голосов
/ 29 сентября 2010

Я действительно не понимаю, почему это не работает.Я хочу не допустить сворачивания определенного элемента формы.

Это мой элемент, который я хочу изменить (после изменения с кодом ниже):

 [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

Это мой код в hook_form_alter(Я уверен, что форма изменена кодом):

 $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;

Но это не работает.Элемент всегда свернут.И я обновил все кэши alt text

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

Обновление2 :

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

alt text

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Из массива, который вы разместили, похоже, что вы пытаетесь настроить элемент формы до того, как модуль таксономии фактически превратил его в набор полей (обратите внимание, что в этом массиве нет объявления '#type' => 'fieldset'). Если вы посмотрите на taxonomy_form_alter(), то увидите, что именно в этой реализации hook_form_alter() массив таксономии в узле «конвертируется» в фактические элементы API форм.

Так что я предполагаю, что ваши корректировки находятся в реализации hook_form_alter(), которая выполняется до реализации модуля таксономии, так что ваши объявления для свернутых состояний перезаписываются модулем таксономии сразу после их установки. .

Попробуйте настроить вес своих модулей на что-то большее, чем у таксономического модуля, и посмотрите, изменит ли это что-то. (Имейте в виду, что изменение веса может повлиять на другие действия вашего модуля, поэтому проверьте его внимательно после этого!)

0 голосов
/ 30 сентября 2010

Должна быть какая-то функция theme_ или pre_process_, которая изменяет способ вывода вывода, я не вижу флажки под текстовым полем в массиве $ form ... Откуда эти флажки, может прийти набор полей.

...