Каталог на views+аргументы+фильтрация по терминам

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

Аватар пользователя Paldru Paldru 20 февраля 2010 в 15:28

Планирую сделать каталог предприятий на views.
Что нужно:
1. Каждой ноде соответствует 2 термина из разных словарей (термины на русском языке). В данном случае это "Города" и "Тип"
2. На странице /catalog/ табличный вывод всех нод. Вот тут первая проблема, неполучаеться сделать группировку. Нужно каждый термин в своем столбце(нода, термин, термин). У меня получаеться только таким образом - 2раза повторяеться название ноды для каждого из терминов. Пробывал делать группировку в опциях views, - результат не достигнут.
3. В самом верху вывода всех нод присутствует что-то похожее на explosed filter, но фильтровать он должен по аргументам.
Вот тут вторая моя трудность:
- есть страница /catalog/
- аргументом нужно фильтровать /catalog/термин "Тип" транслитом
- аргументом нужно фильтровать /catalog/термин "Город" транслитом
- если фильтрация по 2 аргументам, то /catalog/термин "Город" транслитом/термин "Тип" транслитом

Т.е например захожу на страницу /catalog/, там фильтры с моими терминами. Например выбираю тип-банк, город Киев. Идет фильтрация /catalog/kiev/bank/. Дальше уже видны отфильтрованые по моим параметрам ноды. Урл у нод соответственно /catalog/kiev/bank/noda.html

Читал много форум, юзал поиск. Но чтото совсем не получаеться.

Если это очень проблематично для обычной подсказки, то какова стоимость реализации моей задумки?

Комментарии

Аватар пользователя RuSS RuSS 21 февраля 2010 в 1:34

У меня похожая проблема! Предлагаю объединиться в усилиях.

Мои идеи. Один из терминов можно заменить на CCK поле, тем самым Вы добъетесь разделения таблиц и соответственно получится в таблице сделать два термина.
Другая идея - искусственно добавлять еще одно поле < td >. Это конечно можно назвать костылем, но должно сработать.
Темизация + array_shift()

у ноды будет два термина, первый мы "откусываем" и делаем print("< td >$arrayShift< /td >"), второй будет выведен сам по себе.

По поводу 3-го пункта не совсем понял. Не получается сделать фильтрацию по двум аргументам? В поле Arguments должно быть два параметра Argument: Term и галочка allow multiple arguments

Аватар пользователя Paldru Paldru 21 февраля 2010 в 4:51

"RuSS" wrote:
Один из терминов можно заменить на CCK поле, тем самым Вы добъетесь разделения таблиц и соответственно получится в таблице сделать два термина.

Это вариант. Но тогда прийдеться каждый раз вручную прописывать поле.
"RuSS" wrote:
Темизация + array_shift()

у ноды будет два термина, первый мы "откусываем" и делаем print("< td >$arrayShift< /td >"), второй будет выведен сам по себе.


В php не силен, но погуглив понял о чем речь. Нужно будет попробывать.

"RuSS" wrote:
По поводу 3-го пункта не совсем понял. Не получается сделать фильтрацию по двум аргументам? В поле Arguments должно быть два параметра Argument: Term и галочка allow multiple arguments

Это понятно. Проблема в том что explosed filter фильтрует и в урл идут ссылки вида /catalog/?tip=1&gorod=23, а нужно /catalog/kiev/bank/. И этот фильтр через свои аргументы работает, а не arguments views
К тому же с "хлебными крошками" и title что то непонятное происходит.

Вот демка примерно того что нужно - _http://places.zpeople.com.ua. Клацаем менюшку страна/город

Аватар пользователя RuSS RuSS 21 февраля 2010 в 13:40

"Paldru" wrote:
Это вариант. Но тогда прийдеться каждый раз вручную прописывать поле.

Нет, это не обязательно. При помощи модуля Option Widgets (он идет вместе с самим CCK) Вы можете создавать выпадающие списки. В manage fields у Вас появится новые опции, среди которых будет новая опция Select list.

"Paldru" wrote:
Проблема в том что explosed filter фильтрует и в урл идут ссылки вида /catalog/?tip=1&gorod=23, а нужно /catalog/kiev/bank/

А explosed filter в принципе и не нужен. Просто создавайте два аргумента, в Validator options
Validator: ставьте Taxonomy term. Можно поэксперементировать для начала с Term ID, если по ID будет проходить правильно фильтрация, значит Вы на правильном пути, меняйте Term ID на Term name.

Аватар пользователя Paldru Paldru 21 февраля 2010 в 14:05

"RuSS" wrote:
Вы на правильном пути, меняйте Term ID на Term name.

А если у меня термины на русском, при выборе Term name их транслит возможен?

Аватар пользователя Paldru Paldru 21 февраля 2010 в 19:25

Попробывал сделать option cck-поле. Теперь вывод как нужно Smile - таблица название ноды, поле cck, термин.
С аргументами теперь запара.
Что я попробывал:

Аргумент - Таксономия: Term ID
Validator: Словари: галочка у словаря которому соответствуют фильтруемые термины
Argument type: Term ID

Теперь по адресу /catalog/idтермина показываеться то что нужно. С титлом и хлебными крошками тоде уже прояснилось.
Уже гуд:)))

С с term name тоже работает. Только урлы такого вида /catalog/киев. Т.е с русскими буквами.

Попробывал реализовать Term synonym, чтобы в урле теперь было слов транслитом. Ничего не получилось Sad
В алиасах сделал для терминов словаря "города" такие алиасы: kiev, doneck и т.д

По ссылке /catalog/kiev либо 404, либо ничего не показываеться.

Аватар пользователя Surok Surok 13 октября 2010 в 12:25

А кто подскажет как можно в таблицу запихать два столбца в каждом столбце должны быть термины из разных словарей?
Искал на сайте но не нашел.