Есть материал типа Image. У него есть поле Things, которое содержит несколько терминов словаря Things.
На странице материала стоит блок Webform. Надо чтобы в этом блоке в виде выпадающего списка отобразились термины, присвоенные данному материалу.
То есть набор параметров в списке webform должен меняться в зависимости от материала.
Как такое организовать?
P.S. Webform Term Options не подходит, т.к. выгружает весь список терминов из словаря. Точнее должен выгружать, у меня ничего не выгружает, хотя стандартные списки работают.
Комментарии
Так и не смог решить проблему на уровне модулей или хуков.
Пошел другим путем: "отсечь все лишнее".
1) В вебформе в поле типа "Элементы списка" (select) вывожу все термины словаря в выпадающий список. Их немного, поэтому написал вручную, но можно попользовать Webform Term Options (у меня не работает) или http://www.drupal.ru/node/74971. Самому полю назначил класс things-available
2) Сделал вьюху (views), которая выводит термины данного материала через запятую. Вывод сделал в виде простого текста в поле с классом things-should-be-available и element-invisible (чтобы не мешалось на странице). Вьюха выдает:
3) За 500 рублей заказал очень простой java-script, который сравнивает содержимое выпадающего списка и div'а, который вывел вьюс. Из списка удаляются все варианты, которых нет в div.
Код скрипта:
var words = $('.things-should-be-available').html().split(','),
$options = $('select.things-available option');
$.each(words, function(i, word) {
words[i] = word.trim().toLowerCase();
});
$options.each(function(j, option) {
var $option = $(option);
$option.val() != '' && words.indexOf($option.val().toLowerCase()) === -1 && $option.remove();
});
});
Кусок html для проверки:
<select class=" things-available form-select" id="edit-submitted-na-chem-pechataem" name="submitted[na_chem_pechataem]">
<option value="" selected="selected">- Не указано -</option>
<option value="Толстовка">Толстовка</option>
<option value="Куртка">Куртка</option>
<option value="Футболка">Футболка</option>
<option value="Футболка-поло">Футболка-поло</option>
<option value="Майка">Майка</option>
</select>
Еще можно посмотреть тут: http://jsfiddle.net/e04z26qu/1/