/** * {@inheritDoc} */ public function initialize(ConfigInterface $objConfig, PanelElementInterface $objElement = null) { if (is_null($objElement)) { $objTempConfig = $this->getOtherConfig(); $arrTotal = $this->getEnvironment()->getDataProvider()->fetchAll($objTempConfig->setIdOnly(true)); $this->intTotal = $arrTotal ? count($arrTotal) : 0; $offset = 0; // TODO: we need to determine the perPage some better way. $amount = $GLOBALS['TL_CONFIG']['resultsPerPage']; $input = $this->getInputProvider(); if ($this->getPanel()->getContainer()->updateValues() && $input->hasValue('tl_limit')) { $limit = explode(',', $input->getValue('tl_limit')); $offset = $limit[0]; $amount = $limit[1]; $this->setPersistent($offset, $amount); } $persistent = $this->getPersistent(); if ($persistent) { $offset = $persistent['offset']; $amount = $persistent['amount']; // Hotfix the offset - we also might want to store it persistent. // Another way would be to always stick on the "last" page when we hit the upper limit. if ($offset > $this->intTotal) { $offset = 0; } } if (!is_null($offset)) { $this->setOffset($offset); $this->setAmount($amount); } } $objConfig->setStart($this->getOffset()); $objConfig->setAmount($this->getAmount()); }
/** * {@inheritDoc} */ public function initialize(ConfigInterface $objConfig, PanelElementInterface $objElement = null) { if ($objElement === null) { $this->calculateTotal(); $offset = 0; $amount = $this->getItemsPerPage(); $input = $this->getInputProvider(); if ($this->getPanel()->getContainer()->updateValues() && $input->hasValue('tl_limit')) { $limit = explode(',', $input->getValue('tl_limit')); $offset = $limit[0]; $amount = $limit[1]; $this->setPersistent($offset, $amount); } $persistent = $this->getPersistent(); if ($persistent) { $offset = $persistent['offset']; $amount = $persistent['amount']; // Hotfix the offset - we also might want to store it persistent. // Another way would be to always stick on the "last" page when we hit the upper limit. if ($offset > $this->intTotal) { $offset = 0; } } if ($offset !== null) { $this->setOffset($offset); $this->setAmount($amount); } } $objConfig->setStart($this->getOffset()); $objConfig->setAmount($this->getAmount()); }