We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28106
    • 91 Posts
    Здравствуйте! Появился такой вот вопрос: а никто не делал, случайно, breadcrumbs с выпадающим списком дочерних страниц?
    Т.е.:
    выводятся у нас хлебные крошки - Главная >> Продукция >> Такой-то вид >> Такой-то подвид >> Такой-то продукт

    А если мы наводим, например, на Такой-то вид, то выпадает список Подвид1, Подвид2 и т.д., если же навести на Продукция - то выпадет список Вид1, Вид2 и т.д.

    С одной стороны можно через wayfinder решить задачу, но тогда придется для каждого раздела сайта ставить startid, а хочется универсальности) Может кто-нибудь делал подобную задачу? В сниппет Breadcrumbs, по моему, как раз очень не хватает возможности такого отображения)
      ----------------------------
      in ModX we trust
      • 1788
      • 1,103 Posts
      Quote from: SpaceW at Sep 27, 2010, 11:06 AM

      С одной стороны можно через wayfinder решить задачу, но тогда придется для каждого раздела сайта ставить startid, а хочется универсальности) Может кто-нибудь делал подобную задачу? В сниппет Breadcrumbs, по моему, как раз очень не хватает возможности такого отображения)
      http://blogs.sitepoint.com/2009/03/30/mega-drop-down-menus/ и jQuery вам в помощь.
        • 1611
        • 591 Posts
        Ага. Тоже задумался сделать такую. Очень уж она привлекательна.
          • 28106
          • 91 Posts
          В общем, если честно, то не очень понравился вариант
          http://blogs.sitepoint.com/2009/03/30/mega-drop-down-menus/ и jQuery
          , поэтому пошел своим путем:

          Давно известно, что из Wayfinder’а можно получить хлебные крошки: http://wiki.modxcms.com/index.php/Breadcrumb_navigation_with_Wayfinder, так вот, я решил немного изменить этот вариант:

          Основной вызов сниппета теперь такой:

          <ul id="Breadcrumb"> 
          <li><a href="[~[(site_start)]~]" title="[(site_name)]">Главная »</a></li>
          [!Wayfinder? &startId=`0` &titleOfLinks=`menutitle` &outerTpl=`Breadcrumb.OuterTpl` &rowTpl=`Breadcrumb.RowTpl` &activeParentRowTpl=`Breadcrumb.activeParentRowTpl` &hereTpl=`Breadcrumb.HereTpl` !]
          </ul>


          Чанки у нас содержат:

          Breadcrumb.OuterTpl:
          [+wf.wrapper+]


          Breadcrumb.RowTpl:
          (Пусто, но обязательно с пробелом! Иначе, будет использоваться стандартный шаблон)


          Breadcrumb.HereTpl:
          <li>[+wf.linktext+] </li>


          А теперь самое интересно - Breadcrumb.activeParentRowTpl:

          <li><a  href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+] »</a> [[Wayfinder? &startId=`[+wf.docid+]` &level=`1`  &outerTpl=`minimh.OuterTpl` &rowTpl=`minimh.RowTpl` &titleOfLinks=`menutitle`]]
          </li>[+wf.wrapper+]

          Т.е. activeParentRowTpl - изначально настраивает вывод активных директорий, а мы же в чанке еще раз вызываем Wayfinder, который начинает сканирование с ID данной активной директории.

          Теперь чанки для второго вызова:

          minimh.OuterTpl:
          <ul>
            [+wf.wrapper+]
          </ul>


          minimh.RowTpl:
          <li><a  href="[+wf.link+]" title="[+wf.title+]">→ [+wf.linktext+]</a>[+wf.wrapper+]</li>


          Вот и все, теперь результат работы будет вот такой код:

          <ul id="Breadcrumb"> 
          <li>
              <a href="index" title="">Главная »</a>
          </li>
          <li>
              <a  href="/index" title="">Продукция »</a>
              <ul>
              <li><a  href="/index" title="">→ Вакуумная техника</a></li>
              <li><a  href="/index" title="">→ Компрессорная техника и воздуходувки</a></li>
              <li><a  href="/index" title="">→ Установки</a></li>
              <li><a  href="/index" title="">→ Средства измерения и контроля</a></li>
              <li><a  href="/index" title="">→ Вакуумная арматура и комплектующие</a></li>
              <li><a  href="/index" title="">→ Системы очистки воздуха</a></li>
              </ul>
          </li> 
          <li><a  href="/index" title="">Системы очистки воздуха »</a>
              <ul>
              <li><a  href="/index" title="">→ Фильтры для вакуумной техники</a></li>
              <li><a  href="/index" title="">→ Фильтры для компрессорной техники</a></li>
              <li><a  href="/index" title="">→ Масляные фильтры-сепараторы</a></li>
              </ul>
          </li> 
          <li>
              Фильтры для компрессорной техники
          </li>
          </ul>


          Нетрудно увидеть, что код получился такой же, как и для обычного меню, а следовательно применив css, мы получим вот такие симпатичные и функциональные хлебные крошки:



          Надеюсь, кому-нибудь будет полезен такой подход.
            ----------------------------
            in ModX we trust