В статье про дублирование контента на главной странице я описывал вариант с избавлением от дублей на главной странице.

Вариант рабочий, использовал на многих сайтах, однако есть и проблема - первый пункт меню который мы прописали как ссылку (назовем его Главная) не подсвечивается при выборе, то есть ему не присваивается id-свойство current.

А очень бы хотелось (как раз такой дизайн что это необходимо).

Для решения проблемы попробуем использовать свойство переопределения вывода в шаблоне Joomla 1.5.

А именно скопируем файл modules/mod_mainmenu/tmpl/default.php в templates/имя_шаблона/html/mod_mainmenu/default.php и уже тут будем править.

Сразу  хочу предупредить что решение не универсальное - для начала нужно посмотреть в меню какой ItemID присвоен нашему пункту меню Главная - у меня получилось значение 2, но если установка была с демо-данными значение будет скорее всего другим.

Итак сам рецепт - примерно после строки 76 а точнее после следующего кода

 

	if (isset($path) && $node->attributes('id') == $path[0]) {
		$node->addAttribute('id', 'current');
	} else {
		$node->removeAttribute('id');
	}

 

вставляем такой код

 

/* Доработка для current  */
	if (  ($id == 2 ) && ($_SERVER['REQUEST_URI']=='/') ) {
		if ($node->attributes('class')) {
			$node->addAttribute('class', $node->attributes('class').' active');
		} else {
			$node->addAttribute('class', 'active');
		}
		$node->addAttribute('id', 'current');	
	}
/* конец доработки  */

 

заменив 2 на Ваше ItemID - теперь пункт меню будет подсвечиваться.

Комментарии   

seo-ukraine
0 #5 seo-ukraine 18.06.2011 10:48
Быстрее удалить в базе данных в таблице jos_menu вашего меню Главная значение alias. И не мучаться с применением пункта 1 и 2. Пункт меню после этого не трогать, то есть не открывать и не изменять, так как автоматом добавится псевдоним.

Ерунда все это, так уберется только один дубль, а их несколько на главной странице. К примеру алиас home:
site.ua/home
site.ua/home/1.html
site.ua/home.html
site.ua/index.php
site.ua/index.php?option=com_content&view=featured

Предлагайте более эффективные варианты, например: что можно в robots.txt и .htaccess закрыть и. т. п
Артур
0 #4 Артур 01.11.2010 12:24
Интересная статья.
Прочитал первую и всё сделал, как вы сказали - всё получилось.
А вот здесь я нашёл всё кроме папки имя_шаблона/html/mod_mainmenu/..

Делал файл и вставил просто в папку html..

буду с нетерпением ждать ответа автора
Fedor
+2 #3 Fedor 13.05.2010 14:36
Быстрее удалить в базе данных в таблице jos_menu вашего меню Главная значение alias. И не мучаться с применением пункта 1 и 2. Пункт меню после этого не трогать, то есть не открывать и не изменять, так как автоматом добавится псевдоним.
Artem
+1 #2 Artem 19.04.2010 21:19
Вот я и до этого пункта дошел ))
У меня 2 вопроса, что делать если в используемом шаблоне нету ни таких папок (/html/mod_main menu/default.ph p) ни файла?

И второй вопрос - в каком месте мне посмотреть это "в меню какой ItemID присвоен нашему пункту меню Главная"?
voldcher
+1 #1 voldcher 01.12.2009 01:23
Удивляюсь, почему до сих пор нет комментов. Огромное спасибо админу за ценный материал, ИМХО лучший метод решения данной проблемы. Сделал все как написано, все работает! Избавился от ненавистного дубля. Удачи и процветания данному ресурсу :-)

Добавить комментарий


Защитный код
Обновить

Последние комментарии

  • Hi, I do think this is a great blog. I stumbledupon it ;) I'm going to return once again since I book ...

    Подробнее...

     
  • В любом случае это будет инструкция, постараюсь конечно максимально полно, но инструкция как выявлять ...

    Подробнее...

     
  • Ок жду. у меня почти 120 сайтов из них 90 на джумле разных версий ) так что мне это важно поэтому ...

    Подробнее...

     
  • Да, это важная часть. Проблема в том что айболит видит не всё. То есть это мера необходимая, но ...

    Подробнее...

     
  • Короче, я обновил php пропатчил сайты и почистился от вирусов ай болитом на этом моя процедура защиты ...

    Подробнее...

Вы смотрели