Выпадающее меню по клику

Тема в разделе "Изменение шаблона (кастомизация)", создана пользователем Лузер, 03.03.2015.

  1. lev
    Offline

    lev Активист => Cпециалист <=

    Регистрация:
    21.12.2007
    Сообщения:
    687
    Симпатии:
    40
    Пол:
    Мужской
    решил правда неожиданным для себя способом :eek:
    Для топ меню использовал mod_menu
    а в левом прописал "dropdown-toggle" причем в нужных "nav nav-pills nav-stacked dropdown-toggle"
    и ссылку надо убить "#" тогда все появиться ;)
    --- добавлено: 12.09.2015 ---
    почему то в топ меню не выделяет, а в правом все правильно выделено :(

    --- добавлено: 13.09.2015, первое сообщение размещено: 12.09.2015 ---
    Что не так с этими настройками default_component.php


    Код (CODE):
    1. <?php
    2. /**
    3. * @package         Joomla.Site
    4. * @subpackage      mod_menu override
    5. * @copyright       Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
    6. * @license         GNU General Public License version 2 or later; see LICENSE.txt
    7. * Modifications    Joomla CSS
    8. */
    9.  
    10. defined('_JEXEC') or die;
    11.  
    12. // Note. It is important to remove spaces between elements.
    13. $class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
    14. $title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
    15.  
    16. if ($item->menu_image)
    17. {
    18.     $item->params->get('menu_text', 1) ?
    19.         $linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><div class="image-title">'.$item->title.'</div> ' :
    20.         $linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
    21.  
    22.         if ($item->deeper) {
    23.         $class = 'class="'.$item->anchor_css.' dropdown-toggle" data-toggle="dropdown" ';
    24.         $item->flink = "#";
    25.     }
    26. }
    27.  
    28.     elseif ($item->deeper) {
    29.         $linktype = $item->title. '  <b class="caret"></b>' ;
    30.         if ($item->level < 2) {
    31.         $class = 'class="'.$item->anchor_css.' dropdown-toggle" data-toggle="dropdown" ';
    32.         $item->flink = "#";
    33.     }
    34.  
    35.     else {
    36.         $linktype = $item->title;
    37.     }
    38. }
    39.  
    40. else {
    41.     $linktype = $item->title;
    42. }
    43.  
    44. switch ($item->browserNav) :
    45.     default:
    46.     case 0:
    47. ?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><span><?php echo $linktype; ?></span></a><?php
    48.         break;
    49.  
    50.     case 1:
    51.         // _blank
    52. ?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><span><?php echo $linktype; ?></span></a><?php
    53.         break;
    54.  
    55.     case 2:
    56.     // window.open
    57.  
    58. ?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><span><?php echo $linktype; ?></span></a>
    59. <?php
    60.         break;
    61.  
    62. endswitch;


    Код (CODE):
    1. <?php
    2. /**
    3. * @package     Joomla.Site
    4. * @subpackage  mod_menu
    5. *
    6. * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
    7. * @license     GNU General Public License version 2 or later; see LICENSE.txt
    8. */
    9.  
    10. defined('_JEXEC') or die;
    11.  
    12. // Note. It is important to remove spaces between elements.
    13. $class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
    14. $title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
    15. if ($item->menu_image)
    16.     {
    17.         $item->params->get('menu_text', 1) ?
    18.         $linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
    19.         $linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
    20. }
    21. else { $linktype = $item->title;
    22. }
    23.  
    24. switch ($item->browserNav) :
    25.     default:
    26.     case 0:
    27. if (preg_match('/dropdown-toggle/ui', $class)) { echo '<a ' . $class . 'href="#" data-toggle="dropdown" ' . $title . '>' . $linktype . ' <b class="caret"></b></a>'; } else { echo '<a ' . $class . 'href="' . $item->flink . '" ' . $title . '>' . $linktype . '</a>'; }
    28.         break;
    29.     case 1:
    30.         // _blank
    31. if (preg_match('/dropdown-toggle/ui', $class)) { echo '<a ' . $class . 'href="#" data-toggle="dropdown" ' . $title . '>' . $linktype . ' <b class="caret"></b></a>'; } else { echo '<a ' . $class . 'href="' . $item->flink . '" target="_blank" ' . $title . '>' . $linktype . '</a>'; }
    32.         break;
    33.     case 2:
    34.     // window.open
    35. ?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
    36. <?php
    37.         break;
    38. endswitch;

    --- добавлено: 13.09.2015 ---
    http://bootstrapjoomla.com/
     

    Вложения:

    • mod_menu.zip
      Размер файла:
      3 КБ
      Просмотров:
      6
  2. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    Автор, почитай о методах jQuery toggle() / click() и preventDefault().
    Bootstrap - это, конечно, хорошо, но элементарные знания в JS для реализации таких простых задач не помешали бы.
     
  3. lev
    Offline

    lev Активист => Cпециалист <=

    Регистрация:
    21.12.2007
    Сообщения:
    687
    Симпатии:
    40
    Пол:
    Мужской
    --- добавлено: 16.09.2015, первое сообщение размещено: 16.09.2015 ---
    В родительском пункте меню указываем CSS-класс ссылки
    Код (html):
    1. dropdown-toggle

    В папку с шаблоном помещаем кастомизированный макет меню,стянул с джумлафорум) по пути /templates/prostostar/html/mod_menu .
    В дополнительных параметрах меню указать
    Альтернативный макет
    Код (html):
    1. bootstrap-dropdown


    Все как писал draff
    Верхнем меню работает все, в правом заголовок имеет ссылку "#", по другому отказывается работать :(

    Демонстрация
    http://foto-s.ru/
    --- добавлено: 16.09.2015 ---
    зато все выглядит так как будто так и задумывалось :eek:
    --- добавлено: 16.09.2015 ---
    А то получалось жмешь на верхнее меню а там кнопка цвет меняет но нечего не происходит, когда в правом меню исчезало и появлялось :p
     

    Вложения:

    • mod_menu.zip
      Размер файла:
      3.1 КБ
      Просмотров:
      5
  4. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    Кстати, а автор вообще писал есть у него Bootstrap или нет?
    @lev, ох не люблю я всю эту бутстрапотятину... :no:
     
  5. lev
    Offline

    lev Активист => Cпециалист <=

    Регистрация:
    21.12.2007
    Сообщения:
    687
    Симпатии:
    40
    Пол:
    Мужской
    Если вы про bootstrap-dropdown.php
    wfedin об этом писал тема "Навигационный бар (Navbar) Bootstrap, Joomla 3.2", draff тоже там писал :p
    --- добавлено: 16.09.2015 ---
    правда тема 2013 года
    --- добавлено: 16.09.2015 ---
    В том году бум был
    http://forum.joomla.org/viewtopic.php?f=718&t=769849#p2980295
    --- добавлено: 16.09.2015, первое сообщение размещено: 16.09.2015 ---
    остальные взяты \modules\mod_menu\tmpl\
    --- добавлено: 16.09.2015 ---
    Есть конечно недочет
    в правом меню кнопку не выделяет :p
    --- добавлено: 17.09.2015 ---
    есть такой же вариант но jQuery :eek:
    https://groups.google.com/forum/#!topic/twitter-bootstrap-stackoverflow/4bIzTmU89Ys

    причем все будет работать не где не будет "#", но нажатые кнопки не отображает, может у меня проблемы :D
    --- добавлено: 17.09.2015 ---
    Есть модуль он тор если вписать "nav nav-pills nav-stacked" может работать боковым :p
    http://extensions.joomla.org/extens...n/menu-systems/jb-dropdown-menu-for-bootstrap
    Но все равно первая кнопка не пашет :eek:
     
  6. Offline

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

    Регистрация:
    16.02.2016
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    сейчас на новых шаблонах эта функция уже встроена в настройках.
     
  7. lev
    Offline

    lev Активист => Cпециалист <=

    Регистрация:
    21.12.2007
    Сообщения:
    687
    Симпатии:
    40
    Пол:
    Мужской
    Про все не знаю, может они уже используют Bootstrap-4, в стандартной сборке всего 2 шаблона сайта и 2 шаблона админки.
    Так, что руководствуясь
    bootstrap 2.3.2
    - так как эта версия больше подходит для Joomla :D
     

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

Загрузка...