public function setTermRelationByName($name, $options) { // see if subject term already exists $criteria = new Criteria(); $criteria->addJoin(QubitTerm::ID, QubitTermI18n::ID); $criteria->add(QubitTerm::TAXONOMY_ID, $options['taxonomyId']); $criteria->add(QubitTermI18n::NAME, $name); if (null === ($term = QubitTerm::getOne($criteria))) { $term = new QubitTerm(); $term->setTaxonomyId($options['taxonomyId']); $term->setName($name); $term->setRoot(); $term->save(); if (isset($options['source'])) { $note = new QubitNote(); $note->content = $options['source']; $note->typeId = QubitTerm::SOURCE_NOTE_ID; $note->userId = sfContext::getInstance()->user->getAttribute('user_id'); $term->notes[] = $note; } } $this->addTermRelation($term->id); }
public function setTypeByName($name) { // See if type term already exists $criteria = new Criteria(); $criteria->addJoin(QubitTerm::ID, QubitTermI18n::ID); $criteria->add(QubitTerm::TAXONOMY_ID, QubitTaxonomy::REPOSITORY_TYPE_ID); $criteria->add(QubitTermI18n::NAME, $name); if (null === ($term = QubitTerm::getOne($criteria))) { $term = new QubitTerm(); $term->setTaxonomyId(QubitTaxonomy::REPOSITORY_TYPE_ID); $term->setName($name); $term->setRoot(); $term->save(); } foreach (self::getTermRelations(QubitTaxonomy::REPOSITORY_TYPE_ID) as $item) { // Faster than $item->term == $term if ($item->termId == $term->id) { return; } } $relation = new QubitObjectTermRelation(); $relation->term = $term; $this->objectTermRelationsRelatedByobjectId[] = $relation; }