From feaeb586328f1197d84ca1d1ccd48b7610fb2728 Mon Sep 17 00:00:00 2001 From: e107steved Date: Sat, 16 Jan 2010 19:54:04 +0000 Subject: [PATCH] More comments, install logging, notice removal --- e107_admin/userclass2.php | 40 ++++++++---- e107_handlers/form_handler.php | 12 ++-- install_.php | 111 ++++++++++++++++++++++++++++----- 3 files changed, 131 insertions(+), 32 deletions(-) diff --git a/e107_admin/userclass2.php b/e107_admin/userclass2.php index c503c96d4..8f570ec45 100644 --- a/e107_admin/userclass2.php +++ b/e107_admin/userclass2.php @@ -9,16 +9,25 @@ * Administration Area - User classes * * $Source: /cvs_backup/e107_0.8/e107_admin/userclass2.php,v $ - * $Revision: 1.36 $ - * $Date: 2009-11-26 21:43:38 $ - * $Author: bugrain $ + * $Revision: 1.37 $ + * $Date: 2010-01-16 19:53:34 $ + * $Author: e107steved $ * */ -require_once("../class2.php"); -if (!getperms("4")) + +/** + * e107 Userclass handling - Admin + * + * @package e107 + * @subpackage admin + * @version $Id: userclass2.php,v 1.37 2010-01-16 19:53:34 e107steved Exp $; + */ + +require_once('../class2.php'); +if (!getperms('4')) { - header("location:".e_BASE."index.php"); + header('location:'.e_BASE.'index.php'); exit; } @@ -30,7 +39,7 @@ $e_sub_cat = 'userclass'; require_once(e_HANDLER.'userclass_class.php'); // Modified class handler $e_userclass = new user_class_admin; // Admin functions - should just obliterate any previous object created in class2.php -require_once(e_HANDLER."form_handler.php"); +require_once(e_HANDLER.'form_handler.php'); $frm = new e_form(); @@ -859,7 +868,7 @@ function userclass2_adminmenu() class uclass_manager { - function uclass_manager() + public function __construct() { global $user_pref; if(isset($_POST['etrigger_ecolumns'])) @@ -885,15 +894,18 @@ class uclass_manager } - function show_existing() + /** + * Show list of existing userclasses, followed by graphical tree of the hierarchy + */ + public function show_existing() { global $e_userclass; $tp = e107::getParser(); $sql = e107::getDb(); $frm = new uclassFrm; - $ns = e107::getRender(); - $mes = e107::getMessage(); + $ns = e107::getRender(); + $mes = e107::getMessage(); if (!$total = $sql->db_Select('userclass_classes', '*')) @@ -922,11 +934,15 @@ class uclass_manager $text .= ""; } + $text .= $e_userclass->show_graphical_tree(); // Show the tree as well - sometimes more useful + $ns->tablerender(UCSLAN_21, $mes->render().$text ); } } -require_once("footer.php"); + +require_once('footer.php'); + function headerjs() diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index bd0b74744..e9480c3d3 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -9,9 +9,9 @@ * Form Handler * * $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $ - * $Revision: 1.114 $ - * $Date: 2010-01-16 14:17:10 $ - * $Author: secretr $ + * $Revision: 1.115 $ + * $Date: 2010-01-16 19:53:57 $ + * $Author: e107steved $ * */ @@ -872,9 +872,9 @@ class e_form { if ((in_array($key, $columnPref) || $key=='options' || varsettrue($val['forced'])) && !vartrue($val['nolist'])) { - $class = vartrue($val['class']) ? ' class="'.$val['class'].'"' : ''; - $text .= ' - + $class = vartrue($val['class']) ? 'class="'.$val['class'].'"' : ''; + $width = vartrue($val['width']) ? ' style="width:'.$val['width'].'"' : ''; + $text .= ' '; $count++; } diff --git a/install_.php b/install_.php index 1ae2fff4e..1ffc3c24b 100644 --- a/install_.php +++ b/install_.php @@ -9,15 +9,24 @@ * Installation file * * $Source: /cvs_backup/e107_0.8/install_.php,v $ -* $Revision: 1.57 $ -* $Date: 2009-12-27 11:25:19 $ -* $Author: e107coders $ +* $Revision: 1.58 $ +* $Date: 2010-01-16 19:54:04 $ +* $Author: e107steved $ * */ +/** + * @package e107 + * @subpackage install + * @version $Id: install_.php,v 1.58 2010-01-16 19:54:04 e107steved Exp $; + * + * Installer base routine + */ + // minimal software version define('MIN_PHP_VERSION', '5.0'); define('MIN_MYSQL_VERSION', '4.1.2'); +define('MAKE_INSTALL_LOG', TRUE); // ensure CHARSET is UTF-8 if used //define('CHARSET', 'utf-8'); @@ -159,7 +168,7 @@ if(isset($_GET['create_tables'])) exit; } -header("Content-type: text/html; charset=utf-8"); +header('Content-type: text/html; charset=utf-8'); $e_install = new e_install(); $e_forms = new e_forms(); @@ -181,10 +190,20 @@ class e_install var $previous_steps; var $stage; var $post_data; - var $required = ""; //TODO - use for highlighting required fields with css/js. + var $required = ""; //TODO - use for highlighting required fields with css/js. + var $logFile; // Name of log file, empty string if logging disabled + var $dbLink = NULL; // DB link - needed for PHP5.3 bug + +// public function __construct() function e_install() { + $this->logFile = ''; + if (MAKE_INSTALL_LOG) + { + $this->logFile = dirname(__FILE__).'/e107InstallLog.log'; + } +// $this->logLine('Query string: '); $this->template = new SimpleTemplate(); while (@ob_end_clean()); global $e107; @@ -201,15 +220,33 @@ class e_install $this->get_lan_file(); $this->post_data = $_POST; - $this->template->SetTag("required", ""); + $this->template->SetTag('required', ''); if(isset($this->previous_steps['language'])) { define("e_LANGUAGE", $this->previous_steps['language']); include_lan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_admin.php"); } - } + + + /** + * Write a line of text to the log file (if enabled) - prepend time/date, append \n + * Can always call this routine - it will return if logging disabled + * + * @param string $logLine - text to log + * @return none + */ + protected function logLine($logLine) + { + if (!MAKE_INSTALL_LOG || ($this->logFile == '')) return; + $logfp = fopen($this->logFile, 'a+'); + fwrite($logfp, ($now = time()).', '.gmstrftime('%y-%m-%d %H:%M:%S',$now).' '.$logLine."\n"); + fclose($logfp); + } + + + function renderPage() { if(!isset($_POST['stage'])) @@ -284,10 +321,13 @@ class e_install } } + + private function stage_1() { global $e_forms; $this->stage = 1; + $this->logLine('Stage 1 started'); $this->template->SetTag("installation_heading", LANINS_001); $this->template->SetTag("stage_pre", LANINS_002); @@ -298,12 +338,16 @@ class e_install $this->finish_form(); $e_forms->add_button("submit", LANINS_006); $this->template->SetTag("stage_content", "
\n


