MaBudda
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 14
|
 |
« : 07.08.2010, 12:46:30 » |
|
Здравствуйте! Ситуация такова, что Joomla не дает гибких настроек url адресов в модуле меню (mod_mainmenu). Было просмотрено достаточно материала, но ничего даже более близкого к теме найти не могу. Необходимо вставить в одну из ссылок параметр rel="lightbox".
Понимаю, что можно сверстать меню вручную и прописать все параметры, но очень хочется найти решение на этот вопрос.
|
|
|
|
|
Записан
|
|
|
|
effrit
Группа развития
   
Репутация: +521/-6
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
Пол: 
Сообщений: 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
Пол: 
Сообщений: 5860
effrit.com
|
 |
« Ответ #3 : 07.08.2010, 13:38:24 » |
|
ну, во-первых, можно включить фантазию и извратиться  к примеру, если в меню в принципе не будет ссылок на страницы. открывающиеся в отдельном окне, то используем один из '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
Пол: 
Сообщений: 14
|
 |
« Ответ #4 : 07.08.2010, 13:52:02 » |
|
ну, во-первых, можно включить фантазию и извратиться  к примеру, если в меню в принципе не будет ссылок на страницы. открывающиеся в отдельном окне, то используем один из 'case' под свои нужды. во-вторых, можно сделать небольшой хак \administrator\components\com_menus\helpers\helper.php там в районе 133 строки добавить $click[] = JHTML::_('select.option', '3', JText::_( 'URA!' ) ); и вот это самое URA! будет доступно в качестве дополнительного условия со значением 3... (и, соотвественно, его можно будет выбрать в качестве таргета в настройках пункта меню) сейчас испробую!
|
|
|
|
|
Записан
|
|
|
|
effrit
Группа развития
   
Репутация: +521/-6
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
Пол: 
Сообщений: 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
Пол: 
Сообщений: 5860
effrit.com
|
 |
« Ответ #7 : 07.08.2010, 14:11:06 » |
|
\modules\mod_mainmenu\helper.php
|
|
|
|
|
Записан
|
|
|
|
MaBudda
Захожу иногда

Репутация: +0/-0
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
Пол: 
Сообщений: 5860
effrit.com
|
 |
« Ответ #9 : 07.08.2010, 14:58:12 » |
|
для начала читаем тему с самой первой ссылкой ДО КОНЦА
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #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
Пол: 
Сообщений: 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
Пол: 
Сообщений: 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
|
 |
« Ответ #13 : 07.08.2010, 16:27:24 » |
|
ну, предполагается что вы не просто создали файл, а скопировали его из modules/mod_mainmenu/tmpl/  А уж туда добавляем эти строки( в функцию modMainMenuXMLCallback) Модуль сначала шарится в вашем шаблоне в поисках перекрывающих файлов, тоесть будет исполняться именно этот файл а не тот что в папке модуля)
|
|
|
|
|
Записан
|
|
|
|
effrit
Группа развития
   
Репутация: +521/-6
Offline
Пол: 
Сообщений: 5860
effrit.com
|
 |
« Ответ #14 : 07.08.2010, 18:41:13 » |
|
MaBudda, вот это для кого было, мне интересно? сказано же ДО КОНЦА ЧИТАТЬ ТЕМУ
" по поводу не_вывода nofollow. рядом есть шаблон вывода, в котором режется этот атрибут, поэтому лезем
\modules\mod_mainmenu\tmpl\default.php ищем и комментируем (добавляем //) вот это $node->removeAttribute('rel'); "
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #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
Пол: 
Сообщений: 5860
effrit.com
|
 |
« Ответ #17 : 24.01.2011, 14:08:32 » |
|
с каким "таким"? модулей меню - много всяких. поведение ссылок тоже можно менять, через перекрытие шаблона вывода модуля. другое дело, что это всё не очень прозрачно. тут согласен. но форум как раз для повышения прозрачности и сделан )
|
|
|
|
|
Записан
|
|
|
|
LeonGAL
Захожу иногда

Репутация: +0/-0
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>";
|
|
|
|
|
Записан
|
|
|
|
|