Форум русской поддержки Joomla!® CMS
11.12.2016, 10:03:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вопрос по Joomla 3.0. Разбираюсь с mod_menu

 (Прочитано 6437 раз)
0 Пользователей и 1 Гость смотрят эту тему.
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1251


« : 02.10.2012, 18:05:54 »

Всем привет))
Кто-нибудь пилил j3.0?

Допиливаю mod_menu … и уперся.
Что-бы работало dropdown-menu, нужно получить вот такую конструкцию:

Код
<ul class=”nav”>
 <li class="item-122 dropdown">
   <a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="/page-x">
     Пункт меню<b class="caret"></b>
   </a>
   <ul class="dropdown-menu">
     <li class="item-124">
       <a href="/page-y/mtest1">Длинный заголовок подпункта</a>
     </li>
   </ul>
 </li>
 ...

Тогда Js будет отрабатывать класс .open
А уперся я вот где.

Когда добавляешь  data-target="#"  - исчезает <ul class="dropdown-menu">
Если тупо задаешь href=”#” – тоже самое
Если не добавлять, то не появляется класс .open

Пока поставил подпорку через CSS , но решение не очень красивое, временное. Потому что выпадающее меню не исчезает при потере фокуса, а висит, пока не будет выбран какой-нибудь пункт меню

Гуглил, искал, сутки сижу, уже мозги плавятся
Если кто-то разбирался с меню – подскажите, пожалуйста, в каком направлении искать решение

Спасибо))
Записан
NightGuard
Практически профи
*******

Репутация: +378/-7
Offline Offline

Пол: Мужской
Сообщений: 3035


вжжж-вжжж


« Ответ #1 : 16.10.2012, 11:29:29 »

Можешь файл шаблона меню куда-нить выложить, чтоб скачать можно было?
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1251


« Ответ #2 : 16.10.2012, 16:52:08 »

дальше в этом направлении не копал пока ... Приведу в порядок - обязательно выложу

А на данном этапе упростил все до минимума. Вставил маленькую подпорку в CSS и заменил несколько строк в шаблоне меню.

в default.php
Код
исходный код
 
47. if ($item->parent) {
     $class .= ' parent';
   }    
// The next item is deeper.
71. if ($item->deeper) {
     echo '<ul class="nav-child unstyled small">';
   }
 
заменил на
 
   if ($item->parent) {
     $class .= ' dropdown';
   }    
   // The next item is deeper.
   if ($item->deeper) {
     echo '<ul class="dropdown-menu">';
   }
 
в default_component.php
Код
добавил
if ($item->parent){
 $caret = '<b class="caret"></b>';
}
и код
26. <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>
 
заменил на
   <a <?php echo $class; ?> href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $caret; ?></a>
 
в default_separator.php
Код
добавил
$caret = '<b class="caret"></b>';
 
и заменил
22. <span class="separator"><?php echo $title; ?><?php echo $linktype; ?></span>
на
<a href="#" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $caret; ?></a>

в CSS прописал
Код
.navbar-inverse .nav  li.dropdown:hover > ul.dropdown-menu{
 display:block!important;
}
.caret{
 display:none;
}
.dropdown .caret {
 display:inline-block;
}

Все работает. Посмотреть можно здесь http://wantweb.ru (это полигон для экспериментов, на тексты не обращать внимания)
« Последнее редактирование: 16.10.2012, 16:57:47 от fbr » Записан
toluy
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 19



« Ответ #3 : 15.12.2012, 19:51:29 »

2fbr, ты дальше ковырял меню, или забил? сам сейчас копаюсь с ней
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1251


« Ответ #4 : 15.12.2012, 20:50:47 »

ну так, немножко еще поковырял ... Azn

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

Буду всем благодарен за замечания и рекомендации))

[вложение удалено Администратором]
Записан
toluy
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 19



« Ответ #5 : 16.12.2012, 00:09:17 »

Буду всем благодарен за замечания и рекомендации))
у тебя отлично получилось.
тока вот есть ньюанс у меня. как к своему шаблону mod_menu прилепить файл name_separator.php (тот который default_separator.php)?
вот наотрез не хочет подключаться.
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1251


« Ответ #6 : 16.12.2012, 21:48:46 »

В файле dropdown-menu.php попробуйте после case 'separator':   вставить

require JModuleHelper::getLayoutPath('mod_menu', 'name_'.$item->type);
break;

сам не проверял ..
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #7 : 16.12.2012, 21:54:34 »

В файле dropdown-menu.php попробуйте после case 'separator':   вставить

require JModuleHelper::getLayoutPath('mod_menu', 'name_'.$item->type);
break;

сам не проверял ..
Эх.. версия уже 3, а костыли что? Всё те же?
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1251


« Ответ #8 : 16.12.2012, 22:09:26 »

voland
я, увы, не спец в php... Все больше интуитивно (когда-то писал на VBA)

Учусь потихоньку))
Записан
toluy
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 19



« Ответ #9 : 17.12.2012, 00:21:55 »

Эх.. версия уже 3, а костыли что? Всё те же?
ну по умолчанию файлы newmenu_url.php, newmenu_separator.php и другие в папке /templates/your_template/html/mod_menu/ сами не подключаются.. уже проверил. работает только newmenu.php, и в админке модулю меню можно назначить этот файл как шаблон.

