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.
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.