it-swarm-id.com

Kebingungan Pagination - Pagination menggunakan mulai, PopulateState menggunakan limitstart?

Saya sedikit bingung.

Ketika saya melihat tautan yang dibuat oleh pagination di ujung depan, saya melihat parameter kueri yang disebut mulai termasuk dalam masing-masing tautan nomor halaman dan tautan Mulai dan Akhir.

Namun, metode populateState di basis JModelList kelas mencari limitstart jika $this->context memiliki non null value.

Karena konstruktor dasar untuk JModelList set $this->context sama dengan <component_name>.<model_name> Sepertinya dalam kasus default - $this->context tidak akan null, jadi populateState biasanya akan memberikan nilai dari $_GET['limitstart'] menggunakan getUserStateFromRequest() ketika kode potongan menunjukkan:

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

Saya akan sangat berterima kasih jika seseorang dapat menjelaskan mengapa hal-hal dilakukan dengan cara ini, dan apa yang harus saya lakukan untuk mendapatkan populateState dan pagination untuk menyetujui variabel yang memegang baris tersebut bahwa halaman harus dimulai.

TIA.

7
Nick Weavers

Beberapa kode default membingungkan karena joomla menggunakannya untuk proses mulai dari akhir rendering halaman. Sesuai persyaratan, pagination perlu mengikuti dua variabel keadaan yang ditetapkan, jadi Anda perlu mengatur dalam metode populateState () yang ditimpa model Anda (sumber - 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);

selanjutnya, jika Anda melihat metode getPagination () di kelas induk jmodellist, Anda bisa mendapatkan ide bagaimana hal-hal dihitung dari variabel state untuk menampilkan pagination.

3
dev-m