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 static function getEditableTaxonomies()
 {
     $criteria = new Criteria();
     $criteria = self::addEditableTaxonomyCriteria($criteria);
     // Add criteria to sort by name with culture fallback
     $criteria->addAscendingOrderByColumn('name');
     $options = array('returnClass' => 'QubitTaxonomy');
     $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 'QubitTaxonomy', $options);
     return QubitTaxonomy::get($criteria);
 }
 public static function gettaxonomysRelatedByparentIdById($id, array $options = array())
 {
     $criteria = new Criteria();
     self::addtaxonomysRelatedByparentIdCriteriaById($criteria, $id);
     return QubitTaxonomy::get($criteria, $options);
 }