Exemplo n.º 1
0
 /**
  * @param sfGuardUser $user
  * @param integer $element_id
  * @param string $name
  * @param string $type
  */
 public static function removeTag($user, $element_id, $name, $type)
 {
     if ($type == 'decision') {
         $tagBridge = Doctrine_Core::getTable('TagDecision')->createQuery('td')->leftJoin('td.Tag t')->where('td.decision_id = ?', $element_id)->andWhere('t.name = ?', $name)->andWhere('t.user_id = ?', $user->id)->fetchOne();
     } else {
         if ($type == 'release') {
             $tagBridge = Doctrine_Core::getTable('TagRelease')->createQuery('td')->leftJoin('td.Tag t')->where('td.release_id = ?', $element_id)->andWhere('t.name = ?', $name)->andWhere('t.user_id = ?', $user->id)->fetchOne();
         } else {
             $tagBridge = Doctrine_Core::getTable('TagAlternative')->createQuery('ta')->leftJoin('ta.Tag t')->where('ta.alternative_id = ?', $element_id)->andWhere('t.name = ?', $name)->andWhere('t.user_id = ?', $user->id)->fetchOne();
         }
     }
     if ($tagBridge) {
         $tagBridge->delete();
         $tagDecision = TagDecisionTable::getInstance()->findOneByTagId($tagBridge->tag_id);
         if (!$tagDecision) {
             $tagAlternative = TagAlternativeTable::getInstance()->findOneByTagId($tagBridge->tag_id);
             if (!$tagAlternative) {
                 TagTable::getInstance()->find($tagBridge->tag_id)->delete();
             }
         }
     }
     return;
 }