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




13 мая 2011


Ссылка на категорию новостей (аналог ссылки "Вернуться")

При чтении полного текста новости можно внизу вывести ссылки для перехода на следующую или предыдущую новости.

Ссылки навигации по умолчанию

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

Можно реализовать данный момент, использовав простую ссылку "Назад", ну например что-то типа такого:

<a href="#" onclick="history.back();return false;">Вернуться назад</a>

Но данная ссылка не вернёт вас к перечню всех новостей, а перебросит на предыдущую страницу. Т.е. если вы пришли на новость с главной страницы, то при клике на данную ссылку вас и вернёт на главную страницу. А нужно - к перечню всех новостей. Таким образом, подобная реализация не есть гуд.

 

Как реализовать ссылку "Все новости"

Шаг 1. Открываем файл plugins/content/pagenavigation.php и строки со 165 по 203:

// output
 if ($row->prev || $row->next)
 {
 $html = '
 <table align="center" class="pagenav">
 <tr>'
 ;
 if ($row->prev)
 {
 $html .= '
 <th class="pagenav_prev">
 <a href="'. $row->prev .'">'
 . JText::_( '<' ) . $pnSpace . JText::_( 'Prev' ) . '</a>
 </th>'
 ;
 }

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

 if ($row->next)
 {
 $html .= '
 <th class="pagenav_next">
 <a href="'. $row->next .'">'
 . JText::_( 'Next' ) . $pnSpace . JText::_( '>' ) .'</a>
 </th>'
 ;
 }
 $html .= '
 </tr>
 </table>'
 ;

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

// output
if ($row->prev || $row->next)
{
$html = '
<table align="center" class="pagenav">
<tr>'
;
if ($row->prev)
{
$html .= '
<td class="pagenav_prev">
<a href="'. $row->prev .'">'
. JText::_( 'Prev' ) . '</a>
<span class="page_raz">|</span>
</td>'
;
}
 
$html .= '
<td class="pagenav_list">
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($row->catid, $row->sectionid)).'">'
. JText::_( 'Prev2' ) . '</a>
</td>'
;
if ($row->next)
{
$html .= '
<td class="pagenav_next">
<span class="page_raz">|</span>
<a href="'. $row->next .'">'
. JText::_( 'Next' ) . '</a>
</td>'
;
}
$html .= '
</tr>
</table>'
;

Если теперь обновить страницу, то можно увидеть, что ссылка появилась:

Ссылка на категорию после изменения кода

Всё что теперь требуется - добавить языковую константу.

 

Шаг 2. Открываем файл language/ru-RU/ru-RU.ini и в после 260 строки добавляем код:

PREV2=Вернуться к списку новостей

Сохраняем файл, обновляем страницу сайта, чтобы отсмотреть изменения и видим:

Ссылка на категорию - результат

Т.е. мы получили нормальную ссылку, которая всегда будет вести именно к перечню всех новостей, независимо от того, с какой страницы пользователь на неё попал.

 

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

WMR - R166832041362

WMZ - Z314865156270

QIWI - 9638061071

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


Комментарии 
 
#4 13.10.2013 15:40
Ага, только проверь как себя ведет ссылка "вернуться назад", если зайти в статью напрямую по ссылке. Удивишься очень
 
 
#3 25.10.2012 15:17
Жаль для joomla 2.5 не работает
 
 
#2 06.11.2011 15:30
Цитирую slepoy:
Если пользователь перешел со страницы сайт.ру/news/kino.html?start=5 на материал, то нажав "Вернуться", он будет перенаправлен на сайт.ру/news/kino.html?start=5 или сайт.ру/news/kino.html?

Не проверял, но скорей всего всё-таки второй вариант.

Цитирую slepoy:
Если не включить эту функцию, то и ссылка "вернуться", соответственно, не появится?

Всё верно, не появится.
 
 
#1 06.11.2011 15:29
Если пользователь перешел со страницы сайт.ру/news/kino.html?start=5 на материал, то нажав "Вернуться", он будет перенаправлен на сайт.ру/news/kino.html?start=5 или сайт.ру/news/kino.html?
Цитата:
ссылки для перехода на следующую или предыдущую новости
Если не включить эту функцию, то и ссылка "вернуться", соответственно, не появится?