public function execute($request) { $criteria = new Criteria(); $criteria = QubitTaxonomy::addEditableTaxonomyCriteria($criteria); $criteria->addJoin(QubitTaxonomy::ID, QubitTaxonomyI18n::ID); $criteria->add(QubitTaxonomyI18n::CULTURE, $this->context->user->getCulture()); // Narrow results by query if (0 < strlen($request->query)) { $criteria->add(QubitTaxonomyI18n::NAME, "{$request->query}%", Criteria::LIKE); } // Limit results by ACL $criterion = QubitAcl::getFilterCriterion($criteria, QubitTaxonomy::getById(QubitTaxonomy::ROOT_ID), 'createTerm'); if (isset($criterion) && true !== $criterion) { $criteria->addAnd($criterion); } else { if (false === $criterion) { // If access denied to all taxonomies, then return nothing return sfView::NONE; } } // Sort by name $criteria->addAscendingOrderByColumn(QubitTaxonomyI18n::NAME); // Show first 10 results $criteria->setLimit(10); $this->taxonomies = QubitTaxonomy::get($criteria); }
public function execute($request) { if (!isset($request->limit)) { $request->limit = sfConfig::get('app_hits_per_page'); } $criteria = new Criteria(); // Show only editable taxonomies $criteria = QubitTaxonomy::addEditableTaxonomyCriteria($criteria); // Do source culture fallback $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 'QubitTaxonomy'); $criteria->addAscendingOrderByColumn('name'); // Page results $this->pager = new QubitPager('QubitTaxonomy'); $this->pager->setCriteria($criteria); $this->pager->setMaxPerPage($request->limit); $this->pager->setPage($request->page); $this->taxonomies = $this->pager->getResults(); }