processUserInput (); $this->fetchResults ($page); } protected function fetchResults ($page) { { $query = new Sql_Template (); $query->addWhere ("`:prefix:templates`.disabled = 0"); $this->getQuery ($query); $limit = $this->getNumberOfColumns () * $this->getNumberOfRows (); $offset = ($page - 1) * $limit; $query->setLimit ($limit); $query->setOffset ($offset); } $searchcluster = ORM::factory ('templatesearch'); $templates = $searchcluster->getTemplatesByRequest ($query, $this->getNumberOfColumns ()); { $view = $this->getView (); $view->searchresult = $templates; } } protected function getQuery (Sql_Template $query) { $searchcluster = ORM::factory ('templatesearch'); $i = 0; do { $search_query = clone $query; if (isset ($templates)) { $this->degrade (); if (++ $i > 30) { return; } } foreach ($this->getCriteria () as $criterion) { $criterion->attachSql ($search_query); } $templates = $searchcluster->prefetchRecordCount ($search_query); } while ($this->isDegradeable () && ! $templates); foreach ($this->getCriteria () as $criterion) { $criterion->attachSql ($query); } } function setNumberOfColumns ($number_of_columns) { $this->number_of_columns = $number_of_columns; } function getNumberOfColumns () { return $this->number_of_columns; } function setNumberOfRows ($number_of_rows) { $this->number_of_rows = $number_of_rows; } function getNumberOfRows () { return $this->number_of_rows; } }