[Решено]Как изменить позиционирование выпадающего списка словаря в созданной ССК форме?

Главные вкладки

Аватар пользователя Vladimir SV Vladimir SV 21 апреля 2009 в 13:17

Есть созданная в ССК форма. Расположение должно быть таковым:
1. Поле названия ноды.
2. Выпадающий список словаря таксономии.
3-5. Поля созданные в ССК.
6. Поле текста ноды.

Проблема в том что изначально все было на своих местах, но потом я передвинул одно из полей и все изменилось. Список словаря таксономии встал в начале формы и никак его оттуда не удается убрать. Т.е. в конструкторе ССК все поля на месте, но в самой форме иное положение. Любые поля в.т.ч. стандартные передвигаются и изменения отражаются на виде формы, но вот выпадающий список словаря с места не сдвинуть.

И еще. Кто нибудь подскажет как сделать сортировку в массиве $form ?
Т.е. не совсем понятно каким образом определяется последовательность вывода элементов формы. Или может место вывода элемента определяется где нибудь в одной из ячеек элемента, в массиве?

Комментарии

Аватар пользователя igor701 igor701 21 апреля 2009 в 13:45

можешь прямо в SQL-базе поменять значение веса для элемента формы
смотри в таблице content_node_field_instance поле weight

где вес меньше - тот элемент выводится раньше

Аватар пользователя Vladimir SV Vladimir SV 21 апреля 2009 в 14:57

В каждом массиве описывающем элемент массива $form есть ячейка weight. Сейчас попробую поменять значения, мож и в базу лезть не придется.

Аватар пользователя Vladimir SV Vladimir SV 21 апреля 2009 в 15:32

Разобрался. Когда (после создания типа материала) материал привязывается к словарю таксономии, выпадающий список словаря становится сразу после заголовка (по крайней мере так у меня). При этом вес заголовка был -5. Если же этот список передвинуть куда нить, а потом вернуть назад, он прочно становится в начале и пусть его вес -1, а вес заголовка -2, всеравно список выше. С чем это связано не знаю, хотя догадываюсь. Вес элементов я смотрю при открытии формы конструктора ССК. А вот в ф-ции taxonomy_form_alter() (фил taxonomy.module ) в конце есть такая строка $form['taxonomy']['#weight'] = -3;
В ф-ции node_form_alter () я и намека не увидел на явное указание веса заголовка (мож плохо смотрел).
Чтобы поставить все на места сделал так:
В ф-ции node_form_alter () в ее конце

switch ($form_id) {
case 'имя-моего-материала_node_form';
$form['title']['#weight']=-5;
}

Т.е. Просто вернул изначальный вес поля заголовка.