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

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

Переопределение количества постов в пагинации пользователем

 (Прочитано 383 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vicos
Осваиваюсь на форуме
***

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

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



« : 07.04.2015, 17:13:13 »

Добрый день!
Подскажите пожалуйста как переопределить количество выводимых постов на странице? Над выводимыми постами будет форма с select -> 20, 40, 60 к примеру. Выбираем страница обновляется и получаем количество нам необходимое.
Компонент самописный.
Изначально задаётся количесвтво в моделе функцией:
Код:
public function populateState( $ordering = null, $direction = null )
{
parent::populateState( $ordering, $direction );
$input = JFactory::getApplication()->input;
$params = JComponentHelper::getParams( 'com_sclad' );
$this->setState( 'list.start', $input->get( 'start' ) );
$this->setState( 'list.limit', $params->get( 'limit', 20 ) );
}
Эта
Код:
$this->setState( 'list.limit', $params->get( 'limit', 20 ) );
строчка и определяет изначально сколько вывести.
В шаблоне вывода пагинация выводится
Код:
<?php echo $this->pagination->getPagesLinks(); ?>
Пробовал изменять и смотрел var_dump($this).
Вроде как выводится в
Код:
protected 'query' =>
            object(JDatabaseQueryMysqli)[270]
              protected 'offset' => int 0
              protected 'limit' => int 11
              protected 'db' =>
Даллее формируется запрос.
Как получить доступ к этому значению не пойму.
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #1 : 07.04.2015, 17:34:34 »

$this->pagination->getLimitBox(); выводит селект с лимитами

Текущее значение берется из сессии или запроса:
Код
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit'), 'uint');
 
« Последнее редактирование: 07.04.2015, 17:46:16 от zomby6888 » Записан
b2z
Support Team
*****

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

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


Разраблю понемногу


« Ответ #2 : 07.04.2015, 18:20:03 »

А я сначала подумал, что нужно сделать кастомный getLimitBox(). Но, похоже что ТС просто не знал, что в принципе есть getLimitBox() Wink
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #3 : 07.04.2015, 18:27:38 »

В большинстве случаев может и лучше кастомный написать. Например чтобы изменить шаг в лимитах(+5 по умолчанию)
Записан
Vicos
Осваиваюсь на форуме
***

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

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



« Ответ #4 : 07.04.2015, 19:40:58 »

Вот это значение:
Код:
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit'), 'uint');
Изначально не то что берётся в функции компонента, т.е. Выводится 20, $limit - 15.
При getLimitBox() форма отрабатывает, значение меняется, но количество не выведенных постов не изменяется.
Может проблема моя в том что
Код:
$this->setState( 'list.limit', $params->get( 'limit', 20 ) );
Значение вбито напрямую?
« Последнее редактирование: 07.04.2015, 19:44:20 от Vicos » Записан
AlekVolsk
Профи
********

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

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



« Ответ #5 : 07.04.2015, 19:47:44 »

Может проблема моя в том что
Код:
$this->setState( 'list.limit', $params->get( 'limit', 20 ) );
Значение вбито напрямую?
Да, именно в этом. Сюда лучше подставлять значение, взятое из системных настроек
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #6 : 07.04.2015, 20:05:05 »

Лучше вобще убрать эту строку иначе всегда оно будет такое, какое в настройках и не будет менятся. Родительский populate state сам получит нужное значение и установит.
Записан
Vicos
Осваиваюсь на форуме
***

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

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



« Ответ #7 : 07.04.2015, 20:40:11 »

Да, именно в этом. Сюда лучше подставлять значение, взятое из системных настроек
Спасибо! Проблема решена.
Записан
Vicos
Осваиваюсь на форуме
***

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

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



« Ответ #8 : 07.04.2015, 20:42:39 »

Лучше вобще убрать эту строку иначе всегда оно будет такое, какое в настройках и не будет менятся. Родительский populate state сам получит нужное значение и установит.
Ага, в действительности перегрузка этого метода ни к чему. Ну зато понял как работает пагинация в Joomla.
Спасибо!
« Последнее редактирование: 07.04.2015, 22:11:16 от Vicos » Записан
Страниц: [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