Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!doctype html>
- <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
- <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
- <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
- <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
- <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <title>BigTree 3 to 4 Converter</title>
- <link rel="stylesheet" href="<?=WWW_ROOT?>admin/css/main.css" type="text/css" media="all" />
- <script type="text/javascript" src="<?=WWW_ROOT?>admin/js/lib.js"></script>
- <script type="text/javascript" src="<?=WWW_ROOT?>admin/js/main.js"></script>
- </head>
- <body class="install">
- <div class="install_wrapper">
- <h1>BigTree 3 to 4 Converter</h1>
- <form method="post" action="" class="module">
- <h2 class="getting_started"><span></span>It's Magic</h2>
- <?
- set_time_limit(0);
- ini_set("memory_limit","512M");
- function squery($query,$con) {
- global $sqlerrors;
- $q = mysql_query($query,$con);
- $e = mysql_error($con);
- if ($e) {
- $sqlerrors[] = array("query" => $query, "error" => $e);
- }
- return $q;
- }
- if ($_POST["path"]) {
- $path = $_POST["path"];
- include $path."templates/config.php";
- // Connect to the old database
- $oc = mysql_connect($config["db"]["host"],$config["db"]["user"],$config["db"]["password"],true);
- mysql_query("SET NAMES 'utf8'",$oc);
- mysql_select_db($config["db"]["name"],$oc);
- // Connect to the new database
- $nc = mysql_connect($bigtree["config"]["db"]["host"],$bigtree["config"]["db"]["user"],$bigtree["config"]["db"]["password"],true);
- mysql_query("SET NAMES 'utf8'",$nc);
- mysql_select_db($bigtree["config"]["db"]["name"],$nc);
- // Route making functions
- function getUniqueRoute($title,$table) {
- global $oc,$nc,$cms;
- $route = $cms->urlify($title);
- $oroute = $route;
- $x = 2;
- while (mysql_num_rows(squery("SELECT * FROM `$table` WHERE route = '$route'",$nc))) {
- $route = $oroute."-$x";
- $x++;
- }
- return $route;
- }
- // Wipe every table in the new database
- squery("DELETE FROM bigtree_404s",$nc);
- squery("DELETE FROM bigtree_audit_trail",$nc);
- squery("DELETE FROM bigtree_callouts",$nc);
- squery("DELETE FROM bigtree_feeds",$nc);
- squery("DELETE FROM bigtree_field_types",$nc);
- squery("DELETE FROM bigtree_locks",$nc);
- squery("DELETE FROM bigtree_messages",$nc);
- squery("DELETE FROM bigtree_module_actions",$nc);
- squery("DELETE FROM bigtree_module_forms",$nc);
- squery("DELETE FROM bigtree_module_groups",$nc);
- squery("DELETE FROM bigtree_module_view_cache",$nc);
- squery("DELETE FROM bigtree_module_views",$nc);
- squery("DELETE FROM bigtree_modules",$nc);
- squery("DELETE FROM bigtree_page_revisions",$nc);
- squery("DELETE FROM bigtree_pages",$nc);
- squery("DELETE FROM bigtree_pending_changes",$nc);
- squery("DELETE FROM bigtree_resource_folders",$nc);
- squery("DELETE FROM bigtree_resources",$nc);
- squery("DELETE FROM bigtree_route_history",$nc);
- squery("DELETE FROM bigtree_settings",$nc);
- squery("DELETE FROM bigtree_tags",$nc);
- squery("DELETE FROM bigtree_tags_rel",$nc);
- squery("DELETE FROM bigtree_templates",$nc);
- squery("DELETE FROM bigtree_users",$nc);
- // Start tracking user permissions
- $user_permissions = array();
- $page_permissions = array();
- // Convert 404s table
- $q = squery("SELECT * FROM bigtree_404s",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- squery("INSERT INTO bigtree_404s (`broken_url`,`redirect_url`,`requests`,`ignored`) VALUES ($broken_url,$redirect_url,$requests,$ignored)",$nc);
- }
- // Convert Feeds
- $q = squery("SELECT * FROM bigtree_feeds",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $options = mysql_real_escape_string(json_encode(unserialize($f["options"])));
- $fields = mysql_real_escape_string(json_encode(unserialize($f["fields"])));
- squery("INSERT INTO bigtree_feeds (`route`,`name`,`description`,`type`,`table`,`fields`,`options`) VALUES ($route,$name,$description,$type,$table,'$fields','$options')",$nc);
- }
- // Start with Module Groups, then work our way in to preservef oreign key associations in BigTree 4.
- $q = squery("SELECT * FROM bigtree_module_groups",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $route = getUniqueRoute($f["name"],"bigtree_module_groups");
- squery("INSERT INTO bigtree_module_groups (`id`,`name`,`route`,`position`) VALUES ($id,$name,'$route',$position)",$nc);
- }
- // Modules
- $q = squery("SELECT * FROM bigtree_modules",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- if (!$f["group"]) {
- $group = "NULL";
- }
- squery("INSERT INTO bigtree_modules (`id`,`group`,`name`,`route`,`class`,`position`) VALUES ($id,$group,$name,$route,$class,$position)",$nc);
- }
- // Module Actions
- $q = squery("SELECT * FROM bigtree_module_actions",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $new_class_names = array(
- "image_list_view" => "list",
- "add_new_page" => "add"
- );
- $class = $new_class_names[$f["class"]];
- if (!$class) {
- $class = "list";
- }
- squery("INSERT INTO bigtree_module_actions (`id`,`module`,`name`,`route`,`in_nav`,`form`,`view`,`class`,`position`) VALUES ($id,$module,$name,$route,$in_nav,$form,$view,'$class',$position)",$nc);
- }
- // Module Forms
- $q = squery("SELECT * FROM bigtree_module_forms",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- // Switch old field types to new ones and make the image/upload/photo galleries append their path.
- $fields = unserialize($f["fields"]);
- $fields_to_update = array();
- foreach ($fields as $key => &$field) {
- if ($field["type"] == "image") {
- $field["type"] = "upload";
- $field["image"] = "on";
- $fields_to_update[$key] = "{staticroot}".$field["directory"];
- } elseif ($field["type"] == "upload") {
- $fields_to_update[$key] = "{staticroot}".$field["directory"];
- } elseif ($field["type"] == "photo-gallery") {
- $fields_to_update[$key] = array("prefix" => "{staticroot}".$field["directory"]);
- } elseif ($field["type"] == "simplehtml") {
- $field["type"] = "html";
- $field["simple"] = "on";
- } elseif ($field["type"] == "poplist") {
- $field["type"] = "list";
- $field["list_type"] = "db";
- $popsort = explode(" ",$field["pop-sort"]);
- $field["pop-sort"] = "`".$popsort[0]."` ".strtoupper($popsort[1]);
- } elseif ($field["type"] == "list") {
- $field["list_type"] == "static";
- } elseif ($field["type"] == "many_to_many") {
- // Create the connecting table.
- squery("DROP TABLE IF EXISTS `".$field["mtm-connecting-table"]."`",$nc);
- $show = mysql_fetch_assoc(squery("SHOW CREATE TABLE `".$field["mtm-connecting-table"]."`",$oc));
- squery($show["Create Table"],$nc);
- $qq = squery("SELECT * FROM `".$field["mtm-connecting-table"]."`",$oc);
- while ($ff = mysql_fetch_assoc($qq)) {
- $keys = array();
- $vals = array();
- foreach ($ff as $key => $val) {
- $keys[] = "`".$key."`";
- $vals[] = "'".mysql_real_escape_string($val)."'";
- }
- squery("INSERT INTO `".$field["mtm-connecting-table"]."` (".implode(",",$keys).") VALUES (".implode(",",$vals).")",$nc);
- }
- }
- }
- $fields = mysql_real_escape_string(json_encode($fields));
- $positioning = mysql_real_escape_string(json_encode(unserialize($f["positioning"])));
- squery("INSERT INTO bigtree_module_forms (`id`,`title`,`callback`,`table`,`fields`,`positioning`,`default_position`) VALUES ($id,$title,$callback,$table,'$fields','$positioning',$default_position)",$nc);
- // Loop through table to update file paths.
- squery("DROP TABLE IF EXISTS `".$f["table"]."`",$nc);
- $show = mysql_fetch_assoc(squery("SHOW CREATE TABLE `".$f["table"]."`",$oc));
- squery($show["Create Table"],$nc);
- $qq = squery("SELECT * FROM `".$f["table"]."`",$oc);
- while ($ff = mysql_fetch_assoc($qq)) {
- $keys = array();
- $vals = array();
- foreach ($ff as $key => $val) {
- $keys[] = "`".$key."`";
- $is_array = @unserialize($val);
- if ($fields_to_update[$key]) {
- if (is_array($fields_to_update[$key])) {
- $val = unserialize($val);
- if (is_array($val)) {
- foreach ($val as &$piece) {
- if ($piece["image"]) {
- $piece["image"] = $fields_to_update[$key]["prefix"].$piece["image"];
- }
- }
- }
- $vals[] = "'".mysql_real_escape_string(json_encode($val))."'";
- } else {
- if ($val) {
- $vals[] = "'".mysql_real_escape_string($fields_to_update[$key].$val)."'";
- } else {
- $vals[] = "''";
- }
- }
- } elseif (is_array($is_array)) {
- $vals[] = "'".mysql_real_escape_string(json_encode($is_array))."'";
- } else {
- $vals[] = "'".mysql_real_escape_string($val)."'";
- }
- }
- squery("INSERT INTO `".$f["table"]."` (".implode(",",$keys).") VALUES (".implode(",",$vals).")",$nc);
- }
- }
- // Module Views
- $q = squery("SELECT * FROM bigtree_module_views",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $options = unserialize($f["options"]);
- $fields = unserialize($f["fields"]);
- $actions = unserialize($f["actions"]);
- foreach ($actions as $key => $val) {
- if (is_array(unserialize($val))) {
- $actions[$key] = json_encode(unserialize($val));
- }
- }
- $actions = mysql_real_escape_string(json_encode($actions));
- // Draggable group doesn't exist anymore.
- if ($type == "'draggable-group'") {
- $type = "'grouped'";
- $options["draggable"] = "on";
- $options["ot_sort_field"] = $options["sort_field"];
- $options["ot_sort_direction"] = strtoupper($options["sort_direction"]);
- }
- // Searchable type has different sorting now.
- if ($type == "'searchable'") {
- if ($options["sort_column"]) {
- if ($options["sort_direction"] == "SORT_DESC") {
- $options["sort"] = "`".$options["sort_column"]."` DESC";
- } else {
- $options["sort"] = "`".$options["sort_column"]."` ASC";
- }
- }
- unset($options["sort_column"]);
- unset($options["sort_directions"]);
- }
- // Clear out widths since they're not the same anymore and will break.
- foreach ($fields as &$field) {
- unset($field["width"]);
- }
- $fields = mysql_real_escape_string(json_encode($fields));
- $options = mysql_real_escape_string(json_encode($options));
- squery("INSERT INTO bigtree_module_views (`id`,`title`,`description`,`type`,`table`,`fields`,`options`,`actions`,`suffix`) VALUES ($id,$title,$description,$type,$table,'$fields','$options','$actions',$suffix)",$nc);
- }
- // Callouts
- $q = squery("SELECT * FROM bigtree_sidelets",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $resources = unserialize($f["resources"]);
- foreach ($resources as &$resource) {
- $resource["title"] = $resource["name"];
- unset($resource["name"]);
- if ($resource["type"] == "image") {
- $resource["type"] = "upload";
- $resource["image"] = "on";
- } elseif ($resource["type"] == "simplehtml") {
- $resource["type"] = "html";
- $resource["simple"] = "on";
- } elseif ($resource["type"] == "poplist") {
- $resource["type"] = "list";
- $resource["list_type"] = "db";
- $popsort = explode(" ",$resource["pop-sort"]);
- $resource["pop-sort"] = "`".$popsort[0]."` ".strtoupper($popsort[1]);
- } elseif ($resource["type"] == "list") {
- $resource["list_type"] = "static";
- }
- }
- unset($resource);
- $resources = mysql_real_escape_string(json_encode($resources));
- squery("INSERT INTO bigtree_callouts (`id`,`name`,`description`,`resources`,`position`,`display_default`) VALUES ($id,$title,$description,'$resources',$position,'-')",$nc);
- }
- // Pages
- function pageLoop($parent,$tree_permissions = array()) {
- global $user_permissions,$oc,$nc;
- $q = squery("SELECT * FROM bigtree_pages WHERE parent = '$parent'",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $resources = unserialize($f["resources"]);
- $publish_at = $f["publish_at"] ? "'".$f["publish_at"]."'" : "NULL";
- // We need to find out about this template and change its file paths in the resources.
- $tdata = mysql_fetch_assoc(squery("SELECT * FROM bigtree_templates WHERE id = '".$f["template"]."'",$oc));
- if ($tdata) {
- $tres = unserialize($tdata["resources"]);
- foreach ($tres as $field) {
- $key = $field["id"];
- if ($field["type"] == "upload" || $field["type"] == "image") {
- if ($resources[$key]) {
- $resources[$key] = "{staticroot}files/pages/".$resources[$key];
- }
- } elseif ($field["type"] == "photo-gallery") {
- $gallery = array();
- $array = unserialize($resources[$key]);
- if (is_array($array)) {
- foreach ($array as $item) {
- $gallery[] = array("image" => "{staticroot}files/pages/".$item["image"], "caption" => $item["caption"]);
- }
- }
- $resources[$key] = json_encode($gallery);
- }
- // Test if the value was serialized
- $test = @unserialize($resources[$key]);
- if (is_array($test)) {
- $resources[$key] = $test;
- }
- }
- }
- $resources = mysql_real_escape_string(json_encode($resources));
- $callouts = unserialize($f["sidebar"]);
- foreach ($callouts as &$callout) {
- // We need to find out about this callout and change its file paths in the resources.
- $tdata = mysql_fetch_assoc(squery("SELECT * FROM bigtree_callouts WHERE id = '".$callout["type"]."'",$nc));
- if ($tdata) {
- $tres = json_decode($tdata["resources"],true);
- foreach ($tres as $field) {
- $key = $field["id"];
- if ($field["type"] == "upload" || $field["type"] == "image") {
- if ($callout[$key]) {
- $callout[$key] = "{staticroot}files/pages/".$callout[$key];
- }
- } elseif ($field["type"] == "photo-gallery") {
- $gallery = array();
- $array = unserialize($callout[$key]);
- if (is_array($array)) {
- foreach ($array as $item) {
- $gallery[] = array("image" => "{staticroot}files/pages/".$item["image"], "caption" => $item["caption"]);
- }
- }
- $callout[$key] = json_encode($gallery);
- }
- // Test if the value was serialized
- $test = @unserialize($callout[$key]);
- if (is_array($test)) {
- $callout[$key] = $test;
- }
- }
- }
- }
- unset($callout);
- $callouts = mysql_real_escape_string(json_encode($callouts));
- squery("INSERT INTO bigtree_pages (`id`,`parent`,`in_nav`,`nav_title`,`route`,`title`,`meta_keywords`,`meta_description`,`template`,`external`,`new_window`,`resources`,`callouts`,`archived`,`position`,`created_at`,`updated_at`,`publish_at`) VALUES ($id,$parent,$in_nav,$nav_title,$route,$title,$meta_keywords,$meta_description,$template,$external,$new_window,'$resources','$callouts',$archived,$position,$created_at,$updated_at,$publish_at)",$nc);
- if ($f["id"] == "0") {
- squery("UPDATE bigtree_pages SET id = '0', route = '', path = '' WHERE id = '".mysql_insert_id($nc)."'",$nc);
- }
- $permissions = unserialize($f["permissions"]);
- foreach ($tree_permissions as $user => $perm) {
- $user_permissions[$user]["page"][$f["id"]] = "n";
- }
- if (is_array($permissions)) {
- foreach ($permissions as $user => $p) {
- // Permissions types are either "p" for a single page, in which case all of the subsequent pages should be a "n" unless somewhere along the line a "t" gets in.
- // If a user gets a "t" then all of the subsequent pages should be "i" or nothing at all. There was no way to explicitly remove permissions for a page under a tree grant in BigTree 3.
- $user_permissions[$user]["page"][$f["id"]] = $p["level"];
- if ($p["type"] == "p") {
- $tree_permissions[$user] = true;
- } elseif ($p["type"] == "t") {
- unset($tree_permissions[$user]);
- }
- }
- }
- pageLoop($f["id"],$tree_permissions);
- }
- }
- pageLoop(-1);
- // Route History
- $q = squery("SELECT * FROM bigtree_route_history",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- squery("INSERT INTO bigtree_route_history (`old_route`,`new_route`) VALUES ($old_route,$new_route)",$nc);
- }
- // Settings
- $q = squery("SELECT * FROM bigtree_settings",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $value = mysql_real_escape_string(json_encode($f["value"]));
- squery("INSERT INTO bigtree_settings (`id`,`value`,`type`,`name`,`description`,`locked`) VALUES ($id,'$value',$type,$title,$description,$locked)",$nc);
- }
- // Field Types
- $q = squery("SELECT * FROM bigtree_field_types",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- squery("INSERT INTO bigtree_field_types (`id`,`name`,`pages`,`modules`,`callouts`) VALUES ($id,$name,$pages,$modules,$sidelets)",$nc);
- }
- // Tags
- $q = squery("SELECT * FROM bigtree_tags",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $route = getUniqueRoute($f["tag"],"bigtree_tags");
- squery("INSERT INTO bigtree_tags (`id`,`tag`,`metaphone`,`route`) VALUES ($id,$tag,$metaphone,'$route')",$nc);
- }
- $q = squery("SELECT * FROM bigtree_tags_rel",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- squery("INSERT INTO bigtree_tags_rel (`id`,`module`,`tag`,`entry`) VALUES ($id,$module,$tag,$entry)",$nc);
- }
- // Templates
- $q = squery("SELECT * FROM bigtree_templates",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $resources = unserialize($f["resources"]);
- foreach ($resources as &$resource) {
- $resource["title"] = $resource["name"];
- unset($resource["name"]);
- if ($resource["type"] == "image") {
- $resource["type"] = "upload";
- $resource["image"] = "on";
- } elseif ($resource["type"] == "simplehtml") {
- $resource["type"] = "html";
- $resource["simple"] = "on";
- } elseif ($resource["type"] == "poplist") {
- $resource["type"] = "list";
- $resource["list_type"] = "db";
- $popsort = explode(" ",$resource["pop-sort"]);
- $resource["pop-sort"] = "`".$popsort[0]."` ".strtoupper($popsort[1]);
- } elseif ($resource["type"] == "list") {
- $resource["list_type"] = "static";
- }
- }
- unset($resource);
- $resources = mysql_real_escape_string(json_encode($resources));
- // Figure out if it's routed
- if (substr($f["id"],0,7) == "module-") {
- $routed = "on";
- $id = "'".substr($f["id"],7)."'";
- mysql_query("UPDATE bigtree_pages SET template = $id WHERE template = '".$f["id"]."'");
- } else {
- $routed = "";
- }
- // Figure out what module it is.
- $f = mysql_fetch_assoc(squery("SELECT * FROM bigtree_modules WHERE route = $module",$nc));
- if ($f) {
- $module = "'".$f["id"]."'";
- } else {
- $module = "'0'";
- }
- if ($image == "'page_module.jpg'") {
- $image = "'page-module.png'";
- } else {
- $image = "'page-blank.png'";
- }
- squery("INSERT INTO bigtree_templates (`id`,`name`,`description`,`routed`,`image`,`resources`,`callouts_enabled`,`module`,`level`,`position`) VALUES ($id,$name,$description,'$routed',$image,'$resources','on',$module,$level,$position)",$nc);
- }
- // Users
- $q = squery("SELECT * FROM bigtree_users",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $module_permissions = unserialize($f["permissions"]);
- $user_permissions[$f["id"]]["module"] = $module_permissions;
- $permissions = "'".mysql_real_escape_string(json_encode($user_permissions[$f["id"]]))."'";
- $digest = isset($f["digest"]) ? "'".mysql_real_escape_string($f["digest"])."'" : "''";
- squery("INSERT INTO bigtree_users (`id`,`email`,`name`,`company`,`level`,`permissions`,`daily_digest`) VALUES ($id,$email,$name,$company,$level,$permissions,$digest)",$nc);
- }
- // Insert deathstar@fastspot.com user
- squery("INSERT INTO bigtree_users (`email`,`name`,`company`,`level`,`password`) VALUES ('deathstar@fastspot.com','Developer','Fastspot','2','".'$P$BUjyVXaNe'.".P3ZxuS.0UmMXvjYF/QoO.')",$nc);
- // Pending Changes
- $q = squery("SELECT * FROM bigtree_pending_changes",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = "'".mysql_real_escape_string($val)."'";
- }
- $comments = mysql_real_escape_string(json_encode(unserialize($f["comments"])));
- $changes = mysql_real_escape_string(json_encode(unserialize($f["changes"])));
- $mtm_changes = mysql_real_escape_string(json_encode(unserialize($f["mtm_changes"])));
- $tags_changes = mysql_real_escape_string(json_encode(unserialize($f["tags_changes"])));
- squery("INSERT INTO bigtree_pending_changes (`id`,`user`,`date`,`title`,`comments`,`table`,`changes`,`mtm_changes`,`tags_changes`,`item_id`,`type`,`module`,`pending_page_parent`) VALUES ($id,$user,$date,$title,'$comments',$table,'$changes','$mtm_changes','$tags_changes',$item_id,$type,$module,$pending_page_parent)",$nc);
- }
- // Fix Page "path"s
- @$admin = new BigTreeAdmin;
- $q = mysql_query("SELECT * FROM bigtree_pages",$nc);
- while ($f = mysql_fetch_assoc($q)) {
- $path = "'".mysql_real_escape_string($admin->getFullNavigationPath($f["id"]))."'";
- mysql_query("UPDATE bigtree_pages SET path = $path WHERE id = '".$f["id"]."'",$nc);
- }
- // Set Page 0 to be the _home template, even if it doesn't exist.
- mysql_query("UPDATE bigtree_pages SET template = 'home', path = '', route = '' WHERE id = 0",$nc);
- // Copy directories
- function recursiveCopyDir($from,$to) {
- $d = opendir($from);
- while ($r = readdir($d)) {
- if ($r != "." && $r != "..") {
- if (is_dir($from.$r)) {
- @mkdir($to.$r);
- @chmod($to.$r,0777);
- recursiveCopyDir($from.$r."/",$to.$r."/");
- } else {
- @copy($from.$r,$to.$r);
- @chmod($to.$r,0777);
- }
- }
- }
- }
- if (isset($_POST["copy_files"]) && $_POST["copy_files"]) {
- $path = $_POST["path"];
- recursiveCopyDir($path."templates/pages/",SERVER_ROOT."templates/basic/");
- recursiveCopyDir($path."templates/modules/",SERVER_ROOT."templates/routed/");
- recursiveCopyDir($path."templates/sidelets/",SERVER_ROOT."templates/callouts/");
- recursiveCopyDir($path."templates/ajax/",SERVER_ROOT."templates/ajax/");
- recursiveCopyDir($path."templates/layouts/",SERVER_ROOT."templates/layouts/");
- recursiveCopyDir($path."custom/",SERVER_ROOT."custom/");
- recursiveCopyDir($path."site/css/",SERVER_ROOT."site/css/");
- recursiveCopyDir($path."site/js/",SERVER_ROOT."site/js/");
- recursiveCopyDir($path."site/swf/",SERVER_ROOT."site/swf/");
- recursiveCopyDir($path."site/files/",SERVER_ROOT."site/files/");
- recursiveCopyDir($path."site/images/",SERVER_ROOT."site/images/");
- recursiveCopyDir($path."site/fonts/",SERVER_ROOT."site/fonts/");
- }
- @unlink(SERVER_ROOT."cache/module-class-list.btc");
- @unlink(SERVER_ROOT."cache/form-field-types.btc");
- // Do stuff to Form builder if it exists.
- $q = mysql_query("SELECT * FROM bigtree_templates WHERE id = 'module-formbuilder'",$oc);
- if (mysql_num_rows($q)) {
- // Create the new tables
- mysql_query("DROP TABLE IF EXISTS `btx_form_builder_forms`",$nc);
- mysql_query("CREATE TABLE `btx_form_builder_forms` (`id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '', `paid` char(2) COLLATE utf8_bin NOT NULL DEFAULT '', `base_price` float NOT NULL, `early_bird_base_price` float NOT NULL, `early_bird_date` datetime DEFAULT NULL, `total_collected` float NOT NULL, `entries` int(11) NOT NULL, `limit_entries` char(2) COLLATE utf8_bin NOT NULL DEFAULT '', `max_entries` int(11) NOT NULL, `last_entry` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;",$nc);
- mysql_query("DROP TABLE IF EXISTS `btx_form_builder_fields`",$nc);
- mysql_query("CREATE TABLE `btx_form_builder_fields` (`id` int(11) NOT NULL AUTO_INCREMENT, `form` int(11) NOT NULL, `column` int(11) NOT NULL, `alignment` char(5) COLLATE utf8_bin NOT NULL, `type` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '', `data` longtext COLLATE utf8_bin NOT NULL, `position` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `form` (`form`), KEY `column` (`column`), KEY `position` (`position`), CONSTRAINT `btx_form_builder_fields_ibfk_1` FOREIGN KEY (`form`) REFERENCES `btx_form_builder_forms` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;",$nc);
- mysql_query("DROP TABLE IF EXISTS `btx_form_builder_entries`",$nc);
- mysql_query("CREATE TABLE `btx_form_builder_entries` (`id` int(11) NOT NULL AUTO_INCREMENT, `form` int(11) NOT NULL, `data` longtext COLLATE utf8_bin NOT NULL, `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `form` (`form`), CONSTRAINT `btx_form_builder_entries_ibfk_1` FOREIGN KEY (`form`) REFERENCES `btx_form_builder_forms` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;",$nc);
- // Copy from the old forms table.
- $q = mysql_query("SELECT * FROM plugin_formbuilder_forms",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = mysql_real_escape_string($val);
- }
- mysql_query("INSERT INTO btx_form_builder_forms (`id`,`title`,`entries`) VALUES ('$id','$title','$entries')",$nc);
- }
- // Copy from old fields table.
- $q = mysql_query("SELECT * FROM plugin_formbuilder_form_fields",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = mysql_real_escape_string($val);
- }
- $data = mysql_real_escape_string(json_encode(unserialize($f["data"])));
- mysql_query("INSERT INTO btx_form_builder_fields (`id`,`form`,`column`,`type`,`data`,`position`) VALUES ('$id','$form','$column','$type','$data','$position')",$nc);
- }
- // Copy from old entries table.
- $q = mysql_query("SELECT * FROM plugin_formbuilder_entries",$oc);
- while ($f = mysql_fetch_assoc($q)) {
- foreach ($f as $key => $val) {
- $$key = mysql_real_escape_string($val);
- }
- $data = mysql_real_escape_string(json_encode(unserialize($f["data"])));
- mysql_query("INSERT INTO btx_form_builder_entries (`id`,`form`,`data`,`created_at`) VALUES ('$id','$form','$data','$created_at')",$nc);
- }
- // Rename the template and module names.
- mysql_query("UPDATE bigtree_templates SET id = 'btx-form-builder' WHERE id = 'formbuilder'",$nc);
- mysql_query("UPDATE bigtree_pages SET template = 'btx-form-builder' WHERE template = 'formbuilder'",$nc);
- mysql_query("UPDATE bigtree_modules SET route = 'btx-form-builder', class = 'BTXFormBuilder' WHERE route = 'form-builder'",$nc);
- mysql_query("DELETE FROM bigtree_modules WHERE route = 'form-builder-entries'",$nc);
- // Figure out the current module and empty / repop it's actions and such.
- $current = mysql_fetch_assoc(mysql_query("SELECT * FROM bigtree_modules WHERE route = 'btx-form-builder'",$nc));
- mysql_query("DELETE FROM bigtree_module_actions WHERE module = '".$current["id"]."'",$nc);
- // Create the view
- mysql_query("INSERT INTO `bigtree_module_views` (`title`, `description`, `type`, `table`, `fields`, `options`, `actions`, `suffix`, `preview_url`) VALUES (X'466F726D73', X'', X'73656172636861626C65', X'6274785F666F726D5F6275696C6465725F666F726D73', X'7B227469746C65223A7B227769647468223A22313933222C227469746C65223A225469746C65222C22706172736572223A22227D2C22656E7472696573223A7B227769647468223A22313933222C227469746C65223A22456E7472696573222C22706172736572223A22227D2C226C6173745F656E747279223A7B227769647468223A22313933222C227469746C65223A224C61737420456E747279222C22706172736572223A22696620282476616C756529207B202476616C7565203D2064617465285C2246206A204020673A69615C222C737472746F74696D65282476616C756529293B207D227D7D', X'7B22736F72745F636F6C756D6E223A227469746C65222C22736F72745F646972656374696F6E223A22415343222C227065725F70616765223A223135222C2266696C746572223A22227D', X'7B226578706F7274223A227B5C226E616D655C223A5C224578706F72745C222C5C22636C6173735C223A5C2269636F6E5F6578706F72745C222C5C22726F7574655C223A5C226578706F72745C222C5C2266756E6374696F6E5C223A5C225C227D222C22656E7472696573223A227B5C226E616D655C223A5C22456E74726965735C222C5C22636C6173735C223A5C2269636F6E5F766965775C222C5C22726F7574655C223A5C22656E74726965735C222C5C2266756E6374696F6E5C223A5C225C227D222C2265646974223A226F6E222C2264656C657465223A226F6E227D', X'', X'')",$nc);
- $view_id = mysql_insert_id($nc);
- // Add the actions.
- mysql_query("INSERT INTO `bigtree_module_actions` (`module`, `name`, `route`, `in_nav`, `form`, `view`, `class`, `level`, `position`) VALUES (".$current["id"].", X'5669657720466F726D73', X'', X'6F6E', 0, $view_id, X'6C697374', 0, 3), (".$current["id"].", X'41646420466F726D', X'616464', X'6F6E', 0, 0, X'616464', 0, 2), (".$current["id"].", X'53657474696E6773', X'73657474696E6773', X'6F6E', 0, 0, X'736572766572', 0, 1);
- ",$nc);
- // Now we fix the columns fields were in since we keep one column entry with alignment instead of two.
- $q = mysql_query("SELECT * FROM btx_form_builder_forms",$nc);
- while ($form = mysql_fetch_assoc($q)) {
- // Go through each of form's fields
- $last_was_column = false;
- $qq = mysql_query("SELECT * FROM btx_form_builder_fields WHERE form = '".$form["id"]."' ORDER BY position DESC, id ASC",$nc);
- while ($field = mysql_fetch_assoc($qq)) {
- if ($field["type"] == "column") {
- if ($last_was_column) {
- mysql_query("UPDATE btx_form_builder_fields SET alignment = 'right', `column` = '$last_was_column' WHERE `column` = '".$field["id"]."'",$nc);
- mysql_query("DELETE FROM btx_form_builder_fields WHERE id = '".$field["id"]."'",$nc);
- $last_was_column = false;
- } else {
- $last_was_column = $field["id"];
- mysql_query("UPDATE btx_form_builder_fields SET alignment = 'left' WHERE `column` = '".$field["id"]."'",$nc);
- }
- } else {
- $last_was_column = false;
- }
- }
- }
- }
- ?>
- <fieldset class="clear">
- <p>Shazam. You're done, hopefully. Remember to update your templates to stop including paths for file uploads. You're going to need to reset all the passwords for your users.</p>
- <br /><br />
- </fieldset>
- <?
- } else {
- ?>
- <fieldset class="clear">
- <p>Welcome to the BigTree converter. This should be run in a clean BigTree 4 install.</p>
- <br />
- </fieldset>
- <hr />
- <fieldset class="left">
- <label>BigTree 3.3 Directory <small>(full path to the root directory, not /core/, but above it)</small></label>
- <input class="text" type="text" name="path" tabindex="1" />
- </fieldset>
- <fieldset class="right">
- <label>Copy Files</label>
- <input type="checkbox" name="copy_files" />
- </fieldset>
- <br class="clear" />
- <fieldset class="lower">
- <input type="submit" class="button blue" value="Convert Now" tabindex="15" />
- </fieldset>
- <?
- }
- ?>
- </form>
- <a href="http://www.bigtreecms.com" class="install_logo" target="_blank">BigTree</a>
- <a href="http://www.fastspot.com" class="install_copyright" target="_blank">© <?php echo date("Y") ?> Fastspot</a>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement