Jump to content
  • 0

Как вывести в меню термины таксономии вместе с их нодами


XAHTEP26
 Share

Question

Добрый день!

Делаю сайт на друпал и пока только разбираюсь в нем. Возникла одна проблема.

Подскажите пожалуйста каким образом можно вывести список терминов таксономии в виде списка, вместе с названиями нод, которые содержат соответствующие термины.

Т. е. : Есть небольшой каталог товаров (нод), каждый из которых относится к одному или нескольким терминам таксономии. И мне нужно вывести в многоуровневое меню все разделы товаров, с их дочерними элементами (термины словаря), а как следующий уровень в этот список нужно добавить названия самих товаров.

 

Например...

 

Таксономия:

  • Электроника
    • Телефоны
    • Планшеты

Товары:

  • Телефон 1
  • Телефон 2
  • Телефон 3
  • Планшет 1
  • Планшет 2

 

Нужно сделать так:

  • Электроника
    • Телефоны
      • Телефон 1
      • Телефон 2
      • Телефон 3
    • Планшеты
      • Планшет 1
      • Планшет 2

 

Нашел в интернете много уроков и многое перепробовал, получалось выводить термины в виде дерева, получалось выводить ноды относящиеся к термину на странице... А вывести Термины и их ноды в одном списке никак не получается. Подскажите пожалуйста. Заранее спасибо.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

