/** * Prepare the rendering. * * @return ItemList */ public function prepare() { if ($this->objItems) { return $this; } // Create an empty filter object if not done before. if (!$this->objFilter) { $this->objFilter = $this->objMetaModel->getEmptyFilter(); } if ($this->objFilterSettings) { $this->objFilterSettings->addRules($this->objFilter, $this->arrParam); } $this->modifyFilter(); $intTotal = $this->objMetaModel->getCount($this->objFilter); $calculator = $this->paginationLimitCalculator; $calculator->setTotalAmount($intTotal); $curPage = (int) \Input::get('page'); if ($curPage > 1) { $calculator->setCurrentPage($curPage); } $this->objTemplate->total = $intTotal; $this->objItems = $this->objMetaModel->findByFilter($this->objFilter, $this->strSortBy, $calculator->getCalculatedOffset(), $calculator->getCalculatedLimit(), $this->strSortDirection, $this->getAttributeNames()); return $this; }