1

Тема: Многоуровневое меню (i18N)

Здравствуйте! Такая проблема, не как не могу создать многоуровневое меню, оно боковое, вид такой:

Пункт1
Пункт2
-Пункт2.1
-Пункт2.2
-Пункт2.3
Пункт3

Ну вроде понятно, и при нажатии на "Пункт2" разворачивается подменю с списком подпунктов. Сам пункт2, он же является родительским, и заключен в <span>, а не в <li> или <ul> как обычно бывает. Уже третий день мучаюсь, прошу помочь.

    <ul>
        <li class="active"><a href="index.html">Главная</a></li>
        <li><a href="#">Пункт1</a></li>
        <li>
            <span class="open">Пункт2</span>
            <ul>
                <li><a href="#">Пункт2.1</a></li>
                <li><a href="#">Пункт2.2</a></li>
                <li><a href="#">Пункт2.3</a></li>
            </ul>
        </li>
    </ul>

Поделиться

2

Re: Многоуровневое меню (i18N)

используйте этот плагин http://getsimplecms.ru/plaginy-dlya-get … agin-i18n/
и рендеринг http://getsimplecms.ru/plaginy-dlya-get … 0%BD%D1%8E

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

3 (2018-04-14 20:18:03 отредактировано joyandjoy128)

Re: Многоуровневое меню (i18N)

olsv64 пишет:

используйте этот плагин http://getsimplecms.ru/plaginy-dlya-get … agin-i18n/
и рендеринг http://getsimplecms.ru/plaginy-dlya-get … 0%BD%D1%8E

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

И вот вопрос тоже, почему каждому <li> (пункту меню), присваивается класс, который нечего не делает, но при этом название точно такое же как и ссылка на страницу (ну или название страницы), я думал я где-то не проглядел, но зайдя на http://getsimplecms.ru, и через инспектор элементов, я обнаружил что и у Вас также, идет присвоение классов в меню, для пунктов, по названию страниц, почему так?

Поделиться

4

Re: Многоуровневое меню (i18N)

эти и другие классы присваивает плагин, классы нужны для использования их с файлах CSS, если, например, вы захотите использовать конкретную иконку для конкретной ссылки, это вам, после освоения CSS, несомненно поможет
про рендеринг, я тоже не понимаю, как это работает, но ведь работает же smile
создайте компонент menu с таким кодом

<?php
$s = array('current', 'activepath', 'currentpath', 'open');
$r = array('active', 'active', 'active', 'open');
$c = str_replace($s, $r, $item->classes);
?>
<li>
  <?php if ($item->isOpen) { ?>
    <span class="<?php echo $c; ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </span>
    <ul>
      <?php $item->outputChildren(); ?>
    </ul>    
  <?php } else { ?>
    <a class="<?php echo $c; ?>" href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </a>    
  <?php } ?>
</li>

а в шаблоне используйте такой код

<ul>
<?php get_i18n_navigation(return_page_slug(),0,99,I18N_SHOW_MENU,'menu'); ?>
</ul>
Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

5 (2018-04-16 17:59:51 отредактировано joyandjoy128)

Re: Многоуровневое меню (i18N)

olsv64 пишет:

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

CSS&Html я освоил, даже сверстал шаблон, я просто наверно не правильно выразился, я имею ввиду это:
https://4.downloader.disk.yandex.ru/preview/8f5309ed20c22643340ce05b1f198888600ce1c0ba0b8c31f002435e017e24d8/inf/jBNDJl1BXO36wImelbBreb22J9VS7UMr_WGCEj5ojg_SJQMIxpMqwLKpgaHGY8dQXwcgczqcAHIKPKcS95rYIw%3D%3D?uid=294738523&amp;filename=2018-04-15_08-11-50.png&amp;disposition=inline&amp;hash=&amp;limit=0&amp;content_type=image%2Fpng&amp;tknv=v2&amp;size=1251x503

На счет кода, отлично, помогло, большое спасибо! Только еще вопрос, как добавить третий уровень? по инструкции в плагине поменял, ЧПУ, заменил %parent%/%slug%/, а вот с рендерингом, как Вы так? я вот не понимаю, и сделать не выходит, а Вы можете, научите?  smile

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

Поделиться

6

Re: Многоуровневое меню (i18N)

код для шаблона, который я вам дал поддерживает 99 уровней меню, при создании страниц указывайте их родительские страницы и добавляйте их в меню
для настройки рендеринга дайте мне полный html код вашего меню

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

7

Re: Многоуровневое меню (i18N)

olsv64 пишет:

код для шаблона, который я вам дал поддерживает 99 уровней меню, при создании страниц указывайте их родительские страницы и добавляйте их в меню
для настройки рендеринга дайте мне полный html код вашего меню

    
    <ul>
        <li class="active"><a href="index.html">Главная</a></li>
        
        <li><a href="#">Пункт1</a></li>
       
       <li>
            <span class="open">Пункт2</span>
            <ul>
                <li><a href="#">Пункт2.1</a></li>
                        <span class="open">Пункты из 2.1.1</span>
                        <ul>
                            <li><a href="#">Пункт2.1.1</a></li>
                            <li><a href="#">Пункт2.1.2</a></li>
                            <li><a href="#">Пункт2.1.3</a></li>
                        </ul>                
                <li><a href="#">Пункт2.2</a></li>
                <li><a href="#">Пункт2.3</a></li>
            </ul>
        </li>
        
        <li><a href="#">Пункт3</a></li>
        <li><a href="#">Пункт4</a></li>        
    </ul>