\n".$e_forms->return_form()."
"); + $this->logLine('Stage 1 completed'); } + + private function stage_2() { global $e_forms; $this->stage = 2; + $this->logLine('Stage 2 started'); $this->previous_steps['language'] = $_POST['language']; $this->template->SetTag("installation_heading", LANINS_001); @@ -352,6 +396,7 @@ class e_install $this->finish_form(); $e_forms->add_button("submit", LANINS_035); $this->template->SetTag("stage_content", $page_info.$e_forms->return_form()); + $this->logLine('Stage 2 completed'); } @@ -360,6 +405,7 @@ class e_install global $e_forms; $success = TRUE; $this->stage = 3; + $this->logLine('Stage 3 started'); $this->template->SetTag("installation_heading", LANINS_001); $this->template->SetTag("stage_pre", LANINS_002); @@ -482,13 +528,17 @@ class e_install else $this->finish_form(3); $this->template->SetTag("stage_content", $head.$e_forms->return_form()); + $this->logLine('Stage 3 completed'); } + + private function stage_4() { global $e_forms; $this->stage = 4; + $this->logLine('Stage 4 started'); $this->template->SetTag("installation_heading", LANINS_001); $this->template->SetTag("stage_pre", LANINS_002); @@ -547,7 +597,7 @@ class e_install $mysql_help = LANINS_105; } } - if(!function_exists("utf8_encode")) + if(!function_exists('utf8_encode')) { $xml_installed = false; } @@ -600,10 +650,13 @@ class e_install \n