При группировке по термину поля выводятся как заголовки. А как сделать чтобы они выводились в виде многоуровневого списка? У меня есть модуль views_tree, но он не позволяет задавать группировку. (

Link to comment
Share on other sites

  • 0

Создавать товары через views - принципиальное решение?

Или вы одновременно и через вьюз и через какое нибудь ПО Интернет магазина пользуетесь, типа Уберкарта?

 

И еще, не пробовали поставить и поэкспериментировать с модулями навигации, таких, как Nice menus или Menu Views?

  • Like 1
Link to comment
Share on other sites

  • 0

Я у себя поставил, порылся, и кажется, понял, как это делать.

 

Но я сам месяц, как начал изучать друпал, так что если столкнетесь с ошибками, заранее извиняюсь. Напишите, я поищу, где я накосячил. Вобщем, текст слишком большой, сую в спойлер.

 

Прежде всего и вне всяких пунктов создайте новый Блок и назовите "Электроника"

Структура - блоки - добавить новый блок. И выберите, где он будет висеть. Пусть будет Первая боковая панель. Нажмите сохранить.
Создайте новый меню. Структура - меню - добавить меню. назовите тоже Электроника.

Кстати о птицах. Откройте Структура - типы материалов - Страница. В настройках меню поставьте галочку на нужные вам меню, ну и на электронику тоже.

Потом создайте две страницы.
Телефоны (задайте альтернативный одноименный адрес. позвольте решу за вас, потом сами поменяете. назовите telefony)
Планшеты (тоже задайте адрес planshety)

Это для того, что чуть позже могли создать пункты меню, которые требуют указать ссылку на существующую страницу.

Возвращаемся к меню. Структура - меню - электроника - добавить ссылку.
Название ссылки меню - Телефоны. Путь - /telefony (Вот нам и пригодились созданные заранее страницы.)
Родительская ссылка - конечно же, Электроника. вес оставляйте нулевой. Ну, пусть пока Телефоны висят наверху. Сохраняем и видим страницу добавления меню. Добавить ссылку.

Теперь добавляем точно таким же способом ссылку Планшеты. указываем путь /planshety. Поставьте вес - 1. Сохранить. Откроется то же окно. Нажмите Сохранить настройки.

Далее создайте еще несколько страниц. Телефон 1, телефон 2, и телефон 3, например. Все равно в будущем вам придется их создать. Родительское меню - телефоны.

Вот по сюда - ответ на ваш вопрос. Т.е., в дальнейшем, создавая страницы, вы сможете уже указать пункт меню, где они должны находиться. И все. Ниже попытка автоматизировать это и фильтровать. Не совсем удачная.

1. Создайте тип материалов, назовите как угоно, товары или каталог. Только следите чтобы машинное имя было четким. (структура - типы материалов - добавить тип материала. Имя - Каталог. Машинное имя - catalog. Настройки публикации - снимите галочку с " Помещено на главную страницу", а потом в настройках меню поставьте галочку напротив Электроника. Родительский элемент по умолчанию - Электроника. и нажмите сохранить и добавить поля)
1.1. Откроется меню управления полями созданного типа материалов. Метка - Категория, правее нажать "правка", и перед field_ введите category (field_category), затем Тип данных для хранения. Нажмите и выберите Ссылка на термин. и после Вид элемента формы для редактирования данных. Нажмите и выберите Выбор из списка. Нажмите сохранить.

1.2. откроется "Настройки поля". И там выберите ваш словарь, например, Электроника. И нажмите сохранить настройки поля.

1.3. Поставьте галочку напротив "обязтельное поле" если поле обязательное. Думаю, в следующих шагах они уж точно должны быть обязательными.

2. Теперь перед вами Настройка того же типа материала - Каталог. Вам нужно будет точно так же создать поля цены, типа телефона (смартфон, не смарфтвон, и т.п.), версию ОС, Андроид, симбиан и так далее. После пункта 1.2.
2.1. После добавления всех полей нажмите Сохранить настройки. Ну и можете указать "Максимальное количество значений поля, которые пользователи смогут ввести." Если есть необходимость.


На этом закончили. Если у вас все правильно настроено (Ctools включен, например), идем дальше.

3. Структура - Представления - добавить новое.

3.1. Имя - ТЕлефоны, задайте машинное имя.
Показать содержимое, типа Каталог.
Создать страницу (ставим галочку)
Заголовок - Телефоны.
Путь - пусть будет /telefony.
Формат отображения - Сетка из поля. Но это желательно, если вы добавляли поля этого, как его..черт, забыл. Вот, если выше добавляли поле изображения товара. в пункте 2. Вобщем, на ваше усмотрение. Сохраняете.


4. Теперь, идете добавляете новый материал. Содержимое - Добавить содержимое - товары.
Заголовок - Телефон 1
Категория - Телефоны
В настройках меню ставите галочку "Создать ссылку в меню". И выбираете подпункт меню (мы уже привязали это меню к данным типам товаров. другие меню уже не будут здесь доступны.) Электроника - Телефоны. В качестве родителя.
Если нужно, указываете альтернативный путь. telefon_1
Сохраняете.

Пройдите на главную. Все.

5. Теперь, заново открываем Структура - представления - наше представление - Телефоны.
Откроется меню отображения, где нажимаем на плюсик (+Добавить) и выбираем Добавить страницу. ((добавляем новое отображение)
Затем меняем название отображения страницы. Я поменял "Страница" на Телефон 1 (полагаю Телефоны 1, 2, 3 это модели будут.). Применяем.
Потом в настройках страницы указываем адрес страницы. views/telefon_1. в будущем это будет views/sony, views/moto, views/lenovo и т.п. Применяем тоже.

Прямо ниже Меню: Без меню. Жмем, и редактируем.
Выбираем обычный пункт меню. Заголовок - Телефон 1. Меню - Электроника. Применяем.


Чуть ниже добавляем новую критерию фильтрацию. В открывшемся окне выбираем для Этот page (обязательно!).
И внизу из списка выбираем Содержимое: Категория (field_categoryy) . Применяем.
Затем выбираем Выпадающий и продолжаем.

После выбираем термин из словаря Электроника. Телефон 1.

Все. Теперь вы можете создавать типы материала Каталог. И меню готово, просто будете указывать нужный пункт меню.

Только небольшая проблема.

Если добавить несколько товаров, скажем, ТЕлефон 1 красный, Телефон 1 синий, и вручную указать соответствующие пункты меню, все будет отлично. Пятый пункт был для фильтрации товаров по моделям.

Но проблема в том, что когда мы создавали новые виды отображения в представлениях товаров, в том же меню Электроника автоматически создавались подпункты меню Телефон 1, Телефон 2. Это отлично, поскольку, мы сами указывали меню Электроны.


ц. Прямо ниже Меню: Без меню. Жмем, и редактируем.
Выбираем обычный пункт меню. Заголовок - Телефон 1. Меню - Электроника. Применяем.

Но у меня получается так, что меню Электроника могу выбрать, но подпунктов меню нет. Т.е., созданные пункты (Телефон 1, Телефон 2) не попадают в подпункт "ТелефонЫ". Результат заскринил. Если кто может, помогите, пожалуйста?

При этом, если нажимать на двер верхние ссылки в меню, то открывается страница фильтрации. скрин 2. Т.е., это работает.
Но почему В настройках отображения представления у меня только сами меню, без их предварительно созданных меню (телефоны, планшеты)? скрин 3.

П.с., автор, если будут проблемы, и что-то не будет получаться, прошу прощения, я сам месяц, как изучаю. Напишите, разберемся всем форумом-))

 

