Постраничная навигация в Joomla. Изменение внешнего вида

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

По умолчанию постраничная навигация имеет следующий вид:

<<Первая < Предыдущая 1 2 3 4 Следующая > Последняя>>

Страница 1 из 4

И этот вид мало кого устраивает, поэтому постараемся ее видоизменить наиболее эффективным и бескровным методом.

За вывод постраничной навигации отвечает системный файл pagination.php, который можно найти в папке \имя сайта\libraries\joomla\html\ pagination.php .  Вносить изменения непосредственно в этот файл не рационально, т.к. при обновлении Joomla все ваши настройки улетучатся, и вам снова придется настраивать вывод навигации.

Правильнее будет прописать схему вывода постраничной навигации в отдельном файле pagination.php и поместить его в папку вашего шаблона. При вызове постраничной навигации Joomla первым делом будет искать файл pagination.php в папке активного шаблона, если такового не обнаружит, то будет использовать системный pagination.php. Если ваш шаблон будет иметь свой собственный pagination.php, то при обновлении Joomla изменения не затронут ваши настройки навигации.

Не будем мучить мозг и тратить время на создание нового pagination.php,  а позаимствуем нужный нам файл  у шаблона rhuk_milkyway. В отличии от системного pagination.php этот файл не столь объемный и весьма прост для понимания, а главное он содержит самые необходимые для нас функции.

Для начала, создаем в папке шаблона нашего сайта дополнительную папку html. Находим файл pagination.php в папке html шаблона rhuk_milkyway и копируем файл в одноименную папку нашего шаблона.

Все подготовительные работы проведены и можно приступать к изменению вывода навигации в  файле pagination.php на свой вкус. Пожалуй, еще один нюанс тексты ссылок «Первая», «Предыдущая», «Следующая», «Последняя» вы можете изменить в файле ru-RUni, который ищем  здесь: имя сайта/language/ru-RU.

Открываем файл pagination.php и разбираемся какая функция за, что отвечает.

За вывод  основного блока навигации  <<Первая < Предыдущая 1 2 3 4 Следующая > Последняя>>, отвечает функция pagination_list_render.

Функция pagination_item_active отвечает за вывод активных пунктов, т.е.  ссылок на номера страниц, кроме текущей, поэтому пункты заключаются в тег <a>.

Функция pagination_item_inactive отвечает за вывод неактивного пункта, т.е номера текущей страницы, данный пункт заключается в тег <span>.

Разберем подробнее функцию pagination_list_render.

Вывод слова «Первая»

$html .= '<span>&laquo;</span>'.$list['start']['data'];

Вывод слова «Предыдущая»

$html .= $list['previous']['data'];

Вывод слова «Следующая»

$html .= $list['next']['data'];

Вывод слова «Последняя»

$html .= $list['end']['data'];

Если вы не хотите выводить какое-то слово в навигации, то закомментируйте код, отвечающий за вывод слова, поставив два слеша // перед кодом.

Если вы хотите выводить только слова «Первая» и «Последняя», при этом надо убрать слово «Первая» на первой странице, а «Последняя» на последней.

Меняем код слова «Первая»

$html .= '<span>&laquo;</span>'.$list['start']['data'];

На

html .= '<span>&laquo;</span>';

if (strpos($list['start']['data'], "<a") === 0)

$html .= $list['start']['data'];

Меняем код слова «Последняя»

$html .= $list['end']['data'];

На

if (strpos($list['end']['data'], "<a") === 0)

$html .= $list['end']['data'];

Оформление навигации прописываем в файле template.css нашего шаблона при помощи следующих классов: span.pagination span и span.pagination a.  Тут ваша фантазия может развернуться в полной мере , используя все возможности CSS.

В заключение хочу рассказать, как можно расправиться с фразой счетчика «Страница 1 из 4». Если она не радует ваш глаз и вы хотите избавиться от нее, то придется  внести некоторые изменения в системный файл pagination.php (имя файла\libraries\joomla\html) , иначе никак.

Ищем функцию function getPagesCounter в системном файле pagination.php и в ней следующую строку:

$html .= JText::sprintf('JPAGE_CURRENT_OF_TOTAL', $this->get('pages.current'), $this->get('pages.total'));

Комментируем строку двумя слешами и все.

Еще в системном файле можно поменять количество отображаемых страниц. По умолчанию их будет 10, но если вы хотите вывести больше, то внесите изменения в следующую строку:

$displayedPages    = 10;

Теперь вы сможете привести постраничную навигацию вашего сайта в приличный вид.


 
Каталог@Mail.ru - каталог ресурсов интернет

Рейтинг@Mail.ru