Ich bin ein bisschen verwirrt.
Wenn ich mir den durch Paginierung erstellten Link im Front-End anschaue, sehe ich einen Abfrageparameter namens start, der in den einzelnen Seitenzahlen-Links und Start- und End-Links enthalten ist.
Die Methode populateState
in der Basisklasse JModelList
sucht jedoch nach limitstart
if $this->context
a non null value
.
Da der Basiskonstruktor für JModelList
Mengen $this->context
, die gleich sind, <component_name>.<model_name>
im Standardfall $this->context
nicht null ist, weist populateState normalerweise den Wert aus der $_GET['limitstart']
Verwendung zu, getUserStateFromRequest()
wie der abgeschnittene Code zeigt:
$value = $app->getUserStateFromRequest($this->context . '.limitstart', 'limitstart', 0);
$limitstart = ($limit != 0 ? (floor($value / $limit) * $limit) : 0);
$this->setState('list.start', $limitstart);
Ich wäre wirklich dankbar, wenn jemand erklären könnte, warum die Dinge so gemacht werden und was ich tun muss, damit populateState und Paginierung sich auf die Variable einigen, die die Zeile enthält, mit der die Seite beginnen soll.
TIA.
$pagination = $this->get('Pagination');
Ansichtsdatei aufrufen, sind die erforderlichen Statusvariablen in der populateState-Methode des Modells auf diese Weise leicht zu verstehen -$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);