Создание каталога в Drupal 7. Часть 2
Продолжаем создание нашего каталога продукции в drupal 7, в прошлой части мы с вами разобрались с выводом терминов таксономии с сохранением иерархии и создали для этого отдельную страницу со ссылкой в главном меню. Если кто не в курсе, то вам имеет смысл прочитать первую часть данного урока, ибо здесь описывается продолжение создания каталога. Давайте подведём небольшие итоги что у нас уже есть:
- Есть ссылка в главном меню
- Есть страница «Каталога продукции»
- Есть вывод терминов таксономии из словаря «Каталог» с сохранённой иерархией
Теперь нам лишь осталось реализовать правильный вывод. Как вы помните из первой части, мы получаем пустую страницу, если кликнуть по пункту «Категория1», а нам необходимо вывести его дочерние термины «Подтермин1, Подтермин2, Подтермин3». Приступим, идём по пути «Структура->Представления->Добавить новое представление» и вводим первоначальные параметры:
- Имя представления: на ваше усмотрение
- Показать: Термины таксономии
- Типа: Каталог
- Заголовок страницы: Продукция (это так же может быть на ваше усмотрение)
- Путь: taxonomy/term/% (обязательно)
- Форма отображения: неформатированный список из Поля
Жмём «Продолжить редактирование». Теперь воспользуемся пунктом «Контекстные фильтры» в разделе «Дополнительно» (надеюсь вы еще не забыли где он находится). Жмём добавить:
Далее выбираем «Термин таксономии: Родительский термин»
Жмём «Применить». Теперь в открывшемся окне в разделе «Если фильтра нет в URL», ставим кнопку напротив «Передать значение по умолчанию», в качестве «Тип» выбираем «ID термина таксономии из URL»
Жмём «Применить» и сохраняем представление. Теперь давайте посмотрим, что теперь получилось у нас на сайте, переходим на страницу «каталог продукции» и кликаем по «Категория1»
Видим, что теперь отображается именно так как нам и нужно, но теперь появилась другая проблема, если кликнуть по дочернему термину, то мы получим пустую страницу, это происходит потому, что данное созданное представление перекрывает вывод базового вывода нод по термину таксономии. Теперь давайте приступим к решению этой проблемы, для этого идём по пути «Структура->Представления->Добавить новое представление» и вводим первоначальные настройки
- Имя представления: Список продукции
- Показать: Содержимое типа Продукция
- Ни страницу, ни блок создавать нет необходимости
Жмём «Продолжить редактирование». Изменим первым делом формат вывода с «полей» на «содержимое». Для этого в разделе «Формат» в пункте «Показать» кликаем по «Поля»
И ставим кнопку напротив «Содержимое»
Жмём «Применить» и далее еще раз «Применить». Теперь добавим контекстные фильтры, опять переходим в раздел «Дополнительно» и в пункте «Контекстные фильтры» жмём добавить. В открывшемся окне выбираем «Содержимое : имеет идентификатор термина таксономии»
Далее жмём «Добавить и настроить контекстные фильтры». В открывшемся окне в разделе «Когда значение фильтра не доступно» ставим кнопку напротив «Передать значение по умолчанию», а в качестве «Типа» выбираем «ID термина таксономии из URL»
Жмём «Применить» и сохраняем наше представление. Теперь переходим по пути «Структура -> Представления» и из списка выбираем предыдущее созданное нами представление, у меня оно называется как «production-loop»
Он должен содержать путь
И жмём напротив него на кнопку «редактировать». Переходим в раздел «дополнительно» и напротив пункта «Поведение при отсутствии результатов» жмём «добавить»
В открывшемся окне выбираем «Глобальный: область представления»
Далее жмём «Применить». В открывшемся окне в разделе «представление для вставки» выбираем представление которое было создано последним, у меня оно называется как «catalog_list»
Жмём «Применить» и сохраняем представление. Теперь смотрим, что у нас получилось на сайте
Как вы видите всё работает именно так, как нам и было необходимо, на этом с созданием каталога можно закончить.
Похожие статьи
Создаем табы для административных страниц своего модуля в Drupal 7 Список переменных для создания page.tpl.php Возвращаем ответ 404, при пустом аргументе в views Drupal 8 - Cоздание страниц администрирования (реализация локальных задач) Файл html.tpl.php в Drupal 7 Создание раскрытых фильтров в drupal (Exposed Filter) Сравнение продукции в Ubercart drupal 7 Выводим форму модуля webform в popup окно модуля fancybox Перекрытие любой страницы в Drupal на свою Создание своего шаблона для Drupal 7 на примере. Темизация ноды. Часть 4. Drupal 8 - Создание/удаление таблицы в базе данных. Drupal 8 – использование кастомных классов в своем модуле. Комментарии (43)А что насчет Taxonomy Image у терминов?
-
, чтобы оставлять комментарии
С Taxonomy Image затупил, можно же как поле использовать.
А как сделать, чтобы на странице /catalog (корень каталога), показывался только 1 уровень из подразделов?
-
, чтобы оставлять комментарии
Так же через views ограничить только родительским уровнем.
-
, чтобы оставлять комментарии
Добрый день. Такой вопрос, в первом представлении в критерии фильтрации добавил " Термин таксономии: Родительский термин (= ) " и у меня начали выводиться только родительские термины(так мне и нужно), и при нажатии на них выводятся их подтермины. Но если в хлебных крошках сделать шаг назад (из подтерминов к род. термина) то выводятся и род. термины и подтермины в один столбец. Если не пользоваться хлебными крошками то всё нормально, но при преходе по ним проблемы. Подскажите что я делаю не так.
-
, чтобы оставлять комментарии
а URL,ы одинаковые в обоих случаях? т.е URL по которому вы переходите на страницу с подтерминами совпадает с тем, что в URL, которая дает вам хлебная крошка?
-
, чтобы оставлять комментарии
Да урлы разные, если просто переходить то всё нормально, если по хлебным крошкам то taxonomy/term/all
-
, чтобы оставлять комментарии
значит у вас в данном случае не правильно настроены крошки. Создавайте крошки для отдельно взятого URL, либо для конкретного представления. Все ваши настройки, я не знаю, поэтому более точного ответа не подскажу.
-
, чтобы оставлять комментарии
Спасибо за Ваши уроки, сильн опомогли разобраться с Друпалом 7. Сам только перешел с Шестерки. Вопрос вот какой. Сделал по Вашим урокам вывод таксономии - делаю Легкий каталог. Но когда создаю сортировку товара раскрытую, при попытке отсортировать на странице вывода товаром, меня выкидывает на главную страницу сайта, соответственно никакой сортировки не происходит.
Как можно сделать сортировку товаров с доступом для посетителей имеея вывод таксономии и товаров по описанному Вами способу? Может быть есть дополнительный модуль для Вьевс? Сортировку пытаюсь сделать ссылкой, без input'ов и кнопки применить как это есть в стандартной раскрытой сортировке. Спасибо!
-
, чтобы оставлять комментарии
В очередной раз благодарю за доступные пониманию уроки. Можно сказать так - мой друпал начался именно с вас!
Прочитал и сделал всё как написано, но всё же вышло нечто косолапое, нежели каталог (( и дело совсем не в том, что я где то сделал ошибку, дело в том что добавление в каталог товара, статьи, или фотографии должны быть предельно просты для заказчика сайта, также как и добавление новых категорий.
А теперь вопрос на который очень очень нужен подробный ответ:
Создаем в таксономии словарь "Каталог" и соответственно дерево терминов - разделы в каждом из них подраздел. К примеру раздел Телефоны и подразделы Самсунг, Нокиа, Ленова. Создаём тип материала "Каталог" с указанием необходимых полей (фото, цена, артикул, описание. ) Выводим в меню дерево разделов (нам не нужно оно в самом контенте, достаточно вывести его сбоку в отдельном блоке-меню). Теперь добавляем несколько телефонов раскидывая их в нужные подразделы (подтермины) Выглядит вроде как всё путём, заходим в нокиа, там все нокии, в самсунг, самсунги. Для каждого раздела описание в самом верху. То что нужно! НО в родительских разделах пусто, а по существу должны быть все телефоны из всех подразделов. И вот это меня терзает ((
И так переходим к самому ядру моего вопроса. Как осуществить (знаю, что через виев иначе вроде как невозможно) эту естественную функцию каталога? Так чтобы не изменить простой процесс добавление товаров ("Добавить содержимое->Каталог товаров"), то есть только через ноду. Так, чтобы при добавлении новых разделов и подразделов в таксономии, не приходилось бы создавать дополнительные для них представлений в вие. Так, чтобы заголовки разделов, которые указывал при создании термина оставались не заменёны одним на всех заголовком какого нибудь представления. Так, чтобы осталась, как сейчас, возможность создать описание термина во всех разделах и их родителях!
Спасибо Вам огромное, думаю, что вопрос изложил понятно, с нетерпением жду ответ!
-
, чтобы оставлять комментарии
Здравия! Сергей, по поводу вывода всех товаров в родительском разделе, недавно нашел еще один способ реализации вывода терминов, вот здесь. Чтобы вывести все товарыв родительском каталоге, нужно указать глубину. С инструкции написано, увидите :) Возможно в инструкции найдете ответы и на другие вопросы :)
-
, чтобы оставлять комментарии
Круто.. Спасибо! Я несколько дней бился над это задачей, все понятно и разжованно.
-
, чтобы оставлять комментарии
Короче не стал сильно парится с вием и сделал на первых этапах такой вот каталог товаров. Это моя первая работа такого рода (не судите строго). Благодаря вашему сайту drupalfly.ru получилось около дела. Главное клиент доволен. Теперь продолжу вникать в тонкости вия. Очень полезная штука!
-
, чтобы оставлять комментарии
Делала всё, как написано - товары не отображаются при выборе подкатегории :(
-
, чтобы оставлять комментарии
Все было хорошо до последнего шага, но вот на последнем шаге товары не выводятся и все тут. Что сделать не представляю.
-
, чтобы оставлять комментарии
Какая то проблема в последнем представлении (которое и не страница и не блок). Пока не ввожу контекстные фильтры вываливаются все созданные товары, как только ввожу фильтр - все пропадает и показывается ничего.
-
, чтобы оставлять комментарии
Отличный урок, все получилось, единственное как сделать чтоб работал фильтр?
-
, чтобы оставлять комментарии
-
, чтобы оставлять комментарии
Разобрался. Все таки на drupal делаю первый магазин. Присвоил термины таксономии самим товарам, а не их дисплеям. Исправил, все заработало. Спасибо за урок. И за остальные тоже.
-
, чтобы оставлять комментарии
Господа, поделитесь плиз ссылками на работающие варианты!
-
, чтобы оставлять комментарии
а этот по вашему не работающий?
-
, чтобы оставлять комментарии
Павел, здравствуйте. Спасибо за статью. Возник вопрос: Каковы мои действия, если уровень вложенности у категорий будет больше? Т.е:
Категоря 1 Подтермин 1 Еще один подтермин 1 Еще один подтермин 2 Подтермин 2 Подтермин 3 Категория 2 Подтермин 4 Подтермин 5 Подтермин 6 Категория 3
-
, чтобы оставлять комментарии
Категоря 1 -----Подтермин 1 --------Еще один подтермин 1 --------Еще один подтермин 2 -----Подтермин 2 -----Подтермин 3 Категория 2 -----Подтермин 4 -----Подтермин 5 -----Подтермин 6 Категория 3
-
, чтобы оставлять комментарии
по сути и с вашей иерархией данный способ должен работать.
-
, чтобы оставлять комментарии
Здравствуйте. Очень полезный урок. Но вот вопрос как создать второй каталог. Первый taxonomy/term/% перекрывает второй. Есть ли решение для этой проблемы?
-
, чтобы оставлять комментарии
так создайте еще одну структуру из таксономии и присвойте к общему родителю. Примерно структура таксономии такая
Родитель -Раздел --подраздел --подраздел -Раздел 2 --подраздел --подраздел
-
, чтобы оставлять комментарии
Извиняюсь если не понял, но есть допустим два словаря технические характеристики и отзывы по 300 терминов и у них разные ссылки в меню , я думаю это будет не совсем удобно если это будет все в одном месте.
-
, чтобы оставлять комментарии
Спасибо огромное, все получилось. У меня вопрос такого рода - у меня есть тип материала "Товар" есть поля - имя производителя (Ссылка на термин - авто завершение ввода) в самом термине - название товара и логотип (изображение). Подскажите, как настроить, чтобы логотип автоматически загружался из термина вместе именем производителя.
-
, чтобы оставлять комментарии
Через отношения можно дополнительно подключить всю информацию о термине во вьюшку и через раздел "Поля" вывести логотип.
-
, чтобы оставлять комментарии
Дело в том, что у меня товар выводится то не через views.
-
, чтобы оставлять комментарии
Очень существенное замечание: "Но вот вопрос как создать второй каталог. Первый taxonomy/term/% перекрывает второй. Есть ли решение для этой проблемы?", поэтому хочу поделиться не менее существенным соображением, по этому поводу: Если существует второй, третий и т.д. каталог (т.е. таксономия), то вторая вьюха (из данной статьи) будет забивать вывод материалов из этих каталогов "оформлением" из третьей вьюхи, т.к. настройка пути (taxonomy/term/%) будет распространяться на все без исключения таксономии. Решением данной проблемы будет установка модуля - Taxonomy display и использование расширенного отображения, страницы термина: т.е. установки в опции ПРЕДСТАВЛЕНИЯ DISPLAY OPTIONS - Просмотр - ВЬЮХА 2 (или «production-loop», из примера в данной статье).
Автору респект, очень помогло разобраться по теме.
-
, чтобы оставлять комментарии
Подскажите пожалуйста, я переопределила вывод представления каталога ubercart GRID файлом views-view-fields--uc-catalog.tpl.php. Все корректно выводится как я и хотела в соответствие с кодом в файле. Единственная проблема, не могу понять - как мне выводить разные поля в сетке для разных категорий словаря? К примеру: для категории тапочки мне нужно вывести в сетку поля размер, цвет,цена и материал, а для категории караси- размер,вес,цена и количество. На странице товара я вывожу это запросто создав два разных блока и указав в фильтрах в каких разделах показывать какой блок. А как это сделать в views-view-fields--uc-catalog.tpl.php?
-
, чтобы оставлять комментарии
Спасибо большое, все получилось. Только одно "но": на последнем уровне, где выводятся уже товары, в названии стоит "Раздел каталога" (так у меня вьюха называется). То же самое и в хлебных крошках. Не нашла, как вывести вместо названия вьюхи название раздела каталога. Подскажите?
-
, чтобы оставлять комментарии
Здравствуйте. Помогите, пожалуйста, разобраться, что не так в настройках представления Каталога товаров Drupal 7. Есть две проблемы: 1. На страницах не выводится описание раздела каталога, хотя они были указаны при создании и отображение описания включено в управление
Скрины настроек: отображением каталога http://prntscr.com/7bsalm настройки представления: http://prntscr.com/7bsbb7
3. Вместо количества товаров в подкатегориях выводится nid скрин экрана http://prntscr.com/7bsc6f
-
, чтобы оставлять комментарии
Не могу добавить поле COUNT(содержимое: Nid) для представления каталога
-
, чтобы оставлять комментарии
У меня тоже проблемы с заголовком страницы. Вместо названия раздела (термина таксономии) выводится название представления, а это как то не логично. Вроде товары из разных категорий, а заголовок всегда один и тот же. Помогите пожалуйста.
-
, чтобы оставлять комментарии
используйте drupal_get_title() в хуках hook_preprocess_html - для изменения title в head, и hook_preprocess_page для изменения заголовка страницы.
-
, чтобы оставлять комментарии
А с помощью Views или каких то стандартных операций это можно сделать? Может модуль какой то есть?
-
, чтобы оставлять комментарии
Нашел решение! В представлении в заголовке написал %1 и стали выводиться названия терминов таксономии.
-
, чтобы оставлять комментарии
-
, чтобы оставлять комментарии
Добрый день! Скажите, как вывести перед списком элементов какого-то термина словаря описание самого этого термина. Пытаюсь вывести через "Подвал" во вьюс, но не могу понять, что туда написать.
-
, чтобы оставлять комментарии
Помогите разобраться, пожалуйста.
После этого шага возникает проблема "Жмём «Применить» и сохраняем представление. Теперь давайте посмотрим, что теперь получилось у нас на сайте, переходим на страницу «каталог продукции» и кликаем по «Категория1»".
Вот скрин - http://screenshot.ru/upload/image/aS0A
Это происходит, когда я указываю путь: taxonomy/term/%
Когда же меняю на любой другой, ошибок нет, но нет подкатегорий, как и ранее пустая страница.
-
, чтобы оставлять комментарии
Доброго времени. Вывел на главной странице каталога только термины первого уровня через "Критерии фильтрации" > "Термин таксономии: Родительский термин (= )" А как для них скрыть пустые, т.е. вывести только те термины, у потомков которых есть материалы?