Путаница разбиения на страницы - Pagination использует start, PopulationState использует limitstart?

Я немного смущен.

Когда я смотрю на ссылку, созданную разбиением на страницы в интерфейсе, я вижу параметр запроса start , включенный в отдельные ссылки на номера страниц, а также ссылки на начало и конец.

Однако метод populateState в базовом классе JModelList ищет limitstart , если $this->context имеет non null value .

Поскольку базовый конструктор для JModelList устанавливает $this->context как <component_name>.<model_name> он выглядит как в случае по умолчанию $this->context не будет null , поэтому populateState обычно присваивает значение $_GET['limitstart'] , используя getUserStateFromRequest() , как показывает отрезанный код:

$value = $app->getUserStateFromRequest($this->context . '.limitstart', 'limitstart', 0);
$limitstart = ($limit != 0 ? (floor($value / $limit) * $limit) : 0);
$this->setState('list.start', $limitstart); 

Я был бы очень благодарен, если бы кто-нибудь мог объяснить, почему все делается таким образом, и что мне нужно сделать, чтобы получить populateState и pagination , чтобы согласовать переменную, которая содержит строку, на которой должна начинаться страница.

ТИА.

7 голосов | спросил Nick Weavers 15 Maypm14 2014, 23:27:54

1 ответ


3

Некоторые коды по умолчанию запутывают, поскольку joomla использует их для процессов, начинающихся с конца страницы. В соответствии с требованиями, разбиение на страницы требует следующих двух переменных состояния, поэтому вам нужно установить в переопределенном методе populState () вашей модели (source-com_weblinks) -

// List state information
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->getCfg('list_limit'), 'uint');
$this->setState('list.limit', $limit);

$limitstart = JRequest::getUInt('limitstart', 0);
$this->setState('list.start', $limitstart);

Кроме того, если вы посмотрите метод getPagination () в родительском классе jmodellist, вы можете получить представление о том, как вещи вычисляются из переменных состояния для отображения разбиения на страницы.

ответил dev-m 21 Mayam14 2014, 03:01:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132