11,255 views

Атрибут title для ссылок меню в Joomla 1.5

25.12.2011

Рассмотрим такой момент, как создание title в меню Joomla. По умолчанию этот атрибут для меню в движке Joomla отсутствует и прописать его нигде нельзя. Плагины и компоненты для вывода title в меню Joomla мне не встречались, но исправить ситуацию можно немного модифицировав несколько файлов. Итак приступим…

1. Для начала добавим поле в админке для ввода title ссылки.

В файле administrator/components/com_menus/views/item/tmpl/form.php после кода:

<tr>
<td class="key" align="right">
<?php echo JText::_( 'Alias' ); ?>:
</td>
<td>
<input class="inputbox" type="text" name="alias" size="50" maxlength="255" value="<?php echo $this->item->alias; ?>" />
</td>
</tr>

Вставляем код:

<!-- Title menu Joomla -->
<tr>
<td class="key" align="right">
<?php echo JText::_( 'Linktitle' ); ?>:
</td>
<td>
<input class="inputbox" type="text" name="linktitle" size="50" maxlength="255" value="<?php echo $this->item->linktitle; ?>" />
</td>
</tr>
<!-- Title menu Joomla END -->

2. Добавим языковую переменную.

В файле administrator/language/ru-RU/ru-RU.com_menus.ini
После:
ALIAS=Псевдоним
вставляем:
LINKTITLE=Title ссылки

3. Теперь нам нужно добавить поле в базу данных. Заходим в phpMyAdmin и выполняем запрос (Вкладка SQL), если меняли префик, то правим jos_menu на свойпрефикс_menu

ALTER TABLE `jos_menu` ADD `linktitle` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

4. В файле libraries/joomla/database/table/menu.php

После кода:

class JTableMenu extends JTable {

Вставляем

var $linktitle = null;

5. Далее выводим title ссылки в лицевой части сайта.

В файле modules/mod_mainmenu/helper.php находим код:

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;

И заменяем его на код:

default:
case 0:
// _top
if ($item->linktitle != null)
{
$data = '<a title="'.$item->linktitle.'" href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
} else {
$data = '<a title="'.$item->name.'" href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
}
break;
case 1:
// _blank
if ($item->linktitle != null)
{
$data = '<a title="'.$item->linktitle.'" href="'.$tmp->url.'" target="_blank">'.$image.$tmp->name.'</a>';
} else {
$data = '<a title="'.$item->name.'" 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);
if ($item->linktitle != null)
{
$data = ‘<a title=”‘.$item->linktitle.'” href=”‘.$link.'” onclick=”window.open(this.href,\’targetWindow\’,\”.$attribs.’\’);return false;”>’.$image.$tmp->name.'</a>’;
} else {
$data = ‘<a title=”‘.$item->name.'” href=”‘.$link.'” onclick=”window.open(this.href,\’targetWindow\’,\”.$attribs.’\’);return false;”>’.$image.$tmp->name.'</a>’;
}
break;

6. В файле modules/mod_mainmenu/legacy.php находим код:

$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';

И заменяем на код:

if ($mitem->linktitle != null)
{
$txt = '<a title="' . $mitem->linktitle . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
} else {
$txt = '<a title="' . $mitem->name . '" href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
}

Ну вот и все. Теперь наше меню будет обладать атрибутом title, который мы вручную можем прописать из админки. Если оставить поле пустым, в title будет прописан анкор ссылки.

0 0 votes
Article Rating
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x