00001 <?PHP
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 function isUpdated030() {
00018 global $userinfo_folder;
00019 if (is_dir("$userinfo_folder/admin")) return true;
00020 return false;
00021 }
00022
00023 function updateTo030() {
00024 if (!isUpdated030()) {
00025 global $userinfo_folder;
00026 $dir = dir("./$userinfo_folder");
00027 while($file = $dir->read()) {
00028 if($file != '.' && $file != '..') $files[] = $file;
00029 }
00030 $dir->close();
00031
00032 $fp = fopen("setup/password.txt", "r");
00033 while (!feof($fp)) {
00034 $line = trim(fgets($fp, 1000));
00035 list($l, $p) = explode(",", $line);
00036 $userlist[] = $l;
00037 }
00038 fclose($fp);
00039 foreach($userlist as $key => $value) {
00040 global $userinfo_folder;
00041 mkdir("./$userinfo_folder/$value");
00042 }
00043
00044 foreach($files as $key => $value) {
00045 global $userinfo_folder;
00046 $where = strpos($value, ".");
00047 $username = substr($value, 0, $where);
00048 $filename = substr($value, $where + 1);
00049 rename("./$userinfo_folder/$value", "./$userinfo_folder/$username/$filename");
00050 }
00051 }
00052 }
00053
00054 function updateTo020() {
00055 if (!file_exists("setup/recent_pages.txt")) {
00056 $setup_folder = "setup";
00057 $page_folder = "$setup_folder/pages";
00058
00059
00060 function fetchNode($txtfile) {
00061 $fp = fopen($txtfile, "r");
00062 $contents = fread($fp, filesize($txtfile));
00063 $contents = unserialize(&$contents);
00064 if (!empty($contents["date"])) {
00065 $data = $contents;
00066 }
00067 $data = array_reverse($data);
00068 fclose($fp);
00069 return $data;
00070 }
00071
00072 function savePageData($page_folder, $page_id, $page_language = "en", $page_author, $page_author_email, $page_menu, $page_title, $page_content, $page_date) {
00073 if ($page_language == "") $page_language = "en";
00074 $txtfile = "$page_folder/$page_id.$page_language.txt";
00075
00076
00077 $page_content = preg_replace("/\\\'/", "'", $page_content);
00078 $page_content = preg_replace("/\\\\\"/", "\"", $page_content);
00079 $page_content = preg_replace("/\\\\\\\\/", "\\", $page_content);
00080
00081 $data = array( "id" => $page_id,
00082 "language" => $page_language,
00083 "author" => $page_author,
00084 "email" => $page_author_email,
00085 "menu" => $page_menu,
00086 "title" => $page_title,
00087 "content" => $page_content,
00088 "date" => $page_date);
00089 $data = serialize($data);
00090 if (file_exists($txtfile)) unlink($txtfile);
00091 $fp = fopen($txtfile, "a");
00092 if ($fp) {
00093 $fp = fwrite($fp, $data);
00094 chmod(dirname($_SERVER['SCRIPT_FILENAME'])."/".$txtfile, 0777);
00095 return true;
00096 } else {
00097 $this->ERRORS = "Could not save page.";
00098 return false;
00099 }
00100 }
00101
00102
00103
00104 echo "Please wait while running the updater...<br />";
00105
00106
00107 echo "Converting nodes to pages...<br /><ul>";
00108
00109 if (!mkdir("$setup_folder/pages", 0777)) echo "Could not create new folder for pages. Please make sure you have the corrent permissions set.";
00110
00111
00112
00113 $dirName = "./$setup_folder/nodes";
00114 $dir = dir($dirName);
00115 while($file = $dir->read()) {
00116 if($file != '.' && $file != '..') {
00117 echo "<li>Converting $dirName/$file...";
00118 $data = fetchNode($dirName."/".$file);
00119 if (savePageData("$setup_folder/pages", $data["id"], $data["language"], $data["author"], $data["email"], $data["subject"], $data["title"], $data["content"], $data["date"])) {
00120 unlink($dirName.'/'.$file);
00121 } else {
00122 echo "Error while converting node from file "$dirName/$file"";
00123 }
00124 }
00125 }
00126 $dir->close();
00127
00128
00129 rmdir($dirName);
00130
00131 echo "</ul>";
00132
00133
00134 echo "Converting front page data...<br /><ul>";
00135
00136 $fp = opendir("./$setup_folder/i18n/");
00137 while ($file = readdir($fp)) {
00138 if ($file != "." && $file != "..") {
00139
00140 $languages[] = $file;
00141 }
00142 }
00143 closedir($fp);
00144
00145
00146 foreach($languages as $key => $value) {
00147 $fileName = "$setup_folder/i18n/$value/0.inc";
00148 include($fileName);
00149 $datatosave = "<?PHP\n\$page_title = \"$node_title\";\n\$page_content = \"$node_content\";\n?>";
00150 if (unlink("$fileName")) {
00151 if ($fp = fopen($fileName, 'a')) {
00152 if (fwrite($fp, $datatosave) === FALSE) {
00153 echo "Could not convert front page. Please make sure you have the correct permissions set.";
00154 } else {
00155 echo "<li>$value</li>";
00156 }
00157 } else {
00158 echo "Could not convert front page. Please make sure you have the correct permissions set.";
00159 }
00160 } else {
00161 echo "Could not convert front page. Please make sure you have the correct permissions set.";
00162 }
00163 }
00164 echo "</ul>";
00165
00166
00167 echo "Converting subject menus to menus...<br />";
00168 if (!rename("$setup_folder/subjects", "$setup_folder/menus")) echo "Could not convert subject menus to menus. Please make sure you have the corrent permissions set.";
00169
00170
00171 echo "Converting backwards lookup index...<br />";
00172 if (!rename("$setup_folder/node_backwards.txt", "$setup_folder/page_backwards.txt")) echo "Could not convert subject menus to menus. Please make sure you have the corrent permissions set.";
00173
00174
00175 echo "Converting recent nodes lookup index...<br />";
00176 if (!rename("$setup_folder/recent_nodes.txt", "$setup_folder/recent_pages.txt")) echo "Could not convert subject menus to menus. Please make sure you have the corrent permissions set.";
00177
00178 echo "Done! Remember to update your themes to the new format (no more NODE and SUBJECT, say hello to PAGE and MENU). <a href=\"index.php\">Click here to refresh the page</a>.<hr />";
00179 return true;
00180 } else {
00181 return false;
00182 }
00183 }
00184 ?>