Beispiel #1
0
$newModel = DataSource::get('new');
$treeTag = new Tag($newModel);
$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])) {