/** * Define (search) labels * * :FIXME: simplify * * @return void */ protected function defineLabels() { if (!isset($this->labels)) { $this->labelsCount = 0; $this->labels = array(); $data = \XLite\Core\Session::getInstance()->get('labelsSearch'); if (is_array($data)) { // Get total count if (isset($data['name'])) { $this->labelsCount = \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->countByName($data['name']); } else { $this->labelsCount = \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->count(); } $page = \XLite\Core\Request::getInstance()->page ? \XLite\Core\Request::getInstance()->page : $data['page']; list($this->pagesCount, $data['page']) = \XLite\Core\Operator::calculatePagination($this->labelsCount, $page, $this->limit); $start = ($data['page'] - 1) * $this->limit; // Get frame if (!$this->labelsCount) { $this->labels = array(); } elseif (isset($data['name'])) { $this->labels = \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->findLikeName($data['name'], $start, $this->limit); } else { $this->labels = \XLite\Core\Database::getRepo('\\XLite\\Model\\LanguageLabel')->findFrame($start, $this->limit); } \XLite\Core\Session::getInstance()->set('labelsSearch', $data); } } }