Может кому понадобиться: Изменение постраничной навигации Joomla

Автор Тема: Может кому понадобиться: Изменение постраничной навигации Joomla  (Прочитано 9024 раз)

Оффлайн Mihail152150Автор темы

  • Бизнес оценка: (0)
  • Рекрут
  • *
  • СПАСИБО: 7
  • Сообщений: 27
  • Карма: 3
  • Пол: Мужской
  • а вот и я)))))))
    • Просмотр профиля
    • Мир ужаса - Все о фильмах ужасов, обзор фильмов ужасов, выбирай свой фильм ужасов!

Оффлайн Mihail152150Автор темы

  • Рекрут
  • *
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 7
    • Сообщений: 27
    • Карма: 3
    • Пол: Мужской
    • а вот и я)))))))
      • Просмотр профиля
      • Мир ужаса - Все о фильмах ужасов, обзор фильмов ужасов, выбирай свой фильм ужасов!
Здравствуйте уважаемые джумляне!! Очень часто на разных форумах посвященных joomla слышу такой вопрос: "Как изменить постраничную навигацию (пагинацию)?". Все очень просто ,в этой статье я попробую подробно описать изменение пагинации Joomla1.5. Стандартный вывод постраничной навигации Joomla  выглядит так:


          << Начало  Предыдущая  1 2 3 4 5 6 7 8 9 10  Следующая  Последняя >>
 

Иногда требуется изменить количество выводимых страниц, например сократить до пяти или же наоборот увеличить. Делается это следующим образом. Открываем в редакторе  файл pagination.php который находится по адресу \libraries\joomla\html и редактируем  96 строку
$displayedPages = 10;
ставим свое значение . Если нужно что бы выводились все страницы вставляем следующий код:
$displayedPages = $this->total;
Если же нам нужно избавиться от слов "Начало" "Предыдущая" "Следующая" и т.д.  Тогда в этом же файле нужно закоментировать следующие строки:

$data->start = new JPaginationObject(JText::_('Start'));
$data->previous = new JPaginationObject(JText::_('Prev'));
$data->next  = new JPaginationObject(JText::_('Next')); 
$data->end  = new JPaginationObject(JText::_('End'));
Соответственно  "Начало" "Предыдущая" "Следующая" "Последняя" . Это 482,483.498, и 499 строки в файле .Теперь пагинация выглядит так...

      << 1 2 3 4 5 6 7 8 9 10 >>

Если вам понадобится убрать символы  << >> , то находим блок кода который находится с 423 по 434 строки и убираем все подобные символы &gt , &lt оставляя только кавычки. Выглядеть это должно так:

$html .= ' ';
$html .= $list['start']['data'];
$html .= '  ';
$html .= $list['previous']['data'];
foreach( $list['pages'] as $page ) {
$html .= ' '.$page['data'];
}
$html .= ' '. $list['next']['data'];
$html .= ' ';
$html .= ' '. $list['end']['data'];
$html .= ' ';
Что бы убрать  надпись ниже , например "Страница 1 из 10" нужно закоментировать 151 строку

$html .= JText::sprintf('JPAGE_CURRENT_OF_TOTAL', $this->get('pages.current'), $this->get('pages.total'));
Если вам вдруг понадобиться просто изменить значения  "Начало" "Предыдущая" "Следующая" "Последняя" , то открываем на редактирование  файл ru-RU.ini , он проживает по адресу \language\ru-RU находим эти слова и меняем как хотим.

 

Теперь давайте разберемся как убрать текст "Начало" если мы итак находимся на первой странице и как убрать "Последняя" когда мы находимся на последней странице. Делать мы это будем на примере стандартного шаблона rhuk_milkyway ,версия движка  1.5.23  Избавляемся от слова "Начало"

Находим 85 строку в файле "pagination.php" шаблона  rhuk_milkyway который находтся по адресу ...\joomla\templates\rhuk_milkyway\html\pagination.php

$html .= '<span>«</span>'.$list['start']['data'];<strong> </strong>
Для удобства разбиваем эту строку , то есть переносим пристековку. Теперь  делаем условие....

if(strpos($list['start']['data'],"<a")===0)
Все вместе это должно выглядеть примерно так:

$html = "<span class=\"pagination\">";
$html .= '<span>«</span>';
if(strpos($list['start']['data'],"<a")===0)
$html .=$list['start']['data'];
$html .= $list['previous']['data'];
Таким же образом убираем "Последняя" если мы находимся на последней странице. Находим в том же файле 102 строку

$html .= $list['end']['data'];
и перед ней добавляем условие

if(strpos($list['end']['data'],"<a")===0)
Вся функция должна выглядеть так:

function pagination_list_render($list)
{
// Initialize variables
$html = "<span class=\"pagination\">";
$html .= '<span>«</span>';
if(strpos($list['start']['data'],"<a")===0)
$html .=$list['start']['data'];
$html .= $list['previous']['data'];
 
foreach( $list['pages'] as $page )
{
if($page['data']['active']) {
$html .= '<strong>';
}
 
$html .= $page['data'];
 
if($page['data']['active']) {
$html .= '</strong>';
}
}
 
$html .= $list['next']['data'];
if(strpos($list['end']['data'],"<a")===0)
$html .= $list['end']['data'];
$html .= '<span>»</span>';
 
$html .= "</span>";
return $html;
}
Теперь будем менять текст всплывающей подсказки, по умолчанию он совпадает с ссылкой . К примеру мы хотим сделать что бы при наведение курсора на  "Следующая" всплывающая  подсказка была "Вперед". В этом нам поможет функция str_replace() .

находим следующую строку...

$html .= $list['next']['data'];
и прямо  перед ней прописываем следующее..

$list['next']['data']=str_replace("title=\"Следующая\"","title=\"Вперед \"",$list['next']['data'] );
Обязательно сохраняем файл в кодировке UTF-8(без BOM) !! Это можно сделать с помощью обычного блокнота или  в Notepad++.

Ну и конечно с помощью CSS можно менять оформление . Размер шрифта, цвет , фон, и так далее...
« Последнее редактирование: 10-08-2011, 22:49:07 от Mihail152150 »
http://miruzhasa.ru/ - Обзор фильмов ужасов, все о фильмах ужасов!


Оффлайн Vasiliy111

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 261
  • Сообщений: 813
  • Карма: 35
    • Просмотр профиля
    • Сайт домашнего электрика

Оффлайн Vasiliy111

  • Ветеран
  • *****
может кто знает как убрать из url "?start=" при постраничной навигации

Оффлайн Dimas

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 1
  • Сообщений: 55
  • Карма: 1
  • Пол: Мужской
    • Просмотр профиля
    • Авто-Мастер

Оффлайн Dimas

  • Пользователь
  • **
может кто знает как убрать из url "?start=" при постраничной навигации

Да тоже интересен этот вопрос. К тому же, что бы еще автоматически добавляла в тайтл номер странице, например если открыта 2 страница категории, то к названию категории добавлял page2.


 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
2956 Просмотров
Последний ответ 11-08-2011, 22:35:46
от badhit
16 Ответов
6359 Просмотров
Последний ответ 27-12-2012, 18:25:22
от feniks81
2 Ответов
1235 Просмотров
Последний ответ 02-04-2014, 23:43:01
от zzajacc
0 Ответов
601 Просмотров
Последний ответ 24-07-2014, 17:15:00
от Shadow77
11 Ответов
3243 Просмотров
Последний ответ 22-01-2016, 19:21:44
от Надежда vk