//selection de toutes les relations pagehub/tag de l'ancien système $query = "SELECT * FROM eztags"; $rows = $tagDataSource->queryAndFetch($query); $relatedAssociation = new AssociationType('new'); $relatedAssociation->loadBy('qname', 'related'); $tagType = new ObjectType('new'); $tagType->loadBy('qname', 'tag'); foreach ($rows as $values) { $query = "\n SELECT\n DISTINCT\n originTag.id as tagId,\n originTag.remote_id as pagehubId,\n originTag.keyword as fromKeyword,\n destinationTag.id as destinationId,\n destinationTag.keyword as destinationKeyword\n FROM eztags originTag\n JOIN eztags_attribute_link link\n ON link.object_id=originTag.remote_id\n JOIN eztags destinationTag\n ON destinationTag.id=link.keyword_id\n WHERE originTag.id=" . $values['id'] . "\n "; $relationData = $tagDataSource->queryAndFetch($query); if (!empty($relationData)) { foreach ($relationData as $values) { //récupération du tag d'origine dans la nouvelle bdd $fromTag = new Tag('new'); $fromTag->loadBy('caption', $values['fromKeyword']); $relatedTag = new Tag('new'); $relatedTag->loadBy('caption', $values['destinationKeyword']); //récupération pour le related tag if ($fromTag->getId() && $relatedTag->getId()) { $association = new Association('new'); $association->setType($relatedAssociation); $association->setObjectType($tagType); $association->setValue('tag_id', $fromTag->getId()); $association->setValue('object_id', $relatedTag->getId()); $association->insert(); echo $values['tagId'] . "\t" . $values['fromKeyword'] . "\t" . $values['destinationId'] . "\t" . $values['destinationKeyword'] . "\n"; } //echo $value[]"\n" } } }
<?php use PMD\Capital\Configuration\DataSource; use PMD\Capital\Module\Tag\Model\Tag; use PMD\Capital\Model\ObjectType; use PMD\Capital\Module\Tag\Model\Type; use PMD\Capital\Module\Tag\Model\Association; use PMD\Capital\Module\Tag\Model\AssociationType; ini_set('memory_limit', '-1'); $oldModel = DataSource::get('old'); $newModel = DataSource::get('new'); $ezObjectType = new ObjectType($newModel); $ezObjectType->loadBy('qname', 'ezobject'); $defaultAssociation = new AssociationType($newModel); $defaultAssociation->loadBy('qname', 'default'); $query = "\n SELECT DISTINCT\n tag.keyword,\n association.object_id\n FROM eztags_attribute_link association\n JOIN eztags tag\n ON tag.id=association.keyword_id\n\n"; $rows = $oldModel->queryAndFetch($query); $newModel->autocommit(false); foreach ($rows as $row) { $tag = new Tag($newModel); $tag->loadBy('caption', $row['keyword']); $association = new Association($newModel); $association->setValue('tag_id', $tag->getId()); $association->setValue('object_id', $row['object_id']); $association->setObjectType($ezObjectType); $association->setType($defaultAssociation); $association->insert(); echo $tag->getValue('caption') . "\t" . $row['object_id'] . "\n"; } $newModel->commit(); //print_r($rows);
$rootTag = $treeTag->getRoot(); $query = "\n SELECT\n tag.id,\n tag.parent_id,\n tag.main_tag_id,\n tag.keyword,\n slug.slug\n\n\n FROM " . EzTag::getTableName() . " tag\n JOIN pmd_tagslug slug\n ON slug.id_tag=tag.id\n "; $rows = $model->queryAndFetch($query); $oldTags = array(); foreach ($rows as $row) { $oldTags[$row['id']] = $row; } $newTagMapping = array(); $newModel->autocommit(false); foreach ($oldTags as $row) { $tag = new Tag(); $tag->setSource($newModel); $tag->setCaption($row['keyword']); $tag->setSlug($row['slug']); $tag->insert(); $newTagMapping[$row['id']] = $tag->getId(); echo $tag->getId() . "\t" . $row['keyword'] . "\n"; } foreach ($newTagMapping as $oldId => $newId) { $tag = new Tag(); $tag->setSource($newModel); $tag->loadById($newId); if ($oldTags[$oldId]['main_tag_id']) { $oldParentId = $oldTags[$oldId]['main_tag_id']; } else { $oldParentId = $oldTags[$oldId]['parent_id']; } $parentTagId = false; if (isset($newTagMapping[$oldParentId])) { $parentTagId = $newTagMapping[$oldParentId]; }