Есть много-много разных книг. Каждая книга принадлежит какому-то автору (автор-термин таксономии в словаре "Авторы").
Нужно создать вьюс для каждого автора книги, т.е. чтобы на странице автора отображались все книги этого автора.
Я знаю как сделать это, но не автоматически. Так авторов будет очень много, хотелось бы сделать так, чтобы все эти вьюсы создавались автоматически.
Скорее всего, я конечно туплю, и есть простое решение. Подскажите пожалуйста!
Комментарии
Не тупите, а не знаете. Поищите по словам "аргументы Views"
ну есть предположения, значит в принципе знаю куда копать. Вот про аргументы уже искала, но ничего не нашла подходящего. category/term/% не получается..
вариант раз:
вьюс №1
блок список авторов
выводить термин автор
добавить скрытое поле tid
перезаписать ссылку на каталог_книг/[tid]
вьюс №2
страница каталог_книг
выводить материал книга
отношениями подтянуть термины таксономии
в контекстные фильтры tid
в этом варианте можно сделать подсчет книг у авторов(и не только)
вариант два:
вьюс
страница
выводиь материал книга
фильтр по термину(автору) раскрыть для пользователей
better exposed filters для пущей красивости,
показать фильтры линками + автоматическая отправка + аякс
это - быстро дешево сердито))
вариант три:search_api facetapi search_api_facetapi search_api_solr search_api_ajax
но:
нужен доступ к работающему solr (с search_api_db сие не проверял)
нужен допил search_api_ajax (на drupal.org решение есть)
самый многообещающий, но с наскока будет сложновато....
понял что погорячился с третьим)) вам наверно во второй....
http://podrupalim.com/drupal-7-predstavleniya/spisok-statey-polzovatelya
Да, второй мне как раз подошёл бы.
Даже уже есть на сайте) Только вот надо чтобы не надо было раскрывать фильтр. Так как этот вид у меня выводится в поле в типе материала, "Все книги этого автора".
Сейчас постараюсь понять Ваш первый вариант..)
упс))
забув вдягнуты окуляры))))))
то что писал выше - хорошо для общего каталога:
список авторов (допустим слева)
и книги на странице
щелкнули по автору -> на странице только его книги
щелкнули по другому -> теперь книги этого автора
ваше:
вьюсом выводить книги
отношениями подтянуть термин
контекстным фильтром взять tid (id термина-автора)
КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО,
Предоставить значение по умолчанию(id термина)
Загрузить фильтр по умолчанию со страницы
ограничить словарем Авторы
и проверку
Прошу прощения, а что значит «отношениями подтянуть термины таксономии в контекстные фильтры tid»? Что за контекстные фильтры? У меня есть "Взаимосвязи" и "Аргументы".
отношения и контекстные фильтры соответственно ))
А вот с этими Контекстными фильтрами у меня так ничего и не получается(( Ладно, попробую повозиться, может удастся. Спасибо за совет!
http://drupal.zvirec.com/node/70
может немного теории расчехлит ))
Стало что-то прорисовываться) Спасибо за ссылку!
Попробую завтра, может с утра лучше мозги заработают)))
Посмотрела все видео, которые Вы мне прислали. Спасибо, многое прояснилось.
Например то, что у меня все адреса формируются с помощью патчавто, им же заменяются все цифровые ID терминов из адресной строки.
Скорее всего, поэтому у меня ничего не хочет работать автоматически.(
А как задать аргуметы, если у меня в адресной строке только синонимы? В одном из видео я увидела что пишут специальный PHP-код.
не совсем так,
машинные пути никуда не деваются - посмотрите на странице настройки псевдонимов
рекомендую для аргументов использовать именно машинные (nid, tid, uid..)
а некрасивое catalog/13/13 всегда можно показать как магазин/велосипеды/детские
грубо говоря))
если уж совсем будет плохо, стукните в личку вечером, может подсоблю.
Разобралась! Если кому-то интересно, то пришлось немного переделать поля.
Было на основе таксономии, но не работало как надо. Сделала поле node reference, и всё заработало как надо, автоматически!
Итак, у меня есть "писатели", у каждого есть своя нода. И есть много-много "книг", у каждой естественно есть автор-"писатель".
При создании материала "книга" нужно выбрать в сск-поле (создано с помощью node reference) "писателя".
Дальше идём во вьюс, там создаём поле "писатель", которое выводится с помощью того же node reference, название "книги", год издания и прочее.
В фильтрах выставляем нужный тип материала - "книга".
Во взаимосвязях я поставила поле node reference "писатель".
Дальше в аргументах выбрала "Материал: Nid", связь с "писателем". Если аргумента нет, то: Подставить аргумент по умолчанию - ID материала из URL. Проверка по типу материала "книга". Тип аргумента - ID материала. Если аргумент некорректен, то: показать пустой текст.
Всю эту вьюшку нужно вывести в поле "книги автора" с помощью типа сск-поля "views" в типе материала "писатели". Поставить галочку чтобы заполнялось автоматически.
И всё работает как надо!