diff --git a/e107_admin/db.php b/e107_admin/db.php index 43fe73edd..abe93d002 100644 --- a/e107_admin/db.php +++ b/e107_admin/db.php @@ -9,13 +9,15 @@ * Administration - Database Utilities * * $Source: /cvs_backup/e107_0.8/e107_admin/db.php,v $ - * $Revision: 1.28 $ - * $Date: 2009-09-04 14:35:00 $ + * $Revision: 1.29 $ + * $Date: 2009-09-05 23:02:23 $ * $Author: e107coders $ * */ require_once ("../class2.php"); +$theme = e107::getPref('sitetheme'); +define("EXPORT_PATH","{e_THEME}".$theme."/install/"); if(!getperms('0')) { @@ -68,14 +70,18 @@ if(isset($_POST['verify_sql']) || varset($_GET['mode'])=='verify_sql') if(isset($_POST['exportXmlFile'])) { - exportXmlFile($_POST['xml_prefs'],$_POST['xml_tables'],TRUE); - exit(); + if(exportXmlFile($_POST['xml_prefs'],$_POST['xml_tables'])) + { + $emessage = eMessage::getInstance(); + $emessage->add(LAN_SUCCESS, E_MESSAGE_SUCCESS); + } + } require_once ("auth.php"); require_once (e_HANDLER."form_handler.php"); $frm = new e_form(); -$emessage = &eMessage::getInstance(); //nothing wrong with doing it twice + /* No longer needed after XML feature added. @@ -335,11 +341,11 @@ class system_tools */ private function exportXmlForm() { - + $emessage = eMessage::getInstance(); $frm = e107::getSingleton('e_form'); //TODO LANs - $text = "
"; - e107::getRender()->tablerender("Export Options", $text); + e107::getRender()->tablerender("Export Options",$emessage->render(). $text); } @@ -703,15 +713,47 @@ function db_adminmenu() function exportXmlFile($prefs,$tables,$debug=FALSE) { $xml = e107::getSingleton('xmlClass'); + $tp = e107::getParser(); + $emessage = eMessage::getInstance(); - if(vartrue($_POST['package_images']) && vartrue($_POST['package_path'])) + if(vartrue($_POST['package_images'])) { - // TODO Conversion of Image paths - in xml-class and e_parse_class? - // $xml->convertImagePaths = TRUE; - // $xml->destinationPath = $_POST['package_path']; + + $xml->convertFilePaths = TRUE; + $xml->filePathDestination = EXPORT_PATH; + + $desinationFolder = $tp->replaceConstants($xml->filePathDestination); + + if(!is_writable($desinationFolder)) + { + + $emessage->add($desinationFolder."is not writable", E_MESSAGE_ERROR); + return ; + } } - $xml->e107Export($prefs,$tables,FALSE); + //TODO LANs + if($xml->e107Export($prefs,$tables,$debug)) + { + $emessage->add("Created: ".$desinationFolder."install.xml", E_MESSAGE_SUCCESS); + if(varset($xml->fileConvertLog)) + { + foreach($xml->fileConvertLog as $oldfile) + { + $file = basename($oldfile); + $newfile = $desinationFolder.$file; + if(copy($oldfile,$newfile)) + { + $emessage->add("Copied: ".$newfile, E_MESSAGE_SUCCESS); + } + else + { + $emessage->add("Couldn't copy: ".$newfile, E_MESSAGE_ERROR); + } + } + } + } + } @@ -721,7 +763,6 @@ function table_list() // grab default language lists. //TODO - a similar function is in db_verify.php. Should probably all be moved to mysql_class.php. - global $mySQLdefaultdb; $exclude = array(); $exclude[] = "core"; $exclude[] = "rbinary"; @@ -731,36 +772,26 @@ function table_list() $exclude[] = "upload"; $exclude[] = "user_extended_country"; $exclude[] = "plugin"; + + $coreTables = e107::getDb()->db_TableList('nolan'); - $tables = mysql_list_tables($mySQLdefaultdb); - while (list($temp) = mysql_fetch_array($tables)) - { - - e107::getDB()->db_Rows(); - $t = mysql_query("SELECT * FROM ".$temp); - $e107tab = str_replace(MPREFIX, "", $temp); - - $count = mysql_num_rows($t); - if($count && (strpos($temp,$prefix)!==TRUE) && !in_array($e107tab,$exclude)) + $tables = array_diff($coreTables,$exclude); + + foreach($tables as $e107tab) + { + $count = e107::getDb()->db_Select_gen("SELECT * FROM #".$e107tab); + + if($count) { - $tabs[$e107tab] = mysql_num_rows($t); - } - $prefix = MPREFIX."lan_"; - $match = array(); - // if(preg_match('/^'.$prefix.'(.*)/', $temp, $match)) - { -// $e107tab = str_replace(MPREFIX, "", $temp); -// $pos = strrpos($match[1],"_")+1; -// $core = substr(str_replace("lan_","",$e107tab),$pos); - // if (str_replace($exclude, "", $e107tab)) - // { - // $tabs[$core] = $e107tab; - // } - } + $tabs[$e107tab] = $count; // mysql_num_rows($t); + } } return $tabs; } + + + /* Still needed? function backup_core() diff --git a/e107_admin/includes/infopanel.php b/e107_admin/includes/infopanel.php index 02fbf63fa..86fc628c0 100644 --- a/e107_admin/includes/infopanel.php +++ b/e107_admin/includes/infopanel.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_admin/includes/infopanel.php,v $ - | $Revision: 1.9 $ - | $Date: 2009-09-04 14:35:01 $ + | $Revision: 1.10 $ + | $Date: 2009-09-05 23:02:23 $ | $Author: e107coders $ +----------------------------------------------------------------------------+ */ @@ -250,11 +250,13 @@ function render_infopanel_menu_options() $frm = e107::getSingleton('e_form'); $text = ""; $menu_qry = 'SELECT * FROM #menus WHERE menu_id!= 0 GROUP BY menu_name ORDER BY menu_name'; + $settings = varset($user_pref['core-infopanel-menus'],array()); + if (e107::getDb()->db_Select_gen($menu_qry)) { while ($row = e107::getDb()->db_Fetch()) { - $checked = (in_array($row['menu_name'], $user_pref['core-infopanel-menus'])) ? true : false; + $checked = (in_array($row['menu_name'], $settings)) ? true : false; $text .= "".htmlentities($text).""; + echo "
".htmlentities($text).""; + return TRUE; } else { + if(!$text) + { + return FALSE; + } + + $path = e107::getParser()->replaceConstants($this->filePathDestination); + if($path) + { + file_put_contents($path."install.xml",$text,FILE_TEXT); + return true; + } + header('Content-type: application/xml', TRUE); header("Content-disposition: attachment; filename= e107Export_" . date("Y-m-d").".xml"); header("Cache-Control: max-age=30"); header("Pragma: public"); echo $text; - exit; + exit; + } + + } /**