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

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

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

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



« : 07.08.2010, 12:46:30 »

Здравствуйте!
Ситуация такова, что Joomla не дает гибких настроек url адресов в модуле меню (mod_mainmenu).
Было просмотрено достаточно материала, но ничего даже более близкого к теме найти не могу.
Необходимо вставить в одну из ссылок параметр rel="lightbox".

Понимаю, что можно сверстать меню вручную и прописать все параметры, но очень хочется найти решение на этот вопрос.
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #1 : 07.08.2010, 13:13:13 »

http://joomlaforum.ru/index.php/topic,58417.msg337891.html#msg337891
Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #2 : 07.08.2010, 13:25:03 »

http://joomlaforum.ru/index.php/topic,58417.msg337891.html#msg337891

Как понимаю, эти параметры присваивают rel ко всем ссылкам mod_mainmenu. За ссылку спасибо!
Но ситуация стоит так, что этот параметр необходимо добавить к одной или двум ссылкам в mod_mainmenu, но никак не ко всем
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #3 : 07.08.2010, 13:38:24 »

ну, во-первых, можно включить фантазию и извратиться Azn
к примеру, если в меню в принципе не будет ссылок на страницы. открывающиеся в отдельном окне, то используем один из 'case' под свои нужды.
во-вторых, можно сделать небольшой хак
\administrator\components\com_menus\helpers\helper.php
там в районе 133 строки добавить
      $click[] = JHTML::_('select.option',  '3', JText::_( 'URA!' ) );

и вот это самое URA! будет доступно в качестве дополнительного условия со значением 3... (и, соотвественно, его можно будет выбрать в качестве таргета в настройках пункта меню)
« Последнее редактирование: 07.08.2010, 13:42:24 от effrit » Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #4 : 07.08.2010, 13:52:02 »

ну, во-первых, можно включить фантазию и извратиться Azn
к примеру, если в меню в принципе не будет ссылок на страницы. открывающиеся в отдельном окне, то используем один из 'case' под свои нужды.
во-вторых, можно сделать небольшой хак
\administrator\components\com_menus\helpers\helper.php
там в районе 133 строки добавить
      $click[] = JHTML::_('select.option',  '3', JText::_( 'URA!' ) );

и вот это самое URA! будет доступно в качестве дополнительного условия со значением 3... (и, соотвественно, его можно будет выбрать в качестве таргета в настройках пункта меню)

сейчас испробую!
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #5 : 07.08.2010, 13:56:55 »

неправильно.

после вставки это будет дополнительное значение для настроек пункта меню (Открывать в:)

а дальше лезем по первой ссылке и добавляем

      case 3:
         // _top
         $data = '<a href="'.$tmp->url.'" rel="nofollow">'.$image.$tmp->name.'</a>';
         break;
Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #6 : 07.08.2010, 14:07:52 »

неправильно.

после вставки это будет дополнительное значение для настроек пункта меню (Открывать в:)

а дальше лезем по первой ссылке и добавляем

      case 3:
         // _top
         $data = '<a href="'.$tmp->url.'" rel="nofollow">'.$image.$tmp->name.'</a>';
         break;

Case добавлять в helper.php?
если так то, при добавлении админка прекращает работу.
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #7 : 07.08.2010, 14:11:06 »

\modules\mod_mainmenu\helper.php
Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #8 : 07.08.2010, 14:55:54 »

\modules\mod_mainmenu\helper.php

mod_mainmenu игнорирует rel="lightbox", даже rel="nofollow" свойство не работает и не отображается (просматриваю через FireBug), при смене на пример на target="_blank" работает и отоброжается в коде.

Использую выпадающее меню menusuperfish, может ли он влиять на
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #9 : 07.08.2010, 14:58:12 »

для начала читаем тему с самой первой ссылкой ДО КОНЦА
Записан
danik.html
Практически профи
*******

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

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



« Ответ #10 : 07.08.2010, 15:36:00 »

Создаем файл templates/твой_шаблончег/html/mod_mainmenu/default.php
дописываем в функцию-декоратор вот ето:
Код
	if ($node->name() == 'a') {
$parts = explode('::',$node->getElementByPath(span)->data());
if (in_array('lightbox',$parts))
{
$node->addAttirbute('rel', 'lightbox');
}
$node->getElementByPath(span)->setData($parts[0]);
}

Теперь пишем в админке
Пункта меню мля::lightbox
и осознаем, что доделав этот пример мы получаем неограниченные возможности по управлению пунктами меню из админки, будь то аттрибуты ссылки или дополнительный текст, который будет выводиться также в меню, но скажем в теге <p>
Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #11 : 07.08.2010, 16:04:08 »