\n\n"; $this->finish_form(); $this->template->SetTag("stage_content", $output.$e_forms->return_form()); + $this->logLine('Stage 4 completed'); } + + /** - * Collect Admin Login Data. + * Install stage 5 - collect Admin Login Data. * * @return string HTML form of stage 5. */ @@ -612,6 +665,7 @@ class e_install { global $e_forms; $this->stage = 5; + $this->logLine('Stage 5 started'); $this->display_required(); $this->template->SetTag("installation_heading", LANINS_001); @@ -658,6 +712,7 @@ class e_install $this->finish_form(); $e_forms->add_button("submit", LANINS_035); $this->template->SetTag("stage_content", $e_forms->return_form()); + $this->logLine('Stage 5 completed'); } /** @@ -669,7 +724,7 @@ class e_install { global $e_forms; $this->stage = 6; - + $this->logLine('Stage 6 started'); // -------------------- Save Step 5 Data ------------------------- @@ -797,13 +852,17 @@ class e_install $this->finish_form(); $e_forms->add_button("submit", LANINS_035); $this->template->SetTag("stage_content", $e_forms->return_form()); + $this->logLine('Stage 6 completed'); } + + private function stage_7() { global $e_forms; $this->stage = 7; + $this->logLine('Stage 7 started'); if(varset($_POST['sitename'])) { @@ -858,14 +917,22 @@ class e_install $e_forms->add_button("submit", LANINS_035); $this->template->SetTag("stage_content", $page.$e_forms->return_form()); - + $this->logLine('Stage 7 completed'); } + + + /** + * Stage 8 - actually create database and set up the site + * + @return none + */ private function stage_8() { global $e_forms; $this->stage = 8; + $this->logLine('Stage 8 started'); $this->template->SetTag("installation_heading", LANINS_001); $this->template->SetTag("stage_pre", LANINS_002); @@ -917,23 +984,28 @@ class e_install if ($config_result) { $page = $config_result."
"; + $this->logLine('Error writing config file: '.$config_result); } else { + $this->logLine('Config file written successfully'); $errors = $this->create_tables(); if ($errors == true) { + $this->logLine('Errors creating tables: '.$errors); $page = $errors."
"; } else { + $this->logLine('Tables created successfully'); $this->import_configuration(); $page = nl2br(LANINS_069)."
"; - $e_forms->add_button("submit", LANINS_035); + $e_forms->add_button('submit', LANINS_035); } } $this->finish_form(); $this->template->SetTag("stage_content", $page.$e_forms->return_form()); + $this->logLine('Stage 8 completed'); } @@ -946,6 +1018,8 @@ class e_install //FIXME always return FALSE??? public function import_configuration() { + $this->logLine('Starting configuration import'); + // Basic stuff to get the handlers/classes to work. @@ -990,6 +1064,8 @@ class e_install //Create default plugin-table entries. // e107::getConfig('core')->clearPrefCache(); e107::getSingleton('e107plugin')->update_plugins_table(); + $this->logLine('Plugins table updated'); + // Install Theme-required plugins if(vartrue($this->previous_steps['install_plugins'])) @@ -1000,7 +1076,8 @@ class e_install { foreach($themeInfo['plugins']['plugin'] as $k=>$plug) { - $this->install_plugin($plug['@attributes']['name']); + $this->install_plugin($plug['@attributes']['name']); + $this->logLine('Theme-related plugin installed: '.$plug['@attributes']['name']); } } } @@ -1009,7 +1086,9 @@ class e_install //FIXME - should be 'add' not 'replace' - but 'add' doesn't insert arrays correctly. e107::getXml()->e107Import($XMLImportfile,'replace'); // Add missing core pref values + $this->logLine('Core prefs written'); e107::getSingleton('e107plugin')->save_addon_prefs(); // save plugin addon pref-lists. eg. e_latest_list. + $this->logLine('Addon prefs saved'); $tm = e107::getSingleton('themeHandler'); $tm->noLog = TRUE; @@ -1038,12 +1117,15 @@ class e_install e107::getConfig('core')->setPref($this->previous_steps['prefs']); e107::getConfig('core')->save(FALSE,TRUE); // save preferences made during install. + $this->logLine('Core prefs set to install choices'); + // Create the admin user - replacing any that may be been included in the XML. $ip = $_SERVER['REMOTE_ADDR']; $userp = "1, '{$this->previous_steps['admin']['display']}', '{$this->previous_steps['admin']['user']}', '', '".md5($this->previous_steps['admin']['password'])."', '', '{$this->previous_steps['admin']['email']}', '', '', 0, ".time().", 0, 0, 0, 0, 0, '{$ip}', 0, '', 0, 1, '', '', '0', '', ".time().", ''"; $this->dbqry("REPLACE INTO {$this->previous_steps['mysql']['prefix']}user VALUES ({$userp})" ); - mysql_close(); + $this->logLine('Admin user created'); + mysql_close($this->dbLink); return false; } @@ -1217,6 +1299,7 @@ class e_install return nl2br(LANINS_084."\n\n".LANINS_083."\n".mysql_error($link).""); } + $this->dbLink = $link; // Needed for mysql_close() to work round bug in PHP 5.3 $db_selected = mysql_select_db($this->previous_steps['mysql']['db'], $link); if(!$db_selected) {