it-swarm-tr.com

Sayfalandırma karışıklığı - Sayfalandırma başlangıç ​​kullanır, PopulateState limit başlangıcı kullanır mı?

Biraz kafam karıştı.

Ön uçta sayfalandırma tarafından oluşturulan bağlantıya baktığımda, tek tek sayfa numarası bağlantılarında ve Başlangıç ​​ve Bitiş bağlantılarında start adlı bir sorgu parametresi görüyorum.

Ancak, temel populateState sınıfındaki JModelList yöntemi limitstart, _$this->context_ 'da _non null value_ varsa.

JModelList için temel kurucu, _$this->context_ 'u _<component_name>.<model_name>_ olarak ayarlar. varsayılan durum _$this->context_ null olmayacaktır, bu nedenle populateState genellikle değeri atar _$_GET['limitstart']_ kodunu gösteren kodda gösterildiği gibi getUserStateFromRequest() kullanarak:

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

Birisi şeylerin neden bu şekilde yapıldığını ve populateState ve sayfalandırma üzerinde anlaşmak için ne yapmam gerektiğini açıklayabilirse gerçekten minnettar olurum. sayfanın başlaması gereken satırı tutan değişken.

TIA.

7
Nick Weavers

Joomla, sayfa oluşturma işleminin başlangıcından sonuna kadar olan işlemler için kullandığı için bazı varsayılan kodlar kafa karıştırıcıdır. Gereksinimlere göre, sayfalandırma ayarlanmış iki durum değişkenini izlemelidir, bu nedenle modelinizin geçersiz kılınan populateState () yöntemini (kaynak - com_weblinks) ayarlamanız gerekir -

// 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);

ayrıca, jmodellist üst sınıfında getPagination () yöntemine bakarsanız, sayfa gösterimini görüntülemek için durum değişkenlerinden olayların nasıl hesaplandığı hakkında fikir edinebilirsiniz.

3
dev-m