Пример #1
0
 /**
  * Delete stored object attribute
  *
  * @param eZContentObjectAttribute $contentObjectAttribute
  * @param eZContentObjectVersion $version
  */
 public function deleteStoredObjectAttribute($contentObjectAttribute, $version = null)
 {
     $contentObjectAttributeID = $contentObjectAttribute->attribute('id');
     eZTagsAttributeLinkObject::removeByAttribute($contentObjectAttributeID, $version);
 }
Пример #2
0
}
if ($http->hasPostVariable('NoButton')) {
    return $Module->redirectToView('id', array($tagID));
}
if ($http->hasPostVariable('YesButton')) {
    $db = eZDB::instance();
    $db->begin();
    $parentTag = $tag->getParent();
    if ($parentTag instanceof eZTagsObject) {
        $parentTag->updateModified();
    }
    $mainTagID = $tag->attribute('main_tag_id');
    $tag->registerSearchObjects();
    if ($http->hasPostVariable('TransferObjectsToMainTag')) {
        foreach ($tag->getTagAttributeLinks() as $tagAttributeLink) {
            $link = eZTagsAttributeLinkObject::fetchByObjectAttributeAndKeywordID($tagAttributeLink->attribute('objectattribute_id'), $tagAttributeLink->attribute('objectattribute_version'), $tagAttributeLink->attribute('object_id'), $mainTagID);
            if (!$link instanceof eZTagsAttributeLinkObject) {
                $tagAttributeLink->setAttribute('keyword_id', $mainTagID);
                $tagAttributeLink->store();
            } else {
                $tagAttributeLink->remove();
            }
        }
    } else {
        foreach ($tag->getTagAttributeLinks() as $tagAttributeLink) {
            $tagAttributeLink->remove();
        }
    }
    $tag->remove();
    $db->commit();
    return $Module->redirectToView('id', array($mainTagID));
Пример #3
0
 /**
  * Links the content object attribute and tag
  *
  * @static
  *
  * @param eZContentObjectAttribute $attribute
  * @param eZTagsObject $tagObject
  * @param string $keyword
  * @param string $locale
  */
 private static function linkTag(eZContentObjectAttribute $attribute, eZTagsObject $tagObject, $keyword, $locale, $priority)
 {
     $languageID = eZContentLanguage::idByLocale($locale);
     if ($languageID === false) {
         return;
     }
     if ($locale == $attribute->attribute('language_code')) {
         if (!$tagObject->hasTranslation($locale)) {
             $tagKeywordObject = new eZTagsKeyword(array('keyword_id' => $tagObject->attribute('id'), 'language_id' => $languageID, 'keyword' => $keyword, 'locale' => $locale, 'status' => eZTagsKeyword::STATUS_PUBLISHED));
             $tagKeywordObject->store();
             $tagObject->updateLanguageMask();
         }
     }
     $linkObject = new eZTagsAttributeLinkObject(array('keyword_id' => $tagObject->attribute('id'), 'objectattribute_id' => $attribute->attribute('id'), 'objectattribute_version' => $attribute->attribute('version'), 'object_id' => $attribute->attribute('contentobject_id'), 'priority' => $priority));
     $linkObject->store();
 }
Пример #4
0
 /**
  * Returns all links to objects for this tag
  *
  * @return array
  */
 function getTagAttributeLinks()
 {
     return eZTagsAttributeLinkObject::fetchByTagID($this->attribute('id'));
 }
Пример #5
0
 /**
  * Transfers all objects related to this tag, to another tag
  *
  * @param eZTagsObject|int $destination
  */
 public function transferObjectsToAnotherTag($destination)
 {
     if (!$destination instanceof self) {
         $destination = self::fetchWithMainTranslation((int) $destination);
         if (!$destination instanceof self) {
             return;
         }
     }
     foreach ($this->getTagAttributeLinks() as $tagAttributeLink) {
         $link = eZTagsAttributeLinkObject::fetchByObjectAttributeAndKeywordID($tagAttributeLink->attribute('objectattribute_id'), $tagAttributeLink->attribute('objectattribute_version'), $tagAttributeLink->attribute('object_id'), $destination->attribute('id'));
         if (!$link instanceof eZTagsAttributeLinkObject) {
             $tagAttributeLink->setAttribute('keyword_id', $destination->attribute('id'));
             $tagAttributeLink->store();
         } else {
             $tagAttributeLink->remove();
         }
     }
 }