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

master_alf

  • Захожу иногда
  • 105
  • 8 / 0
Приветствую всех. Прошелся по поиску - не нашел ответа на интересующий меня вопрос.
Если проглядел - прошу прощения.

Есть у меня графическое меню, где каждому пункту назначена своя картинка. Каким образом я могу сделать так, что бы при клике на определенный пункт в меню, в открывшемся разделе этот пункт отображался иной картинкой (отличной от состояния когда пункт меню не нажат), простое оформление через ксс - не подходит. Вернее если можно сделать через него - подскажите как. Но мне надо не просто "убрать/добавить поля/залить фон и т.д." а именно загрузить другую картинку. При чем для каждого пункта меню в активном состоянии свое изображение.
Надеюсь понятно объяснил.
*

master_alf

  • Захожу иногда
  • 105
  • 8 / 0
Разобрался, выкладываю рецепт, кому-нибудь да пригодится.

Сделал путем изменения файла modules\mod_mainmenu\legacy.php(если это плохой вариант, то прошу подсказать как это сделать правильно)
собственно дописал небольшую функцию:

Код
function rpl($name) {
$arr = explode('.', $name);
$itog = $arr['0']._act .'.'.$arr['1'];
return $itog;
}
она разбивает название файла, и дописывает _act перед расширением, т.е. если у нас была картинка с названием example.png то после вызова rpl(); становится example_act.png

В том месте, где происходит вставка адреса изображения, сделал проверку, является ли текущий пункт меню активным, и если да, то изменяем адрес.
не тронутое место выглядело так
Код
if ($params->get('menu_images'))
{
$menu_params = new stdClass();
$menu_params = new JParameter($mitem->params);

$menu_image = $menu_params->def('menu_image', -1);
if (($menu_image <> '-1') && $menu_image) {
$image = '<img src="'.JURI::base(true).'/images/stories/' . $menu_image . '" border="0" alt="' . $mitem->name . '" class="menu"/>';

if ($params->get('menu_images_align')) {
$txt = $txt . ' ' . $image;
} else {
$txt = $txt . ' ' . $image .'</a>';
}

}
}
нужно сделать так
Код
if ($params->get('menu_images'))
{
$menu_params = new stdClass();
$menu_params = new JParameter($mitem->params);

$menu_image = $menu_params->def('menu_image', -1);
if (($menu_image <> '-1') && $menu_image) {
if ($current_itemid == $mitem->id) {
$image = '<img src="'.JURI::base(true).'/images/stories/' . rpl($menu_image). '" border="0" alt="' . $mitem->name . '" class="menu active_menu"/>';
} else {
$image = '<img src="'.JURI::base(true).'/images/stories/' . $menu_image . '" border="0" alt="' . $mitem->name . '" class="menu"/>';
}
if ($params->get('menu_images_align')) {
$txt = $txt . ' ' . $image;
} else {
$txt = $txt . ' ' . $image .'</a>';
}

}
}
Вот, вроде все.
*

незнАЙка

  • Новичок
  • 4
  • 0 / 0
master_alf спасибо за статью, ещё не пробовал, но всё впереди)

Ещё, народ, подскажите кто знает, как изменить оформление меню следующим образом:
Есть категория новостей и меню, которое выводит список этих новостей. Так вот, у каждой новости есть дата. Нужно выводить её в меню, но оформлять по другому (цвет, фон и т.д.) Не понимаю 1. Где лучше хранить дату.
                                                                                        2. Как выводить её в каждом пункте меню с другим оформлением.
Подскажите пожалуйста, заранее спасибо.  (если глупость спрашиваю, дайте пожалуйста ссылочку где почитать можно)

P.S. А вообще с меню в Joomla часто возникают вопросы, если бы кто-то из знающих посвятил статейку-другую описанию работы модуля меню... Как там всё строиться. С программной точки зрения.  Я думаю многим бы это помогло, но работы там, наверное, порядочно. Но всё же если у кого-то есть возможность, воплотите идею в жизнь! Много народу вам спасибо скажет.

Ещё раз всем спасибо!

*

незнАЙка

  • Новичок
  • 4
  • 0 / 0
Люди спасайте! Вопрос остаётся открытым, помогите пожалуйста!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Большое меню Joomla

Автор Amakeeva

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

Автор selimoff

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

Автор qweqweqwe

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

Автор wectra

Ответов: 6
Просмотров: 567
Последний ответ 12.07.2017, 21:09:01
от wectra
Не отображаются пункты в меню

Автор physic

Ответов: 16
Просмотров: 16066
Последний ответ 27.05.2017, 00:10:15
от OutLaw1