"bug" in 000.php
PHP Code:
function parent_id_update($Source_Db_object, $Target_Db_object, $Source_tableprefix, $Target_tableprefix)
{
// mapping table: importforumid => forumid
$importforums = array();
$forums = $Target_Db_object->query("
SELECT forumid, importforumid, importcategoryid
FROM {$Target_tableprefix}forum
WHERE importforumid != 0 OR importcategoryid != 0
");
while ($forum = $Target_Db_object->fetch_array($forums))
{
if ($forum['importcategoryid'] > 0)
{
$importforums[$forum['importcategoryid']] = $forum['forumid'];
}
else
{
$importforums[$forum['importforumid']] = $forum['forumid'];
}
$forumcache[$forum['forumid']] = $forum;
}
// mapping table: nodeid -> parentnodeid
$parentnodes = array();
$nodes = $Source_Db_object->query("
SELECT node_id, parent_node_id
FROM {$Source_tableprefix}node
");
while ($node = $Source_Db_object->fetch_array($nodes))
{
$parentnodes[$node['node_id']] = $node['parent_node_id'];
}
foreach ($forumcache AS $forumid => $forum)
{
if ($forum['importcategoryid'] > 0)
{
$importid = $forum['importcategoryid'];
}
else
{
$importid = $forum['importforumid'];
}
if (isset($parentnodes[$importid]) AND isset($importforums[$parentnodes[$importid]]))
{
$Target_Db_object->query("
UPDATE {$tableprefix}forum
SET parentid = " . $importforums[$parentnodes[$importid]] . "
WHERE forumid = $forumid
");
}
}
}
should be
PHP Code:
function parent_id_update($Source_Db_object, $Target_Db_object, $Source_tableprefix, $Target_tableprefix)
{
// mapping table: importforumid => forumid
$importforums = array();
$forums = $Target_Db_object->query("
SELECT forumid, importforumid, importcategoryid
FROM {$Target_tableprefix}forum
WHERE importforumid != 0 OR importcategoryid != 0
");
while ($forum = $Target_Db_object->fetch_array($forums))
{
if ($forum['importcategoryid'] > 0)
{
$importforums[$forum['importcategoryid']] = $forum['forumid'];
}
else
{
$importforums[$forum['importforumid']] = $forum['forumid'];
}
$forumcache[$forum['forumid']] = $forum;
}
// mapping table: nodeid -> parentnodeid
$parentnodes = array();
$nodes = $Source_Db_object->query("
SELECT node_id, parent_node_id
FROM {$Source_tableprefix}node
");
while ($node = $Source_Db_object->fetch_array($nodes))
{
$parentnodes[$node['node_id']] = $node['parent_node_id'];
}
foreach ($forumcache AS $forumid => $forum)
{
if ($forum['importcategoryid'] > 0)
{
$importid = $forum['importcategoryid'];
}
else
{
$importid = $forum['importforumid'];
}
if (isset($parentnodes[$importid]) AND isset($importforums[$parentnodes[$importid]]))
{
$Target_Db_object->query("
UPDATE {$Target_tableprefix}forum
SET parentid = " . $importforums[$parentnodes[$importid]] . "
WHERE forumid = $forumid
");
}
}
}
the last prefix is wrong