Форум русской поддержки Joomla!® CMS
03.12.2016, 15:41:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как получить номер текущей страницы?

 (Прочитано 141 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mike_S
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10



« : 08.07.2016, 03:27:31 »

Всем доброго времени суток drink! Использую Joomla 2.5 и Virtuemart2.
Делаю сейчас отображение номера страницы в title. Нашел решение для Joomla 1.5. Решил изменить его под свой движок.

head.php
Код:
$tab = $document->_getTab();
$limitstart = JRequest::getInt('limitstart', 0);
                $limit = JRequest::getInt('limit', 0);
                $option = JRequest::getVar('option','');
$curpage = ceil(($limitstart + 1) / $limit);

Вывожу в title

Код:
if ($curpage > 1 && $option=='com_virtuemart') $title_page= " ".JText::_( 'PAGE' )." - ".$curpage;
$buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8'). ' '.$title_page.'</title>' . $lnEnd;

$limit = JRequest::getInt('limit', 0); возвращает 0 на любой странице. Подскажите пожалуйста способ, как можно получить номер страницы для вывода в title.
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #1 : 08.07.2016, 11:33:17 »

открываешь libraries/joomla/html/pagination.php
ищешь функцию function getPagesCounter() (в районе 220 строки)
после этой функции создаешь свою
Код
 public function getPagesCurrent() // функция отдающая текущий номер страницы
{
 $html = null;
 $html = $this->get('pages.current');
 return $html;
}


в нужном месте вызываешь эту функцию
Код
echo $this->vmPagination->getPagesCurrent();
Записан
fsv
Moderator
*****

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2235


« Ответ #2 : 08.07.2016, 16:00:36 »

открываешь libraries/joomla/html/pagination.php
... внимательно смотришь, ничего не трогаешь, закрываешь. Радуешься, что оставляешь за собой возможность обновляться.

Все изменения - в переопределенных шаблонах (или плагинами).

Вместо limit:
Код
$llimit_init_FE = VmConfig::get('llimit_init_FE', 24);
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #3 : 08.07.2016, 16:16:15 »

Цитировать
Радуешься, что оставляешь за собой возможность обновляться

Joomla 2.5, VM 2 и "обновляться" уже давно не актуально
Записан
Mike_S
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10



« Ответ #4 : 08.07.2016, 17:04:00 »

в нужном месте вызываешь эту функцию
Код
echo $this->vmPagination->getPagesCurrent();
Не сработало, после добавления $curpage=$this->vmPagination->getPagesCurrent(); - ошибка, белый лист.

Вместо limit:
Код
$llimit_init_FE = VmConfig::get('llimit_init_FE', 24);

Это решение помогло. Таким образом код получился таким:

Получаем данные

Код
$limitstart = JRequest::getInt('limitstart', 0);
$limit = VmConfig::get('llimit_init_FE', 24);
$option = JRequest::getVar('option','');
$curpage = ceil(($limitstart + 1) / $limit);
 

Выводим в title

Код
		if ($curpage > 1 && $option=='com_virtuemart') $title_page= " | Страница - ".$curpage;
$buffer .= $tab . '<title>' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8'). ' '.$title_page.'</title>' . $lnEnd;
 

В результате получаем title такого вида - "Основной заголовок | Страница - 2"
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet