Навигация в материалах

18/08/2009 Документация Joomla 1.5

В Joomla есть стандартный плагин Content - Page Navigation (изначально включен), который позволяет отображать навигацию в материалах относительно категории. Рассмотрим его более подробно и посмотри что с ним можно сделать.

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

Идем в Все меню, выбираем Main Menu, дальше я выбрал пунут The News заходим в него. В этом пункте меню смотрим Параметры - Компонент параметр Показывать навигацию по умолчанию он стоит в значении "скрыть". Ставим ему значение "Показать". Дальше смотрим на шаблон выбираем пункт меню The News, выбираем любой материал из блога (я выбрал первый) и видим в этом материале внизу ссылку на следующую статью из этой категории.

pagenavigation1

Эта ссылка и есть результат работы данного плагина.

Немного модифицируем его - сделаем, чтобы вместо надписей "Следующая" и "Предыдущая", выводились соответствующие заголовки материалов.

Открываем файл Joomla(root)\plugins\content\pagenavigation.php.

Первое что делаем изменим немнго запрос к БД, добавим выбор заголовка.

меняем

// array of articles in same category correctly ordered
$query = 'SELECT a.id,'

на

// array of articles in same category correctly ordered
$query = 'SELECT a.id, a.title,'

Теперь добавим пару переменных:

изменим

if ($row->prev) {
$row->prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->prev->slug, $row->prev->catslug));
} else {
$row->prev = '';
}

if ($row->next) {
$row->next = JRoute::_(ContentHelperRoute::getArticleRoute($row->next->slug, $row->next->catslug));
} else {
$row->next = '';
}

на

if ($row->prev) {
$prevTitle=$row->prev->title;
$row->prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->prev->slug, $row->prev->catslug));
} else {
$row->prev = '';
}

if ($row->next) {
$nextTitle=$row->next->title;
$row->next = JRoute::_(ContentHelperRoute::getArticleRoute($row->next->slug, $row->next->catslug));
} else {
$row->next = '';
}

И изменим вывод

меняем

if ($row->prev)
{
$html .= '
<th class="pagenav_prev">
<a href="'. $row->prev .'">'

. JText::_( '&lt' ) . $pnSpace . JText::_( 'Prev' ) . '</a>
</th>'

;
}

if ($row->prev && $row->next)
{
$html .= '
<td width="50">&nbsp;

</td>'

;
}

if ($row->next)
{
$html .= '
<th class="pagenav_next">
<a href="'. $row->next .'">'

. JText::_( 'Next' ) . $pnSpace . JText::_( '&gt' ) .'</a>
</th>'

;
}

на

if ($row->prev)
{
$html .= '
<th class="pagenav_prev">
<a href="'. $row->prev .'">'

. JText::_( '&lt' ) . $pnSpace . $prevTitle . '</a>
</th>'

;
}

if ($row->prev && $row->next)
{
$html .= '
<td width="50">&nbsp;

</td>'

;
}

if ($row->next)
{
$html .= '
<th class="pagenav_next">
<a href="'. $row->next .'">'

. $nextTitle . $pnSpace . JText::_( '&gt' ) .'</a>
</th>'

;
}

Вот и все. Измененный файл прикрепил.

Вложения:
pagenavigation.zip[ ] (882) Загрузок

14 

Комментарии   

 
+1 ucheetel
05.09.2010 02:38
От души спасибо! Выручаете людей, не знающих пхп))
 
 
0 Сергей
20.04.2011 22:24
От души!!!Хороший плагин!!
 
 
0 Oleg
21.07.2011 00:16
Spasiba boalisoe oceni pamaglo.