Приветствую!
Делаю сейчас доску объявлений в которой один тип материала - "Объявление" и несколько полей со словарями, по которым пользователь во вьюхе может фильтровать объявления.
Один из словарей - здоровенный и с двумя-тремя уровнями иерархии, соответственно, при выборе из выпадающего списка получается длинная простыня на несколько экранов, что совсем не айс.
Хочется организовать это дело так, чтобы пользователь мог выбирать категорию товара навроде как это реализовано на страницах техподдержки, когда драйвер хочешь скачать Т.е. сначала выбираешь в списке свое устройство, потом, когда выбрал, тебе становится доступен выбор из операционных систем, в отдельном списке, и т.д. Или еще я видел реализацию с населенными пунктами такую же, например ВКонтакте - сначала страну выбираешь, потом становится доступен выбор города, и т.д.
В общем, хочется как-то обойти этот момент с простыней-словарем. Разбить один выпадающий список на несколько. Как это лучше сделать? Посоветуйте пожалуйста.
И еще вот что, здесь же: как сделать, чтобы при выборе в фильтре категории, в выводе отображались и подкатегории? То есть, выбираешь например "Женская одежда", а он чтобы показывал объявления и из подкатегорий "Женские блузки" и "Женские юбки" и т.д. Потому что в словаре таксономии оно иерархическое, а фильтр этого не понимает, и считает их все одним уровнем, т.е. при выборе "Женская одежда" нечего не выводится, хотя в "Женские блузки" и "Женские юбки" объявления есть.
Спасибо!
Комментарии
Попробуйте этот модуль
Спасибо!
***
Еще нарыл вот что: https://www.drupal.org/project/hierarchical_select и http://www.drupal.ru/node/87068
буду разбираться что лучше и что больше подходит.
Hierarchical Select более сложный, и более глючный (правда я его уже давно не юзал).
В общем, пока остановился на вашем - он простой, документированный, и выглядит надежно.
Правда, какой-то косяк с темизацией в дочерней теме от Bootstrap - Select выглядит как будто css для него не писан - отличается от остальных своей первозданностью Сейчас буду смотреть в чем тут соль. У вас такое было?
Такое может быть из-за того, что темизация select'а происходит из внешнего источника, например js, например плагин Chosen.
Т.е. стиль прописан для видимых объектов. А т.к. модуль подгружает (фактически добавляет) новые селекты, они будут темизированны только после перезагрузки.
Попробуйте задать стиль для всех селектов в глобальном css-файле.
Ага, порылся сейчас, нашел:
в Bootstrap красивое:) форматирование селекта было реализовано через класс .form-control самого селекта.
пришлось поправить shs/js/shs.js в двух местах добавить после
.addClass('shs-select')
две строки:
.addClass('form-control')
расписываю, бо вдруг кому-то еще пригодится
теперь отображается в общем стиле, правда, добавочные селекты почему-то не в линию, а с новой строки, будто оно их в div помещает..
ладно, это уже нюансы
Можно установить display: inline-block;
..ага, в общем, там в этом .form-control есть width:100% - оно поэтому их растягивает на всю ширь, соответственно, следующему селекту приходится с новой строки размещаться.
перезаписал в своем css-owerride так:
.form-control {
width:inherit;
}
теперь второй селект как и положено inline создается
Правда, если будет много уровней иерархии, может оно и лучше, если будет каждый с новой строки - не так бардачно смотрится, но это уже дело вкуса -)