ti-enxame.com

Confusão de paginação - a paginação usa start, PopulateState usa limitstart?

Estou um pouco confuso.

Quando olho para o link criado pela paginação no front end, vejo um parâmetro de consulta chamado start incluído nos links de número de página individual e nos links Start e End.

No entanto, o método populateState na base JModelList a classe procura por limitstart se $this->context possui um non null value.

Como o construtor base para JModelList define $this->context para ser igual a <component_name>.<model_name>, Parece no caso padrão - $this->context não será nulo, portanto populateState geralmente atribuirá o valor de $_GET['limitstart'] usando getUserStateFromRequest() como o código capturado mostra:

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

Ficaria muito grato se alguém pudesse explicar por que as coisas são feitas dessa maneira e o que tenho que fazer para obter populateState e pagination para concordar com a variável que mantém a linha que a página deve começar.

TIA.

7
Nick Weavers

Alguns códigos padrão são confusos, já que o joomla os utiliza para processos que vão do início ao fim da renderização da página. Conforme os requisitos, a paginação precisa seguir duas variáveis ​​de estado definidas, portanto, você deve definir no método populateState () substituído do seu modelo (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);

além disso, se você procurar o método getPagination () na classe pai jmodellist, poderá ter uma idéia de como as coisas são calculadas a partir das variáveis ​​de estado para exibir a paginação.

3
dev-m