Подскажите пожалуйста , как реализовать такое.
Например, есть один словарь КАТАЛОГ:
Кондиционеры
- настенные
- потолочные
- бла бла бла
Осушители воздуха
- такие-то
- Другие-то
И есть разные типы контента. Кондиционеры и Осушители воздуха .
Нужно чтобы в типе контента Кондиционеры - к выбору были доступны только дочерние термины КОНДИЦИОЕРОВ. А в типе осушители - только термины осушителей . Т.е. при добавлении скажем кондиционеров, появлялся только такой выбор:
-настенные
-потолочные
-бла бла бла
Хочется реализовать именно так, а не разными словарями..
Есть ли решение, кроме кастомного кода?
P>S> пробовал модуль content_taxonomy - там типо есть похожий функционал. Ограничивает, но толком не работает, глючит, в общем не то...
Комментарии
Это может http://drupal.org/project/hierarchical_select
А как ограничить? это нереально с помощью этого модуля.. Можно назначить по умолчанию, но в любом случае можно будет переключать при желании..
или Taxonomy Term Reference Tree Widget
Пробовал. Не то.. А вы пробовали? или просто на вскидку советуете что нагуглили.. Этот модуль вообще не для этого, а для удобного множественного выделения. Может и возможно там так настроить, но у меня не получилось.. Также там есть функция ID Родительского Термина - не работает!
можно и с помощью Hs и Taxonomy Term Reference Tree Widget
если не можешь существующими решениями пользоваться - напиши свой виджет ,там то уж будешь знать где что
Нельзя! С помощью HS можно лишь назначить по умолчанию родительский термин, и он будет всегда выбран типо + запретить выбирать родителей и на этом все. Но все равно форма с родителями отображается. И я могу поменять родителя и выбрать дочерний термин из другого родителя, что мне не подходит.
В Taxonomy Term Reference Tree Widget - вообще нереал.
Filter by view
Filter the available options based on whether they appear in the selected view.
то же и в hs
в том поле у меня написано NONE и ничего нельзя поменять, видать чего-то недопонимаю..
так видимо надо создать вьюху которая выбирает необходимые термины
делаешь две вьюхи и потом в разных типах выбираешь в настройках виджета поля нужную
Такого там ваще не нашел.
В любом случае спасибо! буду пробовать !
Вам верно ответили.
а с помощью Taxonomy Term Reference Tree Widget dev версии можно выбрать родителя и будут только его дети типо
стабильная "зеленая" его версия более года назад выходила и там выбор по родителю глючит а дев версия очень хорошо отрабатывает
А проблема знаете в чем?
В этом вся ошибка!
ТС, зачем создавать тип материала с одинаковыми полями? Таксономия и так делает деление. Создайте тип материала "Товары" и делите их таксономией. А если у вас появятся какие-нибудь ионизаторы?
не в этом ошибка , а если бы были телефоны и ноутбуки - это разные товары с разными свойствами(аттрибутами) ,и соответсвенно разные бандлы(типы материала)
просто ТС надо было сразу разделить на 2 словаря и не дурить голову не себе не людям
тем более что он не умеет ни свой модуль написать для кастомного виджета ни даже настроить контрибные существующие модули
hook form alter решит ваши проблемы
сильно я в этом сомневаюсь в конкретном случае
Это совершенно разные товары, с очень разными полями. Поэтому и делается разными типами контента. Один словарь - делать более логично, плюс можно более красиво сделать пути, иерархические с помощью пасавто.
Чего чего? Я то устанавливал, А Вы? Задача не решается этими модулями, Я еще раз повторяю.
Я уже пять раз говорил, что если это работает именно так, то не имеет смысла. Нужно чтобы нельзя было менять родителя. Чтобы в типе контента предлагался исключительно один родитель. Иначе нах оно ваще надо? смысл чето ограничивать, если я могу поменять родителя..
Послушайте, я не прошу никого распинаться. Но зачем вводить людей в заблуждение?
, не знаешь - молчи, либо скажи что может быть, в общем говори как есть. ЗНаешь - помоги.
Спасибо за ответ! Жаль только что в этом виджете выпадающий список нельзя вывести. А только вид чекбоксов/радиобатонов
Что касается вьюх:
Пробовал, не выводит зеленая версия. Пустой список показывает.. МОжет в дев по другому..
Похоже что да.. Как обычно, ищещь сперва модуль чуть ли не пол дня, а потом пишешь решение за 5 мин
Вызываем форм альтер для нужной формы, и внутри переопределяем поле таксономии (У меня это field_catalog_category)
<?php
$terms = taxonomy_get_tree(7,14);
$options = array();
foreach ($terms as $value) {
$options[$value->tid] = $value->name;
}
$form['field_catalog_category']['und']['#options'] = $options;
?>
7 - это ID словаря. Узнать можно с помощью функции taxonomy_vocabulary_machine_name_load($name); - name - машинное имя словаря, посмотреть можно при редактировании.
14 - это собственно наш родительский термин, чтобы показывались только его дети.
Данный код работает только для одного уровня вложенности. Если их больше, нужны доп. проверки.
Спасибо!
выводит любая версия - вьюха должна термины выводить
не проверки ,а дополнительный перебор терминов внутри существующего foreach-a
Есть модуль зависимости полей, который ограничивает отображение наборов полей в типе материала и ограничивает сами поля значениями (HS) в зависимости от выбранного значения предыдущего поля (кондеры/осушители - выпадающее меню). Все равно один тип материала!
Не знаю, не скажу, не помогу!
мух от котлет принято разделять - такой вариант прокатывает если много общих полей и пара-тройка разных
реализуй своим методом товар телефон-ноутбук
Ясень пень что термины! не работает!
странно- только у вас