//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"
        }
    }
}
Beispiel #2
0
<?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);
Beispiel #3
0
$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];
    }