af1da3813c9bt.jpgf5517e1afe1ft.jpg26a4fd9ab623t.jpg

  • Like 1
Link to comment
Share on other sites

  • 0

Спасибо. Я уже решил проблему написав небольшую функцию в template.php и чуть чуть поизвращавшись с блоками.

А модули уже все пробовал - ничего не подходило. Оно либо выводило только категории либо только ноды, но никак не все вместе.

То же самое и с views, правда с группировкой получалось, но тогда создавалось много лишней разметки, а мне нужен был просто многоуровневый список.

Другие методы тоже помогали, но там для каждой категории нужно было создавать новый блок или меню или представление, а мне нужен был универсальный вариант.

Но всеравно спасибо за большое желание помочь. )

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Etaro
      Я не понимаю, в чём проблема в вертикальном выпадающем меню. Где я мог напортачить? Нужно сделать, чтобы колонки были по вертикали, а не по горизонтали.


    • By egrom92
      Задача Нужен человек работающий на друппал. 
      Есть готовый сайт. Клиенту нужно сделать дополнительно 1 страницу. На этой странице около 7-8 блоков но из них только 3 надо сверстать. Остальные блоки у же есть на сайте. 

      Нужно сверстать и посадить блоки на друпал. Дело срочное, спасибо!
      Обязательные требования Писать в телеграм @egrom92
    • By Sve
      Всем привет :)
      Пытаюсь сверстать свой первый макет, и возникла проблема с меню. Должно быть, как на первой картинке - это макет из фш.
      Выходит, как на второй, меню спадает вниз. 
      Прошу, пожалуйста, тыкните на ошибку в коде, и, если есть возможность, объясните. буду очень рада ответам!
      Код кидаю:
      *{margin: 0; padding: 0; outline: 0} .clearfix::after { content:""; height: 0; display: block; clear: both; } div .container { width: 1300px; margin: auto; background: #fff; } header { width: 100%; height: 130px; border-top: 8px solid #a292b3; position: fixed; z-index: 2; } .logo { margin: 30px 0 20px 170px; } .menu { float: right; margin-right: 145px; } .menu li { display: inline-block; list-style: none; padding: 35px; }  


    • By alesyaz
      Добрый день! Компания Z-Wolves Development приглашает к участию на международных проектах.
      Позиция: Drupal (Fullstack) Middle+/Senior.

      Что мы предлагаем:
      – удалённая работа
      – почасовая оплата, привязанная к доллару от $12 в час (от $2000 в месяц)
      – опыт прямого сотрудничества с крупными международными компаниями
      – интересные и разнообразные проекты

      Что необходимо:
      – опыт от 3х лет c Drupal 8
      – ключевые навыки PHP и MySQL
      – знание и понимание OOP
      – разговорный английский уровня не ниже Intermediate
      – желание работать в команде
      – готовность пройти техническое собеседование, в т.ч. на английском

      Сотрудничество через юрлицо (ИП) с регистрацией в РФ/РБ.

      ✉️ Контакты: amoroz@zwolves.com / skype live:amoroz_14
    • By Рома
      Доброго дня!
      Есть многоуровневое меню (картинка 1)
      Жму на кнопку Каталог - открывается блок с дополнительным содержимым. В этом содержимом есть подменю и под-под меню. Проблема тут такая часть содержимого из правого под-под меню не умещается на экране. Все потому, что блок с доп. содержимым относительно кнопки КАТАЛОГ открывается с выравниванием по левой своей части.
      Вот код в этом положении
      .cs-menu-container .dropdown, ul.type-category li .sub-cate { position: absolute; top: auto; left: 0; z-index: 1000; float: none; min-width: 230px; padding: 0; margin: 0; border: 1px solid #cccccc; border-top:2px solid #c04a62; background: #fff; Что я делаю: 
      меняю значение left: на -200px;
      В итоге получаю нужное мне расположение (картинка 2)
      Но тут же исправляя одно я получаю вторую проблему: блок содержимого кнопки ИНФОРМАЦИЯ уходит далеко влево от самой кнопки вызова (картинка 3)
       
      Какие мне элементы использовать в коде, чтобы выравнивание всех блоков меню (который появляется при нажатии на кнопку) происходило по центру самого блока относительно кнопки? Как правильно выровнять блок относительно кнопки?
       



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy