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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Убрать ссылку с активного пункта меню  (Прочитано 2657 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PypS
Захожу иногда
**

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

Сообщений: 14


« : 17.07.2009, 07:51:11 »

Подскажите как сделать чтобы активный пункт меню не являлся ссылкой. Есть ли возможность кастомизировать mod_mainmenu под эту задачу и как это сделать ?
Записан
Darkick
JComments Tester
*

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

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



« Ответ #1 : 17.07.2009, 08:45:13 »

Ну наверно копать в сторону шаблонизации.
Записан
SmokerMan
Профи
********

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

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



« Ответ #2 : 17.07.2009, 09:26:45 »

Ну наверно копать в сторону шаблонизации.
Шаблонизация здесь не поможет. Нужно прописывать условие в самом модуле.

Файл modules\mod_mainmenu\helper.php

Меняем
Код
switch ($tmp->browserNav)
{
default:
case 0:
// _top
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
       break;
 

На

Код
$menu	= &JSite::getMenu();
switch ($tmp->browserNav)
{
default:
case 0:
// _top
if ($menu->getActive() == $menu->getItem($item->id)){
$data = $tmp->url.$image.$tmp->name;
} else {
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
}
break;
 
« Последнее редактирование: 17.07.2009, 14:07:28 от SmokerMan » Записан
PypS
Захожу иногда
**

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

Сообщений: 14


« Ответ #3 : 17.07.2009, 10:57:32 »

Что то не работает это.
В любом случае в data которое формирует меню занесется все меню без ссылок,  а необходимо чтобы ссылка убиралась только у активного пункта..
Записан
SmokerMan
Профи
********

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

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



« Ответ #4 : 17.07.2009, 11:32:09 »

Что то не работает это.
В любом случае в data которое формирует меню занесется все меню без ссылок,  а необходимо чтобы ссылка убиралась только у активного пункта..
Проверял лично все работает!
Записан
Darkick
JComments Tester
*

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

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



« Ответ #5 : 17.07.2009, 12:46:49 »

А шаблонизатор разве подхватит helper.php из свой папки? По инструкции ведь цепляются только layout'ы которые в tmpl.
Записан
SmokerMan
Профи
********

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

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



« Ответ #6 : 17.07.2009, 14:05:59 »

А шаблонизатор разве подхватит helper.php из свой папки? По инструкции ведь цепляются только layout'ы которые в tmpl.
Да точно тупанул Azn тогда оставляем там же где был.
Исправил. Спасибо.
Записан
Evgens
Гость
« Ответ #7 : 07.08.2009, 21:32:50 »

Подскажите финальное решение?
Записан
64j
Новичок
*

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

Сообщений: 3



« Ответ #8 : 15.02.2010, 03:22:25 »

всё оказалось на поверхности...
в файле modules\mod_mainmenu\legacy.php находим
Код:
default : // formerly case 2
// open in parent window
$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
break;
}
и меняем на
Код:
default : // formerly case 2
// open in parent window
$menu = &JSite::getMenu();
if ($menu->getActive() == $menu->getItem($mitem->id)){
$txt = '<span class="' . $menuclass . '" ' . $id . '>' . $mitem->name . ' </span> ';
} else {
$txt = '<a href= "' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . ' </a> ';}
break;
}
проверено в позиции left - вертикальный список
« Последнее редактирование: 15.02.2010, 03:42:09 от 64j » Записан
givemesomedrugs
Новичок
*

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

Сообщений: 3


« Ответ #9 : 27.10.2010, 17:56:13 »

Здравствуйте.
Скажите пожалуйста, что делать если на изменения в legacy.php реакции нет, а в helper.php есть, но нужно обрабатывать 2 варианта вывода ссылки - она может быть как основным пунктом, так и вложенным подпунктом и для этих вариантов меняются стили, а в предложенном варианте в helper.php можно прописать стиль только для одного пункта меню.
Записан
baloon
Завсегдатай
*****

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

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



« Ответ #10 : 06.02.2011, 22:52:07 »

А подскажите как сделать, если код уже переделан, вот так
Код:
        default : // formerly case 2
            // open in parent window
            if ($mitem->linktitle != null)
{
$txt = '<a title="' . $mitem->linktitle . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
} else {
$txt = '<a title="' . $mitem->name . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
}
            break;
Записан
baloon
Завсегдатай
*****

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

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



« Ответ #11 : 11.02.2011, 21:05:48 »

up
Очень надо, подскажите, пожалуйста, как правильно написать учитывая код в предыдущем посте?
Записан
icom
Завсегдатай
*****

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

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


cmsdev.org


« Ответ #12 : 12.02.2011, 02:44:19 »

default : // formerly case 2
            // open in parent window
$menu = &JSite::getMenu();
         if ($menu->getActive() == $menu->getItem($mitem->id)) {
            $txt = '<span class="' . $menuclass . '" ' . $id . '>' . $mitem->name . ' </span> ';
         } else {
            if ($mitem->linktitle != null) {
               $txt = '<a title="' . $mitem->linktitle . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
            } else {
               $txt = '<a title="' . $mitem->name . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
            }
         }
 break;
Записан
breez83
Новичок
*

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

Сообщений: 2


« Ответ #13 : 11.03.2011, 13:15:40 »

Шаблонизация здесь не поможет. Нужно прописывать условие в самом модуле.

Файл modules\mod_mainmenu\helper.php

Меняем
Код
switch ($tmp->browserNav)
{
default:
case 0:
// _top
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
       break;
 

На

Код
$menu	= &JSite::getMenu();
switch ($tmp->browserNav)
{
default:
case 0:
// _top
if ($menu->getActive() == $menu->getItem($item->id)){
$data = $tmp->url.$image.$tmp->name;
} else {
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
}
break;
 



Помогите, пожалуйста!

Прописал в коде все вышеуказанное, не помогает.
В чем может быть проблема?
Записан
breez83
Новичок
*

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

Сообщений: 2


« Ответ #14 : 11.03.2011, 13:33:42 »

Да точно тупанул Azn тогда оставляем там же где был.
Исправил. Спасибо.

SmokerMan - на тебя все надежды!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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