Убрать ссылку с активного пункта меню Joomla

Считается что для SEO полезным является отсутствие ссылки на пункте меню, который в данный момент является активным. В одной из предыдущих заметок я предложил вариант как сделать правильные служебные значки с точки зрения SEO. А теперь посмотрим как можно реализовать вывод активного пункта меню текстом. т.е. без ссылки.

Так вот. Как известно, ссылки в модуле mod_mainmenu формируются в файле \modules\mod_mainmenu\helper.php, а именно с помощью функции _getItemData в следующих строчках:

switch ($tmp->browserNav)
{
	default:
	case 0:
		// _top
		$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
		break;
	case 1:
		// _blank
		$data = '<a href="'.$tmp->url.'" target="_blank">'.$image.$tmp->name.'</a>';
		break;
	case 2:
		// window.open
		$attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$this->_params->get('window_open');
		// hrm...this is a bit dickey
		$link = str_replace('index.php', 'index2.php', $tmp->url);
		$data = '<a href="'.$link.'" onclick="window.open(this.href,\'targetWindow\',\''.$attribs.'\');return false;">'.$image.$tmp->name.'</a>';
		break;
}

Нас интересует только первый вариант.
Для решения задачи используем сравнение id активного пункта меню с id текущего пункта и меню и соответствующий вывод текста и ссылки (при совпадении и несовпадении):

case 0:
// _top
if (JSite::getMenu()->getActive()->id == $item->id){
	$data = $tmp->url.$image.$tmp->name;
} else {
	$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
}
break;

3 Comments

  • On 11.21.09 Фрекен Бокк said:

    Спасибо! Ваш пост очень мне помог :)
    Всех благ вам, в развитии ресурса.

  • On 01.19.10 Владимир said:

    выполнил ваши пожелания, но эффекта не заметил: в сеню попрежнему можно нажать на все ссылки. в чем может быть проблема?

  • On 01.20.10 Кирилл said:

    Да, на данный момент трик работает только в модуле с «главным меню» (по умолчанию в joomla также есть «topmenu», «othermenu» и т.д.).

Комментарии:

Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

*Required Fields