Поделиться

8

Re: Многоуровневое меню (i18N)

и чем вас не устроили коды предложенные мною здесь? http://forum.getsimplecms.ru/viewtopic. … 8453#p8453

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

9

Re: Многоуровневое меню (i18N)

olsv64 пишет:

и чем вас не устроили коды предложенные мною здесь? http://forum.getsimplecms.ru/viewtopic. … 8453#p8453

Оно работает и отлично, но в варианте двухуровнего меню, а вот в третьем уровне, возникает сново та же проблема, родительский пункт меню становится ссылкой и не разворачивается при клике по нему, ну т.е. его надо заключить в <span> а не в тег ссылки, как это происходит автоматически.

Поделиться

10

Re: Многоуровневое меню (i18N)

может быть имеет смысл поменять структуру меню в шаблоне? заменить скрипт? стили CSS?
например в этом шаблоне меню работает как надо http://demo.getsimplethemes.ru/shop-ru/

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

11

Re: Многоуровневое меню (i18N)

посмотрите, как это реализовано в этой теме http://get-simple.info/extend/theme/new/963/
не помню сколько я там уровней делал

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

12

Re: Многоуровневое меню (i18N)

К сожалению тег <span> единственное что подходит под эту структуру, ладно буду дальше пробовать, с рендерингом, жаль нет более подробной информации о нем.

Поделиться

13

Re: Многоуровневое меню (i18N)

вы можете поискать интересующую вас информацию на сайте разработчика плагина http://mvlcek.bplaced.net/get-simple/mu … ation-demo

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

14

Re: Многоуровневое меню (i18N)

И все же вопрос из 5-го поста, почему ссылкам присваиваются классы с именем как у названия самой страницы?

Поделиться

15

Re: Многоуровневое меню (i18N)

joyandjoy128 пишет:

И все же вопрос из 5-го поста, почему ссылкам присваиваются классы с именем как у названия самой страницы?

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

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

16

Re: Многоуровневое меню (i18N)

olsv64 пишет:
joyandjoy128 пишет:

И все же вопрос из 5-го поста, почему ссылкам присваиваются классы с именем как у названия самой страницы?

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

Значит не понял, извиняюсь.

А можно ли как-то это отключить?

Поделиться

17

Re: Многоуровневое меню (i18N)

удалите в компоненте с рендерингом подключение классов, но тогда вы не сможете определить и активную ссылку, хотя у вас же это не ссылка smile

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

18

Re: Многоуровневое меню (i18N)

olsv64 пишет:

удалите в компоненте с рендерингом подключение классов, но тогда вы не сможете определить и активную ссылку, хотя у вас же это не ссылка smile

Ссылка у меня как должна быть ссылкой так и остается ссылкой, я не лью из дерева металл, между ссылками используется <span>, а на него навешаны другие вещи, и к нему по подключаются разные стили. Просто когда в тег заносится название
страницы в виде имени класса, как-то не красиво по коду выходит. Я понимаю если мне надо к примеру, открыть меню и прописываю класс opener(ну или open по умолчанию из плагина), и к opener уже привязываю стиль и скрипты. А вот такие вещи, мне пока не понятны для понимания)

Хотя теперь еще больше ужаса встретил с плагином News Manager)

Поделиться

19

Re: Многоуровневое меню (i18N)

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

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

20

Re: Многоуровневое меню (i18N)

Уважаемые форумчане, помогите, пожалуйста настроить многоуровневое меню на сайте.
html код такой:

<ul class="navbar-nav ml-auto">
                                        <li class="nav-item active">
                                            <a class="nav-link" href="index.html">Home <span class="sr-only">(current)</span></a>
                                        </li>
                                        <li class="nav-item dropdown">
                                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Pages</a>
                                            <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                                                <a class="dropdown-item" href="index.html">Home</a>
                                                <a class="dropdown-item" href="about-us.html">About Us</a>
                                                <a class="dropdown-item" href="services.html">Services</a>
                                                <a class="dropdown-item" href="blog.html">News</a>
                                                <a class="dropdown-item" href="contact.html">Contact</a>
                                                <a class="dropdown-item" href="elements.html">Elements</a>
                                            </div>
                                        </li>
                                        <li class="nav-item">
                                            <a class="nav-link" href="about-us.html">About Us</a>
                                        </li>
                                        <li class="nav-item">
                                            <a class="nav-link" href="services.html">Services</a>
                                        </li>
                                        <li class="nav-item">
                                            <a class="nav-link" href="blog.html">News</a>
                                        </li>
                                        <li class="nav-item">
                                            <a class="nav-link" href="contact.html">Contact</a>
                                        </li>
                                    </ul>

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

<?php
$s = array('current', 'activepath', 'currentpath', 'open');
$r = array('active', 'active', 'active', 'dropdown');
$c = str_replace($s, $r, $item->classes);
?>
<li class="nav-item">
  <?php if ($item->isOpen) { ?>
    <a href="<?php echo htmlspecialchars($item->link); ?>"  class="nav-link">
      <?php echo htmlspecialchars($item->text); ?>
      <a class="nav-link"></a>
    </a>
    <ul class="dropdown-menu">
      <?php $item->outputChildren(); ?>
    </ul>    
  <?php } else { ?>
    <a class="nav-link" href="<?php echo htmlspecialchars($item->link); ?>">
      <?php echo htmlspecialchars($item->text); ?>
    </a>    
  <?php } ?>
</li>

Поделиться