/** * Converts tag identified by $tagId to a synonym of tag identified by $mainTagData. * * @throws \RuntimeException * * @param mixed $tagId * @param array $mainTagData */ public function convertToSynonym($tagId, $mainTagData) { try { return $this->innerGateway->convertToSynonym($tagId, $mainTagData); } catch (DBALException $e) { throw new RuntimeException('Database error', 0, $e); } catch (PDOException $e) { throw new RuntimeException('Database error', 0, $e); } }
/** * Converts tag identified by $tagId to a synonym of tag identified by $mainTagId. * * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If $tagId or $mainTagId are invalid * * @param mixed $tagId * @param mixed $mainTagId * * @return \Netgen\TagsBundle\SPI\Persistence\Tags\Tag The converted synonym */ public function convertToSynonym($tagId, $mainTagId) { $tagInfo = $this->loadTagInfo($tagId); $mainTagData = $this->gateway->getBasicTagData($mainTagId); foreach ($this->loadSynonyms($tagId) as $synonym) { $this->gateway->moveSynonym($synonym->id, $mainTagData); } $this->gateway->convertToSynonym($tagInfo->id, $mainTagData); $timestamp = time(); $this->updateSubtreeModificationTime($tagInfo->parentTagId, $timestamp); $this->updateSubtreeModificationTime($tagInfo->id, $timestamp); return $this->load($tagId); }