/** * Recursively deletes all children tags of the given tag, including the given tag itself * * @static * @param eZTagsObject $rootTag */ static function recursiveTagDelete($rootTag) { $children = self::fetchByParentID($rootTag->attribute('id')); foreach ($children as $child) { self::recursiveTagDelete($child); } $rootTag->registerSearchObjects(); foreach ($rootTag->getTagAttributeLinks() as $tagAttributeLink) { $tagAttributeLink->remove(); } $synonyms = $rootTag->getSynonyms(); foreach ($synonyms as $synonym) { foreach ($synonym->getTagAttributeLinks() as $tagAttributeLink) { $tagAttributeLink->remove(); } $synonym->remove(); } $rootTag->remove(); }