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();
 }