Welcome to the Movable Type category conversion utility. Before getting started, we need some information on your Movable Type database.
Now select the Movable Type blog for which you want to run the conversion.
All right sparky, this is where the actual conversion takes place! Do you feel lucky today? :p
";
$sql = "SELECT * FROM mt_category WHERE category_blog_id=$mt_blog";
$result = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$cnt = mysql_num_rows($result);
if ($cnt <> 0) {
$cnt = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
// Check if category exists as tag
$sql = "SELECT * FROM mt_tag WHERE tag_name='" . $row['category_label'] . "'";
$res2 = mysql_query($sql, $resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$num = mysql_num_rows($res2);
if ($num == 0) {
$tag = $row['category_label'];
echo " Adding tag - $tag
";
// insert normalized tag record
$sql = "INSERT INTO mt_tag (tag_is_private, tag_n8d_id, tag_name) VALUES (0, 0, '" .
$row['category_basename'] . "')";
$q = mysql_query($sql, $resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
mysql_free_result($q);
$id = mysql_insert_id($resMT);
// insert standard tag record
$sql = "INSERT INTO mt_tag (tag_is_private, tag_n8d_id, tag_name) VALUES (0, " .
$id . ",'" . $row['category_label'] ."')";
$q = mysql_query($sql, $resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
mysql_free_result($q);
$cnt += 1;
mysql_free_result($res2);
}
}
mysql_free_result($result);
echo $cnt . " Category record(s) added as tags!
";
} else {
echo "No Category records found!
";
}
// get all entries for the given blog
echo "Processing Entry records ...
";
$sql = "SELECT * FROM mt_entry WHERE entry_blog_id=$mt_blog";
$result = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$cnt = mysql_num_rows($result);
echo "There are $cnt records to process ...
";
if ($cnt <> 0) {
$cnt = 0;
$cntTag = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$eid = $row['entry_id'];
echo " Processing record - $eid
";
// get categories for entry
$sql = "SELECT c.category_label FROM mt_category c, mt_placement p WHERE " .
"p.placement_category_id=c.category_id AND p.placement_blog_id=$mt_blog AND " .
"p.placement_entry_id=$eid";
$res2 = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
while ($rw2 = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// get tag ID matching category
$sql = "SELECT tag_id FROM mt_tag WHERE BINARY tag_name='" . $rw2['category_label'] . "'";
$res3 = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$rw3 = mysql_fetch_array($res3, MYSQL_ASSOC);
$tag = $rw3['tag_id'];
mysql_free_result($res3);
// Is this tag in the mt_objecttag table?
$sql = "SELECT objecttag_id FROM mt_objecttag WHERE objecttag_object_id=$eid AND " .
"objecttag_tag_id=$tag";
$res3 = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$num = mysql_num_rows($res3);
if ($num == 0) {
// Add tag record
$sql = "INSERT INTO mt_objecttag (objecttag_blog_id, " .
"objecttag_object_datasource, objecttag_object_id, " .
"objecttag_tag_id) VALUES ($mt_blog, 'entry', $eid, $tag)";
$q = mysql_query($sql,$resMT) or die("Invalid query: " . mysql_error() . "
SQL : " . $sql);
$cntTag += 1;
mysql_free_result($q);
}
}
mysql_free_result($res2);
$cnt += 1;
}
mysql_free_result($result);
echo "$cnt Entry record(s) processed!
";
echo "$cntTag Tag(s) added!
";
} else {
echo "No Entry records found!
";
}
mysql_close($resMT);
echo "That's all folks!";
break;
}
?>