/** * Step 6, sets administration parameters in database and creates welcome email. * At this step installation is finished and user can choose further action. * * @param template $template * @param dump_manager $dm * @param vivvo_lang $lang * @return void */ function step6(&$template, &$dm, &$lang) { require_once dirname(__FILE__) . '/../conf.php'; if ($db = @mysql_connect(VIVVO_DB_HOST, VIVVO_DB_USER, VIVVO_DB_PASSWORD)) { if (mysql_select_db(VIVVO_DB_DATABASE, $db)) { @mysql_query('SET NAMES utf8', $db); $web_site_title = $_REQUEST['web_site_title']; $administrator_email = $_REQUEST['administrator_email']; $admin_username = $_REQUEST['admin_username']; $admin_password = $_REQUEST['admin_password']; $admin_password_retype = $_REQUEST['admin_password_retype']; if (!preg_match("/^[-_a-zA-Z0-9]+(\\.[-_a-zA-Z0-9]+)*@[-a-zA-Z0-9]+(\\.[-a-zA-Z0-9]+)*\\.[a-zA-Z]{2,6}\$/", $administrator_email)) { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_WRONG_EMAIL')); $template->assign('step', strval(5)); } elseif ($admin_username == '') { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_WRONG_USERNAME')); $template->assign('step', strval(5)); } elseif (strlen($admin_password) < 6) { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_PASSWORD_MINIMUM_6_CHAR')); $template->assign('step', strval(5)); } elseif ($admin_password != $admin_password_retype) { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_PASSWORD_AND_RETYPE_PASSWORD_MUST_BE_SAME')); $template->assign('step', strval(5)); } else { define('VIVVO_WEBSITE_TITLE', $web_site_title); define('VIVVO_ADMINISTRATORS_EMAIL', $administrator_email); define('VIVVO_EMAIL_SEND_FROM', $administrator_email); define('VIVVO_ADMIN_USERNAME', $admin_username); define('VIVVO_ADMIN_PASSWORD', $admin_password); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/sqlrunner.class.php'; // load sql runner $sqlRunner = new SQLRunner(array('db' => $db, 'stop_on_error' => true)); // Execute scheme.sql if ($sqlRunner->load(dirname(__FILE__) . '/db/post-install.sql') > 0) { try { $scheme = $sqlRunner->run(); } catch (SQLRunnerException $e) { $dm->add_dump('error', 0, $lang->get_value('LNG_INSTALLER_ERROR_EXECUTING_SQL'), $e->getMessage()); $template->assign('step', strval(4)); return; } } else { $dm->add_dump('error', 0, $lang->get_value('LNG_INSTALLER_INVALID_SQL_FILE') . 'post-install.sql'); $template->assign('step', strval(4)); return; } $template->assign('step', strval(6)); // Send information email $header = "From: Vivvo CMS Installation Wizard <" . $administrator_email . ">\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-type: text/html; charset=utf-8\r\n"; $subject = "=?UTF-8?B?" . base64_encode('Installation Complete') . "?="; $email_template = new template(null, $template); $email_template->set_template_file(VIVVO_FS_ROOT . 'installer/templates/email.xml'); $body = $email_template->get_output(); @mail($administrator_email, $subject, $body, $header); } } else { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_CANT_SELECT_DATABASE')); $template->assign('step', strval(5)); } } else { $dm->add_dump('info', 0, $lang->get_value('LNG_INSTALLER_CANT_CONNECT_TO_DATABASE')); $template->assign('step', strval(5)); } }
/** * Add new dump * * @param string $dump * @param string $type */ function add_dump($type, $dump) { if (!$this->_dump_handler) { $this->set_dump_handler(); } $this->dump_object = $this->_dump_handler->add_dump($type, 0, $dump); }