для начала читаем тему с самой первой ссылкой ДО КОНЦА

Прочитал и не один раз. Но по прежнему никаких результатов.

Вот что ввожу:
case 3:
         // _top
         $data = '<a href="'.$tmp->url.'" rel="lightbox;width=800;height=600">'.$image.$tmp->name.'</a>';
         break;
Записан
MaBudda
Захожу иногда
**

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

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



« Ответ #12 : 07.08.2010, 16:15:41 »

Создаем файл templates/твой_шаблончег/html/mod_mainmenu/default.php
дописываем в функцию-декоратор вот ето:
Код
	if ($node->name() == 'a') {
$parts = explode('::',$node->getElementByPath(span)->data());
if (in_array('lightbox',$parts))
{
$node->addAttirbute('rel', 'lightbox');
}
$node->getElementByPath(span)->setData($parts[0]);
}

Теперь пишем в админке
Пункта меню мля::lightbox
и осознаем, что доделав этот пример мы получаем неограниченные возможности по управлению пунктами меню из админки, будь то аттрибуты ссылки или дополнительный текст, который будет выводиться также в меню, но скажем в теге <p>

Мне понятен код открывающий <span> с эффектом LightBox, но не совсем понятно:

-создаю файл default.php
-прописываю

if ($node->name() == 'a') {
      $parts = explode('::',$node->getElementByPath(span)->data());
      if (in_array('lightbox',$parts))
      {
         $node->addAttirbute('rel', 'lightbox');
      }
      $node->getElementByPath(span)->setData($parts[0]);
   }


-далее не понятно, что где нажимать и прописывать, напишите поподробнее.
Записан
danik.html
Практически профи
*******

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

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



« Ответ #13 : 07.08.2010, 16:27:24 »

ну, предполагается что вы не просто создали файл, а скопировали его из modules/mod_mainmenu/tmpl/  Azn

А уж туда добавляем эти строки( в функцию modMainMenuXMLCallback)
Модуль сначала шарится в вашем шаблоне в поисках перекрывающих файлов, тоесть будет исполняться именно этот файл а не тот что в папке модуля)
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #14 : 07.08.2010, 18:41:13 »

MaBudda, вот это для кого было, мне интересно?
сказано же ДО КОНЦА ЧИТАТЬ ТЕМУ

"
по поводу не_вывода nofollow.
рядом есть шаблон вывода, в котором режется этот атрибут, поэтому лезем

\modules\mod_mainmenu\tmpl\default.php
ищем и комментируем (добавляем //) вот это
$node->removeAttribute('rel');
"
Записан
danik.html
Практически профи
*******

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

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



« Ответ #15 : 07.08.2010, 18:50:20 »


ищем и комментируем (добавляем //) вот это
$node->removeAttribute('rel');

+
Записан
dump
Гость
« Ответ #16 : 24.01.2011, 13:26:51 »

неправильно.

после вставки это будет дополнительное значение для настроек пункта меню (Открывать в:)

а дальше лезем по первой ссылке и добавляем

      case 3:
         // _top
         $data = '<a href="'.$tmp->url.'" rel="nofollow">'.$image.$tmp->name.'</a>';
         break;

effrit, спасибо большое за эту инфу! очень помогло. :-) Странно, почему нет модулей с таким функционалом - ведь многим он нужен.
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #17 : 24.01.2011, 14:08:32 »

с каким "таким"?
модулей меню - много всяких.
поведение ссылок тоже можно менять, через перекрытие шаблона вывода модуля.
другое дело, что это всё не очень прозрачно. тут согласен. но форум как раз для повышения прозрачности и сделан )
Записан
LeonGAL
Захожу иногда
**

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

Сообщений: 14


« Ответ #18 : 28.02.2011, 22:02:18 »

Подскажите пожалуйста, как в э тот модуль поместить функцию "Lightbox"?
Модуль mod_nivoslider. В файле helper.php. фрагмент кода:

Цитировать
$nimg = "<a href=\"".  $imgAtt[$i][2] ."\"$target>";
         $URLimg =str_replace('+' , '%20' ,
               str_replace("%2F", "/",
               urlencode(utf8_encode($images[$i]))));
         $nimg .= "<img src='$URLOriginal$URLimg'";
         if (isset($imgAtt[$i][0]))
            $nimg .= " alt='" . $imgAtt[$i][0] . "'";
         if (isset($imgAtt[$i][1]))
            $nimg .= " title='" . $imgAtt[$i][1] . "'";
         $nimg .= " />";
         if (isset($imgAtt[$i][2]))
            $nimg .= "</a>";


Записан
Страниц: [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