Если знаешь другой способ, подскажи, пожалуйста.

fbr - спс за вариант - опробую.
Записан
toluy
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 19



« Ответ #10 : 18.12.2012, 14:39:00 »

В файле dropdown-menu.php попробуйте после case 'separator':   вставить

require JModuleHelper::getLayoutPath('mod_menu', 'name_'.$item->type);
break;

сам не проверял ..

Да тема работает))) чёт я вначале даже не обратил внимание на код подключения доп файлов
Записан
avex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 193


« Ответ #11 : 29.03.2013, 13:38:30 »

fbr, Вы можете пошагово пояснить, что делать с прикрепленным файлом?
Насколько я понимаю, нужно в своем шаблоне, в папке HTML создать папку mod_menu, куда скинуть Ваши два файла - default_separator.php и default-dropdown.php.
В теме Вы говорите, что нужно править файл default.php и default_component.php - откуда они берутся?

очень хочется решить выпадающее меню стандартными средствами Joomla, а не из JED - все просмотренные там либо не очень красивы, либо не для трёшки, либо не адаптивные.
Записан
avex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 193


« Ответ #12 : 31.03.2013, 09:38:39 »

В последней версии Joomla - 3.1 beta2 вопрос с выпадающим меню решили: оно у них работает на стандартном модуле.
Но взамен у них появился косяк (по крайней мере, у меня он есть) - там, где есть выпадающее меню, родительские пункты не кликабельны.
Та же проблема и в админке сайта - например, чтобы попасть в менеджер меню, нужно нажать на "Создать меню", и, попав на страничку создания, нажать "Отменить".
Надеюсь, в следующих версиях решат эту проблему.
Записан
KKAAZZOO
Практически профи
*******

Репутация: +102/-9
Offline Offline

Сообщений: 2096


« Ответ #13 : 31.03.2013, 11:50:11 »

Та же проблема и в админке сайта - например, чтобы попасть в менеджер меню, нужно нажать на "Создать меню", и, попав на страничку создания, нажать "Отменить".
Надеюсь, в следующих версиях решат эту проблему.

Не подтверждаю, при щелчке на пункте меню "Менеджер меню" осуществляется переход в менеджер.  Joomla - 3.1 beta2.
Записан
avex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 193


« Ответ #14 : 10.04.2013, 16:43:40 »

В Joomla 3 beta 3 по-прежнему стандартно не удается создать выпадающее меню.

Выкладываю последовательность действий.

1. Создаю пункт меню и вложенный к нему.
2. Во фронте пункт red не активен, не выпадает и вложенный уровень.
3. В бэке выключаю вложенный уровень.
4. Перезагружаю фронт.
5. Жму на red - пункт становится активным.
6. В бэке снова включаю вложенный пункт.
7. Во фронте при перезагрузке появляется треугольник, нормально всплывает вложенный пункт.
8. При этом сам пункт red как ссылка не работает - только der.
9. Тут же нажимаю на пункт home, и все возвращается в первоначальное положение.





[вложение удалено Администратором]
Записан
avex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 193


« Ответ #15 : 10.04.2013, 16:44:18 »

Интересно, только у меня так получается?
Если да, то странно, что разработчики до сих пор не вшили решение в Joomla.

[вложение удалено Администратором]
Записан
Mitai
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #16 : 23.11.2015, 02:45:04 »

дальше в этом направлении не копал пока ... Приведу в порядок - обязательно выложу

А на данном этапе упростил все до минимума. Вставил маленькую подпорку в CSS и заменил несколько строк в шаблоне меню.

в default.php
Код
исходный код
 
47. if ($item->parent) {
     $class .= ' parent';
   }    
// The next item is deeper.
71. if ($item->deeper) {
     echo '<ul class="nav-child unstyled small">';
   }
 
заменил на
 
   if ($item->parent) {
     $class .= ' dropdown';
   }    
   // The next item is deeper.
   if ($item->deeper) {
     echo '<ul class="dropdown-menu">';
   }
 
в default_component.php
Код
добавил
if ($item->parent){
 $caret = '<b class="caret"></b>';
}
и код
26. <a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>
 
заменил на
   <a <?php echo $class; ?> href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $caret; ?></a>
 
в default_separator.php
Код
добавил
$caret = '<b class="caret"></b>';
 
и заменил
22. <span class="separator"><?php echo $title; ?><?php echo $linktype; ?></span>
на
<a href="#" <?php echo $title; ?>><?php echo $linktype; ?><?php echo $caret; ?></a>

в CSS прописал
Код
.navbar-inverse .nav  li.dropdown:hover > ul.dropdown-menu{
 display:block!important;
}
.caret{
 display:none;
}
.dropdown .caret {
 display:inline-block;
}

Все работает. Посмотреть можно здесь http://wantweb.ru (это полигон для экспериментов, на тексты не обращать внимания)
можешь разжевать для чайника конкретней где что править? например в сss где именно найти этот файл? или добавил строку куда в начале в середине или там пофигу куда?
попытался сделать как было описано выпадающего меню так и не появилось(( зато появились стрелочки вниз у некоторых из пунктов корневого меню (Joomla 3.4.5 шаблон IT ZEN )
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet