/** * Feed Importer uninstall procedure * * @param vivvo_site $site_manager * @param int $step */ public function uninstall($site_manager, $step = 1) { parent::uninstall($site_manager, $step); if ($step == 2) { $sqlRunner = new SQLRunner(array('db' => $site_manager->get_db(), 'filename' => VIVVO_FS_PLUGIN_ROOT . ($plugin_dir = $this->get_root_dir()) . 'db/uninstall.sql')); try { $sqlRunner->load() and $sqlRunner->run(); } catch (SQLRunnerException $e) { $this->set_error_code(14, $e->getMessage()); // error executing sql script file $this->uninstall($site_manager, 1); return; } $conf = $site_manager->get_configuration(); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_AUTHOR'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_AUTO_ARCHIVE'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_AUTO_DELETE'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_PERIOD'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_STATUS'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_SHOW_COMMENT'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_UPDATE_ARTICLES'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_USE_LOGO'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_TRASH'); $conf->remove_global('VIVVO_PLUGIN_FEED_IMPORTER_USER_ID'); $site_manager->unregister_action('feed'); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/vivvo_cron.php'; $cm = new vivvo_cron_manager($site_manager); $cm->delete_cron_job($plugin_dir . 'tasks/auto_import_feeds.php', null, 'auto_import_feeds'); $site_manager->get_plugin_manager()->unregister($this->plugin_name); } $output = $site_manager->get_output(); echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n"; echo $output; }
/** * Poll uninstall procedure * * @param vivvo_site $site_manager * @param int $step */ public function uninstall($site_manager, $step = 1) { parent::uninstall($site_manager, $step); if ($step == 2) { $sqlRunner = new SQLRunner(array('db' => $site_manager->get_db(), 'filename' => VIVVO_FS_PLUGIN_ROOT . ($plugin_dir = $this->get_root_dir()) . 'db/uninstall.sql')); try { $sqlRunner->load() and $sqlRunner->run(); } catch (SQLRunnerException $e) { $this->set_error_code(14, $e->getMessage()); // error executing sql script file $this->uninstall($site_manager, 1); return; } $site_manager->unregister_action('poll'); $site_manager->unregister_module('box_poll'); $site_manager->unregister_module('box_poll_list'); $site_manager->get_url_manager()->unregister_url('poll'); $site_manager->get_plugin_manager()->unregister($this->plugin_name); } $output = $site_manager->get_output(); echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n"; echo $output; }
/** * Newsletter uninstall procedure * * @param vivvo_site $site_manager * @param int $step */ public function uninstall($site_manager, $step = 1) { parent::uninstall($site_manager, $step); if ($step == 2) { $sqlRunner = new SQLRunner(array('db' => $site_manager->get_db(), 'filename' => VIVVO_FS_PLUGIN_ROOT . ($plugin_dir = $this->get_root_dir()) . 'db/uninstall.sql')); try { $sqlRunner->load() and $sqlRunner->run(); } catch (SQLRunnerException $e) { $this->set_error_code(14, $e->getMessage()); // error executing sql script file $this->uninstall($site_manager, 1); return; } $conf = $site_manager->get_configuration(); $conf->remove_global('VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_BODY'); $conf->remove_global('VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_SUBJECT'); $conf->remove_global('VIVVO_PLUGIN_NEWSLETTER_UNSUBSCRIBE_TEXT'); $conf->remove_global('VIVVO_PLUGIN_NEWSLETTER_PERIOD'); $conf->remove_global('VIVVO_PLUGIN_NEWSLETTER_NUMBER_OF_MAILS'); $site_manager->unregister_action('newsletter'); $site_manager->unregister_module('box_newsletter'); $site_manager->unregister_module('box_maillist'); $site_manager->get_url_manager()->unregister_url('newsletter'); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/vivvo_cron.php'; $cm = new vivvo_cron_manager($site_manager); $cm->delete_cron_job($plugin_dir . 'tasks/mail_queue.php', null, 'mail_queue'); $site_manager->get_plugin_manager()->unregister($this->plugin_name); } $output = $site_manager->get_output(); echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n"; echo $output; }
/** * 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)); } }