Joomla 3.x Как реализовать в модуле main_menu вложенное меню из btn-group?

Тема в разделе "Создание шаблона", создана пользователем djwolf, 19.05.2014.

  1. Offline

    djwolf Недавно здесь

    Регистрация:
    31.07.2011
    Сообщения:
    29
    Симпатии:
    0
    Пол:
    Мужской
    Добрый день, хотел бы у себя на сайте http://oldikon.oldi-k.ru/ реализовать вложенное меню кнопкой btn-group, но не как не могу понять как это сделать может кто то сталкивался? Шаблон пишу в ручную используя Joomla 3.3 и Bootstrap 3.1

    Вот код верхнего меню
    Код (PHP):
    1. <nav class="navbar navbar-default" role="navigation">
    2.         <div class="container">
    3.             <?php if($this->countModules('menu')) : ?>
    4.             <div class="navbar-header">
    5.                 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    6.                     <span class="sr-only">Menu</span>
    7.                     <span class="icon-bar"></span>
    8.                     <span class="icon-bar"></span>
    9.                     <span class="icon-bar"></span>
    10.                 </button>
    11.                     <div class="brand">
    12. <a class="navbar-brand hidden-lg hidden-md hidden-sm" href="#"><?php echo $app->getCfg('sitename'); ?></a>
    13.                     </div>
    14.             </div>
    15.            <?php endif; ?>  
    16.             <div class="navbar-collapse navbar-collapse collapse">       
    17.                 <jdoc:include type="modules" name="menu" style="none" />
    18.             </div>
    19.         </div>
    20. </nav>
    21. <script type="text/javascript">
    22.    (function($){
    23.     $(document).ready(function(){
    24.      $('.dropdown-toggle').dropdown();
    25.       $('.parent').addClass('dropdown');
    26.       $('.parent > a').addClass('dropdown-toggle');
    27.       $('.parent > a').attr('data-toggle', 'dropdown');
    28.      $('.parent > a').attr('data-target', '#');
    29.       $('.parent > a').append(' <b class="caret"></b>');
    30.       $('.parent > ul').addClass('dropdown-menu');
    31.      $('.nav-child .parent').removeClass('dropdown');
    32.      $('.nav-child .parent .caret').css('display', 'none');
    33.       $('.nav-child .parent').addClass('dropdown-submenu');
    34.     });
    35.   })(jQuery);
    36. </script>

    Вложенный пункт меню сейчас выглядит так
    F4lRW13G.png
    а нужно что бы вложенное меню выводилось вот так, то есть разделенное
    qjAJuTct.png
    Вот код этой кнопочки
    Код (PHP):
    1. <!-- Split button -->
    2. <div class="btn-group">
    3.   <button type="button" class="btn btn-danger">Действие</button>
    4.   <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">
    5. <span class="caret"></span>
    6. <span class="sr-only">Меню с переключением</span>
    7. </button>
    8.   <ul class="dropdown-menu" role="menu">
    9.     <li><a href="#">Действие</a></li>
    10.     <li><a href="#">Другое действие</a></li>
    11.     <li><a href="#">Что-то иное</a></li>
    12.     <li class="divider"></li>
    13.     <li><a href="#">Отдельная ссылка</a></li>
    14.   </ul>
    15. </div>

     

    Вложения:

    • F4lRW13G.png
      F4lRW13G.png
      Размер файла:
      12.6 КБ
      Просмотров:
      0
    • qjAJuTct.png
      qjAJuTct.png
      Размер файла:
      11.7 КБ
      Просмотров:
      0
    Последнее редактирование модератором: 19.05.2014
  2.  
  3. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    честно скажу не как там в bootstrap
    но в обычном CSS, сделай тегу a:hover цвет красный, а его потомку a:hover>b - малиновый или какой там у тебя (кстати может и без знака ">" прокатит, но тогда должен быть пробел)
    если есть другие псевдо теги типа :active то с ними надо сделать то же самое
    почитай:
    :active
    :hover
     
  4. Offline

    djwolf Недавно здесь

    Регистрация:
    31.07.2011
    Сообщения:
    29
    Симпатии:
    0
    Пол:
    Мужской
    Вы меня не так поняли, мне нужно что бы кнопка услуги как бы разделилась на 2 кнопки, то есть, нажимаешь на услуги переходит в раздел услуги, нажимаешь на иконку вниз открывается dropdown меню.
     
  5. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    если надо, чтобы кнопка разделялась только при её активации, то тогда надо отлавливать ID пункта меню
    Код (PHP):
    1. $itmID = JRequest::get('ItemID');
    2. if($itmID==/*к примеру*/45)  {
    3.     /*применение стилей*/
    4. }

    и естественно если ID равен заданному то применяются нужные стили
    понятно?
    или опять не так понял!
     
  6. Offline

    djwolf Недавно здесь

    Регистрация:
    31.07.2011
    Сообщения:
    29
    Симпатии:
    0
    Пол:
    Мужской
    не совсем, перейдите на сайт http://oldikon.oldi-k.ru/ там в самом верху есть кнопочка Действие, и вот я хочу сделать так что бы кнопка услуги работала точно так же
    как я догадываюсь нужно менять и дописывать этом скрипте
    <script type="text/javascript">
    (function($){
    $(document).ready(function(){
    $('.dropdown-toggle').dropdown();
    $('.parent').addClass('dropdown');
    $('.parent > a').addClass('dropdown-toggle');
    $('.parent > a').attr('data-toggle', 'dropdown');
    $('.parent > a').attr('data-target', '#');
    $('.parent > a').append(' <b class="caret"></b>');
    $('.parent > ul').addClass('dropdown-menu');
    $('.nav-child .parent').removeClass('dropdown');
    $('.nav-child .parent .caret').css('display', 'none');
    $('.nav-child .parent').addClass('dropdown-submenu');
    });
    })(jQuery);
    </script>
    --- добавлено: 19.05.2014, первое сообщение размещено: 19.05.2014 ---
    если что то вот ссылка на эту кнопку на сайте bootstrap http://bootstrap-3.ru/components.php#btn-dropdowns-split
     
  7. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 206
    Симпатии:
    334
    Пол:
    Мужской
    хочешь чтобы у тебя, тут
    Код (html):
    1. <li class="item-116 deeper parent dropdown">
    2.     <a href="/uslugi.html" class="dropdown-toggle" data-toggle="dropdown" data-target="#">
    3.         Услуги
    4.         <b class="caret"></b>
    5.     </a>
    6.     <ul class="nav-child unstyled small dropdown-menu">
    7.        <li class="item-122">
    8.               <a href="/uslugi/silovye-barery.html">
    9.                     Силовые барьеры
    10.               </a>
    11.        </li>
    12.      </ul>
    13. </li>

    вместо ссылки были два button?
    тут три варианта:
    1. полностью переписать класс по созданию меню
    2. делать подмену JS'ом уже на странице
    3. перед отображением страницы менять часть html

    лично я бы, взял последний вариант
    в твоём шаблоне где то формируется меню, ты отлавливаешь его вывод в буфер, подменяешь нужным тебе html кодом, потом отправляешь обратно в буфер
    ^^^^^^^^^ последовательность действий должна быть такой ^^^^^^^^^
     
    djwolf нравится это.
  8. Offline

    djwolf Недавно здесь

    Регистрация:
    31.07.2011
    Сообщения:
    29
    Симпатии:
    0
    Пол:
    Мужской
    буду пробовать, спасибо
     

Поделиться этой страницей

Загрузка...