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