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

pbrigadir

  • Захожу иногда
  • 206
  • 10 / 0
Уважаемый алл, когдато на этом сайте шла речь о том какие файлы в Joomla 1.5 изменить чтобы в админке появилось поле title для пунктов менюшек (так как это осуществленно в последующих версиях Joomla).
Поиск мне ничего не дал, может ктото даст пошаговую инструкцию что нужно сделать
Жизнь - игра, а кряк к ней - деньги.
*

pbrigadir

  • Захожу иногда
  • 206
  • 10 / 0
Re: Как добавить title в пункты меню?
« Ответ #1 : 01.05.2013, 22:11:41 »
Кому интересна данная тема, нашел такое решение в сети.
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 ссылки начало -->
<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 ссылки конец -->

1.1 Добавляем языковую переменную (путь: administrator/language/ru-RU/ru-RU.com_menus.ini)

Цитировать
ALIAS=Псевдоним
 
вставляем
LINKTITLE=Title ссылки

2. Добавляем поле в базу данных, идем в phpMyAdmin и выполняем запрос (если меняли префикс, то правим jos_menu на свой префикс_menu)

Код запроса:

Цитировать
ALTER TABLE `jos_menu` ADD `linktitle` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

3. Открываем файл (путь: \libraries\joomla\database\table\menu.php)

В код:

Цитировать
class JTableMenu extends JTable
{

Добавляем строку:

Цитировать
var $linktitle = null;

4. Добавляем вывод title ссылки в лицевой части сайта (путь: modules/mod_mainmenu/helper.php) найти (360 строка)

Код:

Цитировать
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;

5. Добавляем вывод title ссылки в лицевой части сайта для меню в стиле legacy (путь: 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 оставить пустым, то будет выводиться название (Заголовок) пункта меню.
Жизнь - игра, а кряк к ней - деньги.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Amakeeva

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

Автор selimoff

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

Автор qweqweqwe

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

Автор wectra

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

Автор physic

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