public static function newTagInstance($sTagName, $sModelName, $iTaggedItemId) { $sTagName = StringUtil::normalize($sTagName); $oTag = TagPeer::retrieveByName($sTagName); if ($oTag === null) { $oTag = new Tag(); $oTag->setName($sTagName); $oTag->save(); } $oTagInstance = self::retrieveByPK($oTag->getId(), $iTaggedItemId, $sModelName); if ($oTagInstance !== null) { throw new Exception("Instance of this tag does already exist"); } $oTagInstance = new TagInstance(); $oTagInstance->setTag($oTag); $oTagInstance->setModelName($sModelName); $oTagInstance->setTaggedItemId($iTaggedItemId); $oTagInstance->save(); return $oTagInstance; }
/** * Add a tag to the Page given by the id */ public static function addTagTo($sPageId, $mTag) { if ($mTag instanceof TagInstance) { $mTag = $mTag->getTag(); } if ($mTag instanceof Tag) { $mTag = $mTag->getName(); } $sTagName = StringUtil::normalize($mTag); $oTag = TagQuery::create()->findOneByName($sTagName); if ($oTag === null) { $oTag = new Tag(); $oTag->setName($sTagName); $oTag->save(); } $oTagInstance = TagInstanceQuery::create()->findPk(array($oTag->getId(), $sPageId, "Page")); if ($oTagInstance !== null) { return $oTagInstance; } $oTagInstance = new TagInstance(); $oTagInstance->setTag($oTag); $oTagInstance->setModelName("Page"); $oTagInstance->setTaggedItemId($sPageId); $oTagInstance->save(); return $oTagInstance; }