web-dev-qa-db-fra.com

Confusion en pagination - La pagination utilise start, PopulateState utilise limitstart?

Je suis un peu confus.

Lorsque je regarde le lien créé par la pagination au début, je vois un paramètre de requête appelé début inclus dans les liens de numéro de page individuels et les liens de début et de fin.

Cependant, la méthode populateState dans la base JModelList la classe recherche limitstart si $this->context a un non null value.

Comme le constructeur de base pour JModelList définit $this->context égal à <component_name>.<model_name>, Il semble que dans le cas par défaut - $this->context ne sera pas null, donc populateState attribuera généralement la valeur de $_GET['limitstart'] en utilisant getUserStateFromRequest() comme le code extrait indique:

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

Je serais vraiment reconnaissant si quelqu'un pouvait expliquer pourquoi les choses sont faites de cette façon et ce que je dois faire pour obtenir populateState et pagination se mettre d'accord sur la variable qui contient la ligne. que la page doit commencer.

TIA.

7
Nick Weavers

Certains codes par défaut prêtent à confusion car joomla utilise ceux utilisés pour le rendu des processus de bout en bout. Conformément aux exigences, la pagination doit suivre deux ensembles de variables d'état. Vous devez donc définir la méthode populateState () de votre modèle (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);

de plus, si vous regardez la méthode getPagination () dans la classe parente de jmodellist, vous pouvez avoir une idée de la façon dont les choses sont calculées à partir des variables d'état pour afficher la pagination.

3
dev-m