Натройка меню (menu) сайта

Добрый день

Как сделать что бы меню сайта отображалось как в определенном пункте та и в родственном подпункте?

пример:

/commercial/ - меню

/commercial/uborka-ofisa/ - меню этого же пункта /commercial/


Спасибо

3 ответа

  • 1
    Михаил Ушенин Webasyst 6 марта 2015 13:05 #

    Как может меню отображаться в "пункте" или "подпункте"?.. Покажите снимки экрана для наглядности.

    • +1
      Виталий Виталий 6 марта 2015 13:12 #

      Вывожу таким кодом:

      {$subpages = $wa->site->pages($page.id)}

      {if $subpages}

      <ul class="nav nav-pills nav-stacked menu-left">

      {foreach $subpages as $p}

      <li><a href="{$p.url}">{$p.name}</a></li>

      {/foreach}

      </ul>


    • +1
      Виталий Виталий 6 марта 2015 13:17 #

      когда пользователь наживает на пункт к примеру Уборка коммерческой недвижимости левое меню отображается правильно, но при переходе на уровень глубже уборка офиса к примеру левое меню не отображается

    • +1
      Виталий Виталий 9 марта 2015 13:41 #

      Необходимо что бы пункт о компании выглядел как пункт к примеру контакты (без стрелочки и выпадающего меню) но при переходе по ссылке левое меню выводилось как есть

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 10 марта 2015 04:17 #

        Как-то у нас с вами не складывается быстрое решение. Возможно, вам имеет смысл обратиться за квалифицированной помощью к экспертам Вебасиста, чтобы получить требуемый результат в разумные сроки.

        • +1
          Виталий Виталий 10 марта 2015 05:50 #

          Я понял. Спасибо Вам большое! :)

          Подскажите как можно или как правильно реализовать многоязычность сайта (русс./укр.)?

          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 10 марта 2015 08:39 #
            1. Создаёте 2 поселения: для русского и для украинского языков. Или 2 сайта на разных доменах — смотря как вам нужно.
            2. Для этих поселений/сайтов выбираете разные темы дизайна: в одной используется русская локализация, в другой — украинская. Альтернативный вариант: используете одну и ту же тему дизайна, но в файлах темы дизайна добавляете условие для отображения надписей на разных языках в зависимости от поселения/сайта.
            3. Для каждого поселения/сайта добавляете страницы с текстами на своём языке.
            4. В тему дизайна добавляете какой-нибудь переключатель языка — вроде показанного вами на сайте Webasyst.
            • +1
              Виталий Виталий 10 марта 2015 08:45 #

              "в файлах темы дизайна добавляете условие для отображения надписей на разных языках" подскажите пожалуйста как это сделать? Каким кодом?

              • +1
                Михаил Ушенин Михаил Ушенин Webasyst 10 марта 2015 09:33 #

                В свойствах поселений добавьте доп. параметры, например:

                lang=ru

                и

                lang=ua

                И в коде темы дизайна используйте вот такое условие:

                {if $wa->globals('lang') == 'ru'}текст-по-русски{else}текст по-украински{/if}

                • +1
                  Виталий Виталий 10 марта 2015 09:59 #

                  Работает! Спасибо большое! :)

                  • +1
                    Виталий Виталий 10 марта 2015 10:10 #

                    скажите а поселение /ua/ должно бить скрытое или нет?

                    • +1
                      Михаил Ушенин Михаил Ушенин Webasyst 11 марта 2015 04:09 #

                      "Скрытость" влияет только на формирование главного меню в шапке сайта с помощью метода {$wa->apps()}. Если этот метод вы не используете в теме дизайна, то разницы нет.

                      • +1
                        Виталий Виталий 24 марта 2015 08:18 #

                        Добрый день

                        Подскажите пожалуйста как сделать вывод подразделов страниц на сайте?

                        К примеру есть раздел "Вакансии" (/company/vakansii/) в нем есть список вакансий Пример: /company/vakansii/rabotnik-1 и.т.д.

                        как вывести эти список вакансий на странице с заголовком и определенным количеством символов?

                        спасибо
      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 10 марта 2015 04:19 #

        * Оффтопик: правильно пишется "8-летний", а не "8-ми летний".

  • 1
    Михаил Ушенин Webasyst 6 марта 2015 13:26 #

    Может быть, вам нужно убрать условие

    {if $subpages}

    ?

    • +1
      Виталий Виталий 6 марта 2015 14:06 #

      Пробовал, не помогло...

      {$wa->site->pages($page.id)}

      <ul class="nav nav-pills nav-stacked menu-left">

      {foreach $subpages as $p}

      <li><a href="{$p.url}">{$p.name}</a></li>

      {/foreach}


      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 7 марта 2015 02:28 #

        Ну да, ведь вы отобажаете ссылки на подстраницы текущей родительской страницы, а она каждый раз разная оказывается.

        В строке

        {$wa->site->pages($page.id)}

        вместо $page.id подставьте фиксированный id той страницы, в которую вложены пункты меню.

        • +1
          Виталий Виталий 7 марта 2015 03:41 #

          Я так делал, но тогда выводится одно и тоже меню на всех страницах

          • +1
            Виталий Виталий 7 марта 2015 03:48 #

            Вот ссылка на сам сайт: http://inclin.com.ua

            Сейчас меню работает практически правильно, но при переходе на к примеру http://inclin.com.ua/commercial/uborka-ofisa/ левое меню пропадает вместо него появляется ссылка назад:

            а нужно что бы и тут отображалось левое меню этой подкатегории:


            • +1
              Михаил Ушенин Михаил Ушенин Webasyst 7 марта 2015 04:25 #

              Покажите:

              1. Текущий фрагмент кода, которым вы отображаете меню в боковой панели сайта.
              2. Структуру сайта.
              3. ID страницы "Уборка коммерческой недвижимости".
              • +1
                Виталий Виталий 7 марта 2015 04:42 #

                1. код меню

                <div class="left-bl">

                {if !empty($breadcrumbs)}

                <div class="breadcrumbs"itemprop="breadcrumb">

                {foreach $breadcrumbs as $breadcrumb}

                <a href="{$breadcrumb.url}">{$breadcrumb.name|escape}</a> <span class="rarr">&rarr;</span>

                {/foreach}

                </div>

                {/if}

                {$subpages = $wa->site->pages($page.id)}

                {if $subpages}

                <ul class="nav nav-pills nav-stacked menu-left">

                {foreach $subpages as $p}

                <li><a href="{$p.url}">{$p.name}</a></li>

                {/foreach}

                </ul>

                {/if}


                <div class="bn-left">

                <a href="{$theme_settings.ban_left_url}">

                {if $theme_settings.ban_left}

                <img class="img-responsive center-block" src="{$wa_theme_url}{$theme_settings.ban_left}" alt="{$wa->accountName()}" />

                {/if}

                </a>

                </div>

                2. Страктура:


                3. id страницы 7 но не нужно привязывать именно к этому пункту так как есть еще пункты "Уборка жилой недвижимости" id 8 где меню должно работать по такому же принципу

                • +2
                  Михаил Ушенин Михаил Ушенин Webasyst 7 марта 2015 07:30 #

                  Возможно, вам стоит в свойствах страниц, на которых вы хотите показывать это меню (с разными подпунктками для разных разделов сайта — так?), добавить доп. параметр, например:

                  menu_section=7

                  или

                  menu_section=8

                  Это придётся добавить как для родительских страниц, так и для вложенных подстраниц.

                  Затем в своём коде используйте значение этого параметра вот так:

                  {if $page.menu_section|default:null}

                  {$subpages = $wa->site->pages($page.menu_section)}

                  ...

                  {/if}

                  Т. е. для каждой страницы набор элементов меню будет формироваться в зависимости от указанного вами значения доп. параметра menu_section.

                  • +1
                    Виталий Виталий 7 марта 2015 07:49 #

                    Да, работает! :)

                    Спасибо большое!

                    Помогите пожалуйста еще в одном вопросе:

                    Верхнее меню нужно сделать так что бы можно было убирать или добавлять нужные пункты

                    к примеру нужно убрать слово "Инклин" в начале

                    Меню вывожу таким кодом:

                    {wa_print_tree tree=$wa->site->pages() elem ='<a href=":url">:name</a>' collapsible_class='active has-sub' selected=$page.id|default:0 unfolded=$theme_settings.sidebar_unfolded_nav}

                    • +1
                      Виталий Виталий 7 марта 2015 07:50 #

                      при таком выводе меню эта настройка не работает

                      • +1
                        Михаил Ушенин Михаил Ушенин Webasyst 7 марта 2015 11:27 #

                        Это меню формирует содержимое массива, возвращаемого методом {$wa->apps()}, а вы в своём коде используете метод {$wa->site->pages()}. Видимо, потому и не работает.

                        • +1
                          Виталий Виталий 7 марта 2015 11:35 #

                          Заменил, но теперь не работает выпадающее меню?

                          Код вывода меню:

                          {wa_print_tree tree=$wa->apps() elem ='<a href=":url">:name</a>' collapsible_class='active has-sub' selected=$page.id|default:0 unfolded=$theme_settings.sidebar_unfolded_nav}

                          • +1
                            Михаил Ушенин Михаил Ушенин Webasyst 7 марта 2015 12:36 #

                            Видимо, мы говорим о разном...

                            Для чего вы дали последний снимок? О какой настройке речь?

                            • +1
                              Виталий Виталий 7 марта 2015 12:40 #

                              Нужно что бы верхнее меню настраивалось в админке как на скрине но и работало выпадающее меню

                              этим кодом работает выпадающее но нельзя убрать не нужные пункты меню:

                              {wa_print_tree tree=$wa->site->pages() elem ='<a href=":url">:name</a>' collapsible_class='active has-sub' selected=$page.id|default:0 unfolded=$theme_settings.sidebar_unfolded_nav}

                              • +1
                                Виталий Виталий 7 марта 2015 12:43 #

                                сейчас верхнее меню http://inclin.com.uaнастроено с адмики как на скрине но выпадающее меню не работает?


                                • +1
                                  Михаил Ушенин Михаил Ушенин Webasyst 8 марта 2015 12:14 #

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

                                  Выпадающее меню будет работать, только если доступны подпункты, а они могут быть доступны при использовании метода $wa->site->pages(), как у вас было изначально.

                                  Значит, сейчас вопрос в том, как продолжать использовать $wa->site->pages(), но убрать из меню ненужные пункты? Какие именно пункты вы хотите убрать?

                                  • +1
                                    Виталий Виталий 8 марта 2015 12:19 #

                                    нужно убрать пункт "инклин" первый с лева и пункт о компании убрать подпункты

                                    • +1
                                      Михаил Ушенин Михаил Ушенин Webasyst 8 марта 2015 13:28 #

                                      Добавьте для скрываемых страниц доп. параметр

                                      hide=1

                                      и вместо вашего кода

                                      {wa_print_tree tree=$wa->site->pages() elem ='<a href=":url">:name</a>' collapsible_class='active has-sub' selected=$page.id|default:0 unfolded=$theme_settings.sidebar_unfolded_nav}

                                      попробуйте использовать вот такой (к сожалению, аккуратно отформатировать программный код здесь пока не получается, но он должен остаться работоспособным):

                                      {function tree}

                                      <ul>

                                      {foreach $items as $item}

                                      {if !$item.hide|default:null}

                                      {$classes = []}

                                      {if $item.childs|default:null && strlen($collapsible_class|default:null) && $item.collapsible|default:true}

                                      {$classes[] = $collapsible_class}

                                      {/if}

                                      {if $item.id == $selected}

                                      {$classes[] = 'selected'}

                                      {/if}

                                      <li{if $classes} class="{implode(' ', $classes)}"{/if}>

                                      <a href="{$item.url}">{$item.name|escape}</a>

                                      {if $item.childs|default:null && $unfolded|default:true}

                                      {tree items=$item.childs}

                                      {/if}

                                      </li>

                                      {/if}

                                      {/foreach}

                                      </ul>

                                      {/function}

                                      {tree items=$wa->site->pages() collapsible_class='active has-sub' selected=$page.id|default:0 unfolded=$theme_settings.sidebar_unfolded_nav|default:null}

                                      • +1
                                        Виталий Виталий 8 марта 2015 13:41 #

                                        Спасибо Вам большое, очень помогли! :)

                                        Скажите решаемо ли это: система все равно видит пункт как выпадающий (видно на скрине) можно ли убрать?

                                        • +1
                                          Михаил Ушенин Михаил Ушенин Webasyst 8 марта 2015 13:48 #

                                          Добавьте для страницы "О компании" доп. параметр

                                          collapsible=0

                                          и обновите код из моего предыдущего комментария — я его немного дополнил.

                                          • +1
                                            Виталий Виталий 8 марта 2015 13:54 #

                                            Добавил, заменил код. Не работает?

                                            • +1
                                              Михаил Ушенин Михаил Ушенин Webasyst 8 марта 2015 14:01 #

                                              Ошибочка в коде — подправил, обновите ещё раз.

                                              • +1
                                                Виталий Виталий 8 марта 2015 14:04 #

                                                Не работает

                                                • +1
                                                  Михаил Ушенин Михаил Ушенин Webasyst 8 марта 2015 14:21 #

                                                  Не очень понимаю, почему у вас не работает... А вам действительно нужна подстраница "Акции" внутри "О компании"? Если вы держите её там только ради адреса "/o-klmpanii/aktsii/", то необязательно делать эту страницу подстраницей внутри "О компании". Вы можете вынести её на верхний уровень и ввести в свойствах этой страницы полностью нужный вам адрес: "/o-klmpanii/aktsii/".

  • 1
    Виталий 9 марта 2015 13:57 #

    Необходимо что бы пункт о компании выглядел как пункт к примеру контакты (без стрелочки и выпадающего меню) но при переходе по ссылке левое меню выводилось как есть

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите