Автоматический выбор терминов в Hierarchical select

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

Аватар пользователя xamctepdak xamctepdak 10 ноября 2011 в 23:08

Drupal 6, views 3.
В exposed фильтрах используется словарь таксономии, к которому прикручен hs. В словаре несколько уровней.
Задача: по атрибутам в url автоматически выставлять термины. Соответственно в тоже в несколько уровней.

Погуглил, ничего подходящего не нашел. Решил повесить на js обработчик и просто вызвать сначала 1 уровень, затем 2ой.

Возникла проблема, что после обновления 1го уровня, код страницы не менялся и не понятно как вызвать обновление 2го уровня. На странице элемент появляется, но js его не видит. можно было ковырятся в js от hierarchical select, но я сделал по-другому.

Выяснил, что id терминов задаются в переменных tid[hierarchical_select][selects][Х]. Где х - уровень термина, начиная с 0. Передав id термина для соответствующего уровня можно вызвать его обновление и выбор нужного элемента сразу. Но т.к. в коде инпута для 2го уровня нет, то его пришлось написать самому. А затем удалить... В итоге получилось что-то вроде:

sel2 = '<input type="hidden" class="tempdel" id="edit-tid-hierarchical-select-selects-1" name="tid[hierarchical_select][selects][1]" value="">';
$('#edit-tid-hierarchical-select-selects-0').parent().append(sel2);

$('#edit-tid-hierarchical-select-selects-0').val(tofindParent);
$('#edit-tid-hierarchical-select-selects-1').val(toFind);

hsidval = $('#edit-tid-hsid').val();
Drupal.HierarchicalSelect.update(hsidval,'none');
                       
$('.tempdel').remove();

Криво, но заработало. Может быть кому поможет... Или кто-то подскажет как это сделать правильно.