From 986eaea955188de6810ae4f7a309e0048e78f755 Mon Sep 17 00:00:00 2001 From: CaMer0n Date: Sat, 22 Aug 2009 00:28:55 +0000 Subject: [PATCH] pref import/export added - work in progress. --- e107_admin/db.php | 142 +++++++++++++++++++++++- e107_languages/English/admin/lan_db.php | 6 +- 2 files changed, 145 insertions(+), 3 deletions(-) diff --git a/e107_admin/db.php b/e107_admin/db.php index 984fa3251..bad7cd911 100644 --- a/e107_admin/db.php +++ b/e107_admin/db.php @@ -9,8 +9,8 @@ * Administration - Database Utilities * * $Source: /cvs_backup/e107_0.8/e107_admin/db.php,v $ - * $Revision: 1.11 $ - * $Date: 2009-07-23 15:21:41 $ + * $Revision: 1.12 $ + * $Date: 2009-08-22 00:28:54 $ * $Author: e107coders $ * */ @@ -62,12 +62,21 @@ if(isset($_POST['verify_sql'])) header("location: ".e_ADMIN."db_verify.php"); exit(); } +if(isset($_POST['export_core_prefs'])) +{ + export_core_prefs(); + exit(); +} require_once ("auth.php"); require_once (e_HANDLER."form_handler.php"); $frm = new e_form(); $emessage = &eMessage::getInstance(); //nothing wrong with doing it twice +if(isset($_POST['importCorePrefsForm'])) +{ + importCorePrefsForm(); +} if(isset($_POST['delpref']) || (isset($_POST['delpref_checked']) && isset($_POST['delpref2']))) { @@ -118,6 +127,14 @@ if(isset($_POST['verify_sql_record']) || isset($_POST['check_verify_sql_record'] exit(); } +if(isset($_POST['upload'])) +{ + importCorePrefs(); + +} + + + //XXX - what is this for (backup core)? @@ -194,6 +211,24 @@ $text = " + + + + ".DBLAN_59." + + ".$frm->radio('db_execute', 'importCorePrefsForm').$frm->label(DBLAN_59, 'db_execute', 'importCorePrefsForm')." + + + + + + + ".DBLAN_58." + + ".$frm->radio('db_execute', 'export_core_prefs').$frm->label(DBLAN_58, 'db_execute', 'export_core_prefs')." + + + @@ -215,6 +250,109 @@ $text = " $e107->ns->tablerender(DBLAN_10, $emessage->render().$text); +function export_core_prefs() +{ + + + //TODO - Cameron - move function to own class. + + require_once(e_ADMIN."ver.php"); + + $pref = e107::getPref(); + $text = "\n"; + $text .= "\n"; + + foreach($pref as $key=>$val) + { + if(isset($val)) + { + $val = is_array($val) ? e107::getArrayStorage()->WriteArray($val) : $val; + + $text .= "\n"; + } + } + + $text .= ""; + + header('Content-type: application/xml', TRUE); + header("Content-disposition: attachment; filename= e107_prefs_" . date("Y-m-d").".xml"); + header("Cache-Control: max-age=30"); + header("Pragma: public"); + echo $text; + exit; +} + +function importCorePrefs() +{ + //TODO - Cameron - move to own class and make generic. + $xml = e107::getSingleton('xmlClass')->loadXMLfile($_FILES['file_userfile']['tmp_name'][0],TRUE); + + $data = e107::getSingleton('xmlClass')->xmlFileContents; + $xll = new SimpleXMLElement($data); + + print_a($xll); + foreach ($xll->corePref as $key=>$val) + { + // echo "
". $xll->corePref['@attributes'] ." = ".$val; + } + + + + if(isset($xml['prefs']['core'])) + { + foreach($xml['prefs']['core'] as $key=>$pref); + { + // e107::getConfig()->add($key, $pref); + } + + } +// e107::getConfig()->save(); + +} + +function importCorePrefsForm() +{ + // Get largest allowable file upload + $frm = e107::getSingleton('e_form'); + + + require_once(e_HANDLER.'upload_handler.php'); + $max_file_size = get_user_max_upload(); + + $text = " +
+ + + + + + + + + + +
".LAN_UPLOAD." + + + +
+ +
"; + $text .= $frm->admin_button('upload', LAN_UPLOAD, 'submit', LAN_UPLOAD); + + $text .= " +
+ +
\n"; + + + e107::getRender()->tablerender("Import e107 Preferences", $text); + + +} + + + function backup_core() { global $pref, $sql; diff --git a/e107_languages/English/admin/lan_db.php b/e107_languages/English/admin/lan_db.php index 3da6d8cbc..e0c1f588b 100644 --- a/e107_languages/English/admin/lan_db.php +++ b/e107_languages/English/admin/lan_db.php @@ -1,7 +1,7 @@