0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 6029 Просмотров
*

MaBudda

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

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

MaBudda

  • Новичок
  • 14
  • 0 / 0
http://joomlaforum.ru/index.php/topic,58417.msg337891.html#msg337891

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

effrit

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

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

MaBudda

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

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

сейчас испробую!
*

effrit

  • Легенда
  • 8552
  • 949 / 9
  • effrit.com
неправильно.

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

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

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

MaBudda

  • Новичок
  • 14
  • 0 / 0
неправильно.

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

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

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

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

MaBudda

  • Новичок
  • 14
  • 0 / 0
\modules\mod_mainmenu\helper.php

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

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

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Создаем файл templates/твой_шаблончег/html/mod_mainmenu/default.php
дописываем в функцию-декоратор вот ето:
Код: 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>
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

MaBudda

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

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

Вот что ввожу:
case 3:
         // _top
         $data = '<a href="'.$tmp->url.'" rel="lightbox;width=800;height=600">'.$image.$tmp->name.'</a>';
         break;
*

MaBudda

  • Новичок
  • 14
  • 0 / 0
Создаем файл templates/твой_шаблончег/html/mod_mainmenu/default.php
дописываем в функцию-декоратор вот ето:
Код: 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

  • Живу я здесь
  • 2650
  • 353 / 4
ну, предполагается что вы не просто создали файл, а скопировали его из modules/mod_mainmenu/tmpl/  :)

А уж туда добавляем эти строки( в функцию modMainMenuXMLCallback)
Модуль сначала шарится в вашем шаблоне в поисках перекрывающих файлов, тоесть будет исполняться именно этот файл а не тот что в папке модуля)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

effrit

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

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

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

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4

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

+
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!

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

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

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

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

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

effrit

  • Легенда
  • 8552
  • 949 / 9
  • effrit.com
с каким "таким"?
модулей меню - много всяких.
поведение ссылок тоже можно менять, через перекрытие шаблона вывода модуля.
другое дело, что это всё не очень прозрачно. тут согласен. но форум как раз для повышения прозрачности и сделан )
*

LeonGAL

  • Новичок
  • 17
  • 0 / 0
Подскажите пожалуйста, как в э тот модуль поместить функцию "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>";


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пункт меню

Автор s120367

Ответов: 0
Просмотров: 159
Последний ответ 03.06.2018, 13:02:55
от s120367
Большое меню Joomla

Автор Amakeeva

Ответов: 1
Просмотров: 352
Последний ответ 22.01.2018, 13:17:45
от effrit
Как можно отображать имя пользователя в название меню?

Автор selimoff

Ответов: 27
Просмотров: 3415
Последний ответ 02.01.2018, 15:24:44
от logan-19
как сделать пункт меню не кликабельным?

Автор qweqweqwe

Ответов: 13
Просмотров: 6264
Последний ответ 07.09.2017, 01:45:49
от forzi
Сдвинуть пункты меню в левое положение

Автор wectra

Ответов: 6
Просмотров: 617
Последний ответ 12.07.2017, 21:09:01
от wectra