Warning: Creating default object from empty value in /home/p358670/www/old.didgo.ru/components/com_sh404sef/shInit.php on line 37
Добавление альтернативного заголовка материала для вывода его в "хлебных крошках" (путь по сайту) | Контент, материалы, меню
 


ВНИМАНИЕ!!! ЭТО СТАРАЯ ВЕРСИЯ САЙТА.

ДЛЯ ПОЛУЧЕНИЯ АКТУАЛЬНОЙ ИНФОРМАЦИИ

ПЕРЕЙДИТЕ НА WWW.DIDGO.RU




20 мая 2011


Добавление альтернативного заголовка материала для вывода его в "хлебных крошках" (путь по сайту)

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

Альтернативный заголовок материала - рис. 1

Была поставлена задача добавить ещё одно поле для материала и в хлебных крошках выводить именно данные из этого поля, если они присутствуют, конечно.

Шаг 1. Добавляем новое поле в БД.

Для этого заходим в phpMyAdmin и выполняем запрос:

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

Естественно, что вместо jos_  используете префикс своей БД.

Либо добавляете поле руками (я предпочитаю именно так).


Шаг 2. Добавляем поле в админку.

Редактируем файл /administrator/components/com_content/admin.content.html.php

Я добавлял новое поле "Альт. заголовок" сразу под полем заголовка, поэтому рекомендую заменить полностью функцию function _displayArticleDetails на код, приведённый ниже. Это строки с 775 по 835.

function _displayArticleDetails(&$row, &$lists )
{
?>
<table  class="adminform">
<tr>
<td>
<label for="title">

</label>
</td>
<td>
<input class="inputbox" type="text" name="title" id="title" size="40" maxlength="255" value="" />
</td>
<td>
<label>


 
 

</td>
</tr>
<tr>
<td>
<label for="title_alt">

</label>
</td>
<td>
<input class="inputbox" type="text" name="title_alt" id="title_alt" size="40" maxlength="255" value="" />
</td>
<td>
<label>


 
 

</td>
</tr>
<tr>
<td>
<label for="alias">

</label>
</td>
<td>
<input class="inputbox" type="text" name="alias" id="alias" size="40" maxlength="255" value="" title="" />
</td>
<td>
<label for="catid">


 
 

</td>
</tr>
<tr>
<td>
<label for="sectionid">
<?php echo JText::_( 'Section' ); ?>
</label>
</td>
<td>
<?php echo $lists['sectionid']; ?>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
<?php
}

 

Шаг 3. Добавим языковую константу.

Редактируем файл /administrator/language/ru-RU/ru-RU.ini

После 540 строки добавляем:

TITLE ALT=Альт. заголовок

 

Шаг 4. Редактируем шаблон модуля mod_breadcrumbs

Обратите внимание, что файл шаблона модуля находится по умолчанию в /modules/mod_breadcrumbs/tmpl/default.php, но, в зависимости от вашего шаблона, он может лежать и тут - /www/templates/ваш_шаблон/html/mod_breadcrumbs/default.php. Сначала проверяйте местонахождение файла в папке шаблона. Если его там нет - редактируете файл в папке модуля.

Итак, полностью заменяем код default.php на код:

<?php
$req = "select title_alt from #__content WHERE id='".JRequest::getInt( 'id' )."'";
$db = &JFactory::getDBO();
$db->setQuery($req);
$talt = $db->loadResult();
?>
 
<span class="breadcrumbs pathway">
<?php for ($i = 0; $i < $count; $i ++) :
// If not the last item in the breadcrumbs add the separator
if ($i < $count -1) {
if(!empty($list[$i]->link)) {
echo '<a href="'.$list[$i]->link.'" class="pathway">'.$list[$i]->name.'</a>';
} else {
echo $list[$i]->name;
}
echo ' '.$separator.' ';
}  else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
if ($talt !="") {
echo $talt;
}
else {
echo $list[$i]->name;
}
}
endfor; ?>
</span>

 

UPDATE: Как оказалось, инструкци неработоспособна. Необходимо в файл /libraries/joomla/database/table/content.php после строчки:

var $title                = null;

Добавить:

var $title_alt                = null;

Вот теперь всё работает.

Админка теперь выглядит вот так:

Альтернативный заголовок - рис. 2

 

А на сайте вот так:

Альтернативный заголовок - рис.3

 

Вы можете отблагодарить автора:

WMR - R166832041362

WMZ - Z314865156270

QIWI - 9638061071

Яндекс деньги - 41001228750313


Комментарии 
 
#4 06.11.2011 16:55
Елена, обещать не могу, но если будет время - обязательно опишу доработку для Joomla 1.7
 
 
#3 06.11.2011 16:54
Да, вот теперь внимательно изучила админку на рисунках к статье - это к joomla 1.5 судя по надписям Раздел и Категория.

Жаль что данного хака нет для 1.7 ((
 
 
#2 06.11.2011 16:54
Эта доработка для Joomla 1.5
 
 
#1 06.11.2011 16:53
что-то я пробовала пробовала да не вышло. Для какой версии joomla данный хак? на 1.71 у меня не получилось... может быть не то делаю?

Буду рада ответу на мейл.