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

  • 4 Ответов
  • 295 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Mike_S

Всем доброго времени суток *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

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


в нужном месте вызываешь эту функцию
Код: (php) [Выделить]
echo $this->vmPagination->getPagesCurrent();

*

Оффлайн fsv

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

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

Вместо limit:
Код: (php) [Выделить]
$llimit_init_FE = VmConfig::get('llimit_init_FE', 24);
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

Оффлайн Liss

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

Joomla 2.5, VM 2 и "обновляться" уже давно не актуально

*

Оффлайн Mike_S

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

Вместо limit:
Код: (php) [Выделить]
$llimit_init_FE = VmConfig::get('llimit_init_FE', 24);

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

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

Код: (php) [Выделить]
$limitstart = JRequest::getInt('limitstart', 0);
$limit = VmConfig::get('llimit_init_FE', 24);
$option = JRequest::getVar('option','');
$curpage = ceil(($limitstart + 1) / $limit);

Выводим в title

Код: (php) [Выделить]
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"