From af2c068970afd5b08d91bad6e460f2d7ca86e065 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Mon, 4 Nov 2013 11:34:57 +0100 Subject: [PATCH] migrated update script to PDO database class, refs #1287 Signed-off-by: Michael Kaufmann (d00p) --- .../updates/froxlor/0.9/update_0.9.inc.php | 1449 +++++++++-------- lib/classes/database/class.Database.php | 36 +- .../filedir/function.makeCorrectDir.php | 1 - 3 files changed, 817 insertions(+), 669 deletions(-) diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 627fcd2f..b88a8d3c 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -15,32 +15,30 @@ * */ -if(isFroxlorVersion('0.9-r0')) -{ +if (isFroxlorVersion('0.9-r0')) { + showUpdateStep("Updating from 0.9-r0 to 0.9-r1", false); showUpdateStep("Performing database updates"); - /* - * add missing database-updates if necessary (old: update/update_database.php) - */ - if(isset($settings['system']['dbversion']) && (int)$settings['system']['dbversion'] < 1) - { - $db->query("ALTER TABLE `panel_databases` ADD `dbserver` INT( 11 ) UNSIGNED NOT NULL default '0';"); + + // add missing database-updates if necessary (old: update/update_database.php) + if (isset($settings['system']['dbversion']) && (int)$settings['system']['dbversion'] < 1) { + Database::query(" + ALTER TABLE `panel_databases` ADD `dbserver` INT( 11 ) UNSIGNED NOT NULL default '0';" + ); } if(isset($settings['system']['dbversion']) && (int)$settings['system']['dbversion'] < 2) { - $db->query("ALTER TABLE `panel_ipsandports` CHANGE `ssl_cert` `ssl_cert_file` VARCHAR( 255 ) NOT NULL, + Database::query("ALTER TABLE `panel_ipsandports` CHANGE `ssl_cert` `ssl_cert_file` VARCHAR( 255 ) NOT NULL, ADD `ssl_key_file` VARCHAR( 255 ) NOT NULL, ADD `ssl_ca_file` VARCHAR( 255 ) NOT NULL, ADD `default_vhostconf_domain` TEXT NOT NULL;"); - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_key_file', `value` = '';"); - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_ca_file', `value` = '';"); + Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_key_file', `value` = '';"); + Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_ca_file', `value` = '';"); } // eof(lostuff) - /* - * remove billing tables in database - */ + //remove billing tables in database define('TABLE_BILLING_INVOICES', 'billing_invoices'); define('TABLE_BILLING_INVOICES_ADMINS', 'billing_invoices_admins'); define('TABLE_BILLING_INVOICE_CHANGES', 'billing_invoice_changes'); @@ -53,22 +51,20 @@ if(isFroxlorVersion('0.9-r0')) define('TABLE_BILLING_TAXCLASSES', 'billing_taxclasses'); define('TABLE_BILLING_TAXRATES', 'billing_taxrates'); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES_ADMINS . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_DOMAINS_TEMPLATES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER_TEMPLATES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXCLASSES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXRATES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES_ADMINS . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES . "`;"); - $db->query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES_ADMINS . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES_ADMINS . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_DOMAINS_TEMPLATES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER_TEMPLATES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXCLASSES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXRATES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES_ADMINS . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES . "`;"); + Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES_ADMINS . "`;"); - /* - * update panel_domains, panel_customers, panel_admins - */ - $db->query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` + // update panel_domains, panel_customers, panel_admins + Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `firstname`, DROP `title`, DROP `company`, @@ -119,7 +115,7 @@ if(isFroxlorVersion('0.9-r0')) DROP `invoice_fee_other`, DROP `edit_billingdata`;"); - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `taxid`, DROP `title`, DROP `country`, @@ -159,7 +155,7 @@ if(isFroxlorVersion('0.9-r0')) DROP `invoice_fee_traffic`, DROP `invoice_fee_diskspace`, DROP `invoice_fee_other`;"); - $db->query("ALTER TABLE `panel_domains` + Database::query("ALTER TABLE `panel_domains` DROP `taxclass`, DROP `setup_fee`, DROP `interval_fee`, @@ -171,10 +167,10 @@ if(isFroxlorVersion('0.9-r0')) DROP `serviceend_date`, DROP `lastinvoiced_date`;"); - $db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` + Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'billing';"); - $db->query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` + Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` MODIFY `traffic` BIGINT(30), MODIFY `traffic_used` BIGINT(30)"); @@ -183,14 +179,14 @@ if(isFroxlorVersion('0.9-r0')) updateToVersion('0.9-r1'); } -if(isFroxlorVersion('0.9-r1')) -{ +if (isFroxlorVersion('0.9-r1')) { showUpdateStep("Updating from 0.9-r1 to 0.9-r2", false); showUpdateStep("Updating settings table"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'use_spf', '0');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'spf_entry', '@ IN TXT \"v=spf1 a mx -all\"');"); - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'froxlor_graphic' WHERE `varname` = 'syscp_graphic'"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'use_spf', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'spf_entry', '@ IN TXT \"v=spf1 a mx -all\"');"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'froxlor_graphic' WHERE `varname` = 'syscp_graphic'"); + if(isset($settings['admin']['syscp_graphic']) && $settings['admin']['syscp_graphic'] != '' ){ @@ -206,26 +202,25 @@ if(isFroxlorVersion('0.9-r1')) updateToVersion('0.9-r2'); } -if(isFroxlorVersion('0.9-r2')) -{ +if (isFroxlorVersion('0.9-r2')) { + showUpdateStep("Updating from 0.9-r2 to 0.9-r3", false); showUpdateStep("Updating tables"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');"); - $db->query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_from` int(15) NOT NULL default '-1' AFTER `enabled`"); - $db->query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_until` int(15) NOT NULL default '-1' AFTER `date_from`"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');"); + Database::query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_from` int(15) NOT NULL default '-1' AFTER `enabled`"); + Database::query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_until` int(15) NOT NULL default '-1' AFTER `date_from`"); lastStepStatus(0); updateToVersion('0.9-r3'); } -if(isFroxlorVersion('0.9-r3')) -{ +if (isFroxlorVersion('0.9-r3')) { showUpdateStep("Updating from 0.9-r3 to 0.9-r4", false); showUpdateStep("Creating new table 'cronjobs_run'"); - $db->query("CREATE TABLE IF NOT EXISTS `cronjobs_run` ( + Database::query("CREATE TABLE IF NOT EXISTS `cronjobs_run` ( `id` bigint(20) NOT NULL auto_increment, `module` varchar(250) NOT NULL, `cronfile` varchar(250) NOT NULL, @@ -241,68 +236,64 @@ if(isFroxlorVersion('0.9-r3')) // checking for active ticket-module $ticket_active = 0; - if((int)$settings['ticket']['enabled'] == 1) - { + if ((int)$settings['ticket']['enabled'] == 1) { $ticket_active = 1; } // checking for active aps-module $aps_active = 0; - if((int)$settings['aps']['aps_active'] == 1) - { + if ((int)$settings['aps']['aps_active'] == 1) { $aps_active = 1; } // checking for active autoresponder-module $ar_active = 0; - if((int)$settings['autoresponder']['autoresponder_active'] == 1) - { + if ((int)$settings['autoresponder']['autoresponder_active'] == 1) { $ar_active = 1; } - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_tasks.php', '5 MINUTE', '1', 'cron_tasks');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_legacy.php', '5 MINUTE', '1', 'cron_legacy');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsinstaller.php', '5 MINUTE', ".$aps_active.", 'cron_apsinstaller');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/autoresponder', 'cron_autoresponder.php', '5 MINUTE', ".$ar_active.", 'cron_autoresponder');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsupdater.php', '1 HOUR', ".$aps_active.", 'cron_apsupdater');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_used_tickets_reset.php', '1 MONTH', '".$ticket_active."', 'cron_ticketsreset');"); - $db->query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '".$ticket_active."', 'cron_ticketarchive');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_tasks.php', '5 MINUTE', '1', 'cron_tasks');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_legacy.php', '5 MINUTE', '1', 'cron_legacy');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsinstaller.php', '5 MINUTE', ".$aps_active.", 'cron_apsinstaller');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/autoresponder', 'cron_autoresponder.php', '5 MINUTE', ".$ar_active.", 'cron_autoresponder');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsupdater.php', '1 HOUR', ".$aps_active.", 'cron_apsupdater');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_used_tickets_reset.php', '1 MONTH', '".$ticket_active."', 'cron_ticketsreset');"); + Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '".$ticket_active."', 'cron_ticketarchive');"); lastStepStatus(0); showUpdateStep("Updating old settings values"); - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'Froxlor Support' WHERE `settinggroup`='ticket' AND `varname`='noreply_name' AND `value`='SysCP Support'"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'Froxlor Support' WHERE `settinggroup`='ticket' AND `varname`='noreply_name' AND `value`='SysCP Support'"); lastStepStatus(0); updateToVersion('0.9-r4'); } -if(isFroxlorVersion('0.9-r4')) -{ +if (isFroxlorVersion('0.9-r4')) { showUpdateStep("Updating from 0.9-r4 to 0.9 final"); lastStepStatus(0); updateToVersion('0.9'); } -if(isFroxlorVersion('0.9')) -{ +if (isFroxlorVersion('0.9')) { + showUpdateStep("Updating from 0.9 to 0.9.1", false); showUpdateStep("Updating settings values"); - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'images/header.gif' WHERE `varname` = 'froxlor_graphic' AND `value` = 'images/header.png'"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'images/header.gif' WHERE `varname` = 'froxlor_graphic' AND `value` = 'images/header.png'"); lastStepStatus(0); updateToVersion('0.9.1'); } -if(isFroxlorVersion('0.9.1')) -{ +if (isFroxlorVersion('0.9.1')) { + showUpdateStep("Updating from 0.9.1 to 0.9.2", false); showUpdateStep("Checking whether last-system-guid is sane"); - - $result = $db->query_first("SELECT MAX(`guid`) as `latestguid` FROM `".TABLE_PANEL_CUSTOMERS."`"); + $result_stmt = Database::query("SELECT MAX(`guid`) as `latestguid` FROM `".TABLE_PANEL_CUSTOMERS."`"); + $result = $result_stmt->fetch(PDO::FETCH_ASSOC); if (isset($result['latestguid']) && (int)$result['latestguid'] > 0 @@ -316,93 +307,91 @@ if(isFroxlorVersion('0.9.1')) updateToVersion('0.9.2'); } -if(isFroxlorVersion('0.9.2')) -{ +if (isFroxlorVersion('0.9.2')) { showUpdateStep("Updating from 0.9.2 to 0.9.3"); lastStepStatus(0); updateToVersion('0.9.3'); } -if(isFroxlorVersion('0.9.3')) -{ +if (isFroxlorVersion('0.9.3')) { + showUpdateStep("Updating from 0.9.3 to 0.9.3-svn1", false); showUpdateStep("Updating tables"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_min_length', '0');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'store_index_file_subs', '1');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_min_length', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'store_index_file_subs', '1');"); lastStepStatus(0); updateToVersion('0.9.3-svn1'); } -if(isFroxlorVersion('0.9.3-svn1')) -{ +if (isFroxlorVersion('0.9.3-svn1')) { + showUpdateStep("Updating from 0.9.3-svn1 to 0.9.3-svn2", false); showUpdateStep("Updating tables"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_defname', 'Froxlor Administrator');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_return', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_defname', 'Froxlor Administrator');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_return', '');"); lastStepStatus(0); updateToVersion('0.9.3-svn2'); } -if(isFroxlorVersion('0.9.3-svn2')) -{ +if (isFroxlorVersion('0.9.3-svn2')) { + showUpdateStep("Updating from 0.9.3-svn2 to 0.9.3-svn3", false); showUpdateStep("Correcting cron start-times"); // set specific times for some crons (traffic only at night, etc.) $ts = mktime(0, 0, 0, date('m', time()), date('d', time()), date('Y', time())); - $db->query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_traffic.php';"); + Database::query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_traffic.php';"); $ts = mktime(1, 0, 0, date('m', time()), date('d', time()), date('Y', time())); - $db->query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_used_tickets_reset.php';"); - $db->query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_ticketarchive.php';"); + Database::query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_used_tickets_reset.php';"); + Database::query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = '".$ts."' WHERE `cronfile` ='cron_ticketarchive.php';"); lastStepStatus(0); showUpdateStep("Adding new language: Polish"); - $db->query("INSERT INTO `".TABLE_PANEL_LANGUAGE."` SET `language` = 'Polski', `file` = 'lng/polish.lng.php'"); + Database::query("INSERT INTO `".TABLE_PANEL_LANGUAGE."` SET `language` = 'Polski', `file` = 'lng/polish.lng.php'"); lastStepStatus(0); updateToVersion('0.9.3-svn3'); } -if(isFroxlorVersion('0.9.3-svn3')) -{ +if (isFroxlorVersion('0.9.3-svn3')) { + showUpdateStep("Updating from 0.9.3-svn3 to 0.9.3-svn4", false); showUpdateStep("Adding new DKIM settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_algorithm', 'all');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsp', '1');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_keylength', '1024');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_servicetype', '0');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsppolicy', '1');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_notes', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_algorithm', 'all');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsp', '1');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_keylength', '1024');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_servicetype', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsppolicy', '1');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_notes', '');"); lastStepStatus(0); updateToVersion('0.9.3-svn4'); } -if(isFroxlorVersion('0.9.3-svn4')) -{ +if (isFroxlorVersion('0.9.3-svn4')) { + showUpdateStep("Updating from 0.9.3-svn4 to 0.9.3-svn5", false); showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'stdsubdomain', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'stdsubdomain', '');"); lastStepStatus(0); updateToVersion('0.9.3-svn5'); } -if(isFroxlorVersion('0.9.3-svn5')) -{ +if (isFroxlorVersion('0.9.3-svn5')) { showUpdateStep("Updating from 0.9.3-svn5 to 0.9.4 final"); lastStepStatus(0); updateToVersion('0.9.4'); } -if(isFroxlorVersion('0.9.4')) -{ +if (isFroxlorVersion('0.9.4')) { + showUpdateStep("Updating from 0.9.4 to 0.9.4-svn1", false); /** @@ -414,13 +403,13 @@ if(isFroxlorVersion('0.9.4')) && $settings['system']['awstats_path'] != '' ) { showUpdateStep("Updating awstats path setting"); - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/usr/bin/' WHERE `settinggroup` = 'system' AND `varname` = 'awstats_path';"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/usr/bin/' WHERE `settinggroup` = 'system' AND `varname` = 'awstats_path';"); lastStepStatus(0); } elseif(!isset($settings['system']['awstats_path'])) { showUpdateStep("Adding new awstats path setting"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_path', '/usr/bin/');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_path', '/usr/bin/');"); lastStepStatus(0); } @@ -428,39 +417,36 @@ if(isFroxlorVersion('0.9.4')) && $settings['system']['awstats_domain_file'] != '' ) { showUpdateStep("Updating awstats configuration path setting"); - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'awstats_conf' WHERE `varname` = 'awstats_domain_file';"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'awstats_conf' WHERE `varname` = 'awstats_domain_file';"); } else { showUpdateStep("Adding awstats configuration path settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_conf', '/etc/awstats/');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_conf', '/etc/awstats/');"); } lastStepStatus(0); updateToVersion('0.9.4-svn1'); } -if(isFroxlorVersion('0.9.4-svn1')) -{ +if (isFroxlorVersion('0.9.4-svn1')) { + showUpdateStep("Updating from 0.9.4-svn1 to 0.9.4-svn2", false); $update_domains = isset($_POST['update_domainwildcardentry']) ? intval($_POST['update_domainwildcardentry']) : 0; - if($update_domains != 1) - { + if ($update_domains != 1) { $update_domains = 0; } - if($update_domains == 1) - { + if ($update_domains == 1) { showUpdateStep("Updating domains with iswildcarddomain=yes"); $query = "SELECT `d`.`id` FROM `".TABLE_PANEL_DOMAINS."` `d`, `".TABLE_PANEL_CUSTOMERS."` `c` "; $query.= "WHERE `parentdomainid`='0' AND `email_only` = '0' AND `d`.`customerid` = `c`.`customerid` AND `d`.`id` <> `c`.`standardsubdomain`"; - $result = $db->query($query); + $result = Database::query($query); $updated_domains = 0; - while($domain = $db->fetch_array($result)) - { - $db->query("UPDATE `".TABLE_PANEL_DOMAINS."` SET `iswildcarddomain` = '1' WHERE `id` ='".(int)$domain['id']."'"); + while ($domain = $result->fetch(PDO::FETCH_ASSOC)) { + Database::query("UPDATE `".TABLE_PANEL_DOMAINS."` SET `iswildcarddomain` = '1' WHERE `id` ='".(int)$domain['id']."'"); $updated_domains++; } lastStepStatus(0, 'Updated '.$updated_domains.' domain(s)'); @@ -470,64 +456,62 @@ if(isFroxlorVersion('0.9.4-svn1')) } showUpdateStep("Updating database table definition for panel_domains"); - $db->query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `iswildcarddomain` tinyint(1) NOT NULL default '1';"); + Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `iswildcarddomain` tinyint(1) NOT NULL default '1';"); lastStepStatus(0); updateToVersion('0.9.4-svn2'); } -if(isFroxlorVersion('0.9.4-svn2')) -{ +if (isFroxlorVersion('0.9.4-svn2')) { showUpdateStep("Updating from 0.9.4-svn2 to 0.9.5 final"); lastStepStatus(0); updateToVersion('0.9.5'); } -if(isFroxlorVersion('0.9.5')) -{ +if (isFroxlorVersion('0.9.5')) { + showUpdateStep("Updating from 0.9.5 to 0.9.6-svn1", false); showUpdateStep("Adding time-to-live configuration setting"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'defaultttl', '604800');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'defaultttl', '604800');"); lastStepStatus(0); showUpdateStep("Updating database table structure for panel_ticket_categories"); - $db->query("ALTER TABLE `" . TABLE_PANEL_TICKET_CATS . "` ADD `logicalorder` int(3) NOT NULL default '1' AFTER `adminid`;"); + Database::query("ALTER TABLE `" . TABLE_PANEL_TICKET_CATS . "` ADD `logicalorder` int(3) NOT NULL default '1' AFTER `adminid`;"); lastStepStatus(0); updateToVersion('0.9.6-svn1'); } -if(isFroxlorVersion('0.9.6-svn1')) -{ +if (isFroxlorVersion('0.9.6-svn1')) { + showUpdateStep("Updating from 0.9.6-svn1 to 0.9.6-svn2", false); $update_adminmail = isset($_POST['update_adminmail']) ? validate($_POST['update_adminmail'], 'update_adminmail') : false; $do_update = true; - if($update_adminmail !== false) - { + if ($update_adminmail !== false) { showUpdateStep("Checking newly entered admin-mail"); - if(!PHPMailer::ValidateAddress($update_adminmail)) - { + if (!PHPMailer::ValidateAddress($update_adminmail)) { $do_update = false; lastStepStatus(2, 'E-Mail still not valid, go back and try again'); - } - else - { - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '".$db->escape($update_adminmail)."' WHERE `settinggroup` = 'panel' AND `varname` = 'adminmail';"); + } else { + $stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :adminmail + WHERE `settinggroup` = 'panel' AND `varname` = 'adminmail';" + ); + Database::pexecute($stmt, array('adminmail' => $update_adminmail)); lastStepStatus(0); } } - if($do_update) - { + if ($do_update) { updateToVersion('0.9.6-svn2'); } } -if(isFroxlorVersion('0.9.6-svn2')) -{ +if (isFroxlorVersion('0.9.6-svn2')) { + showUpdateStep("Updating from 0.9.6-svn2 to 0.9.6-svn3", false); $update_deferr_enable = isset($_POST['update_deferr_enable']) ? true : false; @@ -538,53 +522,59 @@ if(isFroxlorVersion('0.9.6-svn2')) $err404 = false; showUpdateStep("Adding new webserver configurations to database"); - if($update_deferr_enable == true) - { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '1');"); + if ($update_deferr_enable == true) { + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '1');"); - if(isset($_POST['update_deferr_500']) + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'defaultwebsrverrhandler', + `varname` = :varname, + `value` = :err" + ); + + if (isset($_POST['update_deferr_500']) && trim($_POST['update_deferr_500']) != '' ) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err500', '".$db->escape($_POST['update_deferr_500'])."');"); + Database::pexecute($stmt, array('varname' => 'err500', 'err' => $_POST['update_deferr_500'])); $err500 = true; } if(isset($_POST['update_deferr_401']) && trim($_POST['update_deferr_401']) != '' ) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '".$db->escape($_POST['update_deferr_401'])."');"); + Database::pexecute($stmt, array('varname' => 'err401', 'err' => $_POST['update_deferr_401'])); $err401 = true; } if(isset($_POST['update_deferr_403']) && trim($_POST['update_deferr_403']) != '' ) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '".$db->escape($_POST['update_deferr_403'])."');"); + Database::pexecute($stmt, array('varname' => 'err403', 'err' => $_POST['update_deferr_403'])); $err403 = true; } if(isset($_POST['update_deferr_404']) && trim($_POST['update_deferr_404']) != '' ) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '".$db->escape($_POST['update_deferr_404'])."');"); + Database::pexecute($stmt, array('varname' => 'err404', 'err' => $_POST['update_deferr_404'])); $err404 = true; } } if(!$update_deferr_enable) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '0');"); } if(!$err401) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');"); } if(!$err403) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');"); } if(!$err404) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');"); } if(!$err500) { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err500', '');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err500', '');"); } lastStepStatus(0); @@ -592,21 +582,21 @@ if(isFroxlorVersion('0.9.6-svn2')) updateToVersion('0.9.6-svn3'); } -if(isFroxlorVersion('0.9.6-svn3')) -{ +if (isFroxlorVersion('0.9.6-svn3')) { + showUpdateStep("Updating from 0.9.6-svn3 to 0.9.6-svn4", false); $update_deftic_priority = isset($_POST['update_deftic_priority']) ? intval($_POST['update_deftic_priority']) : 2; showUpdateStep("Setting default support-ticket priority"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('ticket', 'default_priority', '".(int)$update_deftic_priority."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('ticket', 'default_priority', '".(int)$update_deftic_priority."');"); lastStepStatus(0); updateToVersion('0.9.6-svn4'); } -if(isFroxlorVersion('0.9.6-svn4')) -{ +if (isFroxlorVersion('0.9.6-svn4')) { + showUpdateStep("Updating from 0.9.6-svn4 to 0.9.6-svn5", false); $update_defsys_phpconfig = isset($_POST['update_defsys_phpconfig']) ? intval($_POST['update_defsys_phpconfig']) : 1; @@ -617,38 +607,38 @@ if(isFroxlorVersion('0.9.6-svn4')) showUpdateStep("Adding default php-configuration setting to the database"); } - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_defaultini', '".(int)$update_defsys_phpconfig."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_defaultini', '".(int)$update_defsys_phpconfig."');"); lastStepStatus(0); updateToVersion('0.9.6-svn5'); } -if(isFroxlorVersion('0.9.6-svn5')) -{ +if (isFroxlorVersion('0.9.6-svn5')) { + showUpdateStep("Updating from 0.9.6-svn5 to 0.9.6-svn6", false); showUpdateStep("Adding new FTP-quota settings"); - $update_defsys_ftpserver = isset($_POST['update_defsys_ftpserver']) ? intval($_POST['update_defsys_ftpserver']) : 'proftpd'; // add ftp server setting - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ftpserver', `value` = '".$db->escape($update_defsys_ftpserver)."';"); + $stmt = Database::prepare("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ftpserver', `value` = :value;"); + Database::pexecute($stmt, array('value' => $update_defsys_ftpserver)); // add proftpd quota - $db->query("CREATE TABLE `ftp_quotalimits` (`name` varchar(30) default NULL, `quota_type` enum('user','group','class','all') NOT NULL default 'user', `per_session` enum('false','true') NOT NULL default 'false', `limit_type` enum('soft','hard') NOT NULL default 'hard', `bytes_in_avail` float NOT NULL, `bytes_out_avail` float NOT NULL, `bytes_xfer_avail` float NOT NULL, `files_in_avail` int(10) unsigned NOT NULL, `files_out_avail` int(10) unsigned NOT NULL, `files_xfer_avail` int(10) unsigned NOT NULL) ENGINE=MyISAM;"); - - $db->query("INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);"); - - $db->query("CREATE TABLE `ftp_quotatallies` (`name` varchar(30) NOT NULL, `quota_type` enum('user','group','class','all') NOT NULL, `bytes_in_used` float NOT NULL, `bytes_out_used` float NOT NULL, `bytes_xfer_used` float NOT NULL, `files_in_used` int(10) unsigned NOT NULL, `files_out_used` int(10) unsigned NOT NULL, `files_xfer_used` int(10) unsigned NOT NULL ) ENGINE=MyISAM;"); + Database::query("CREATE TABLE `ftp_quotalimits` (`name` varchar(30) default NULL, `quota_type` enum('user','group','class','all') NOT NULL default 'user', `per_session` enum('false','true') NOT NULL default 'false', `limit_type` enum('soft','hard') NOT NULL default 'hard', `bytes_in_avail` float NOT NULL, `bytes_out_avail` float NOT NULL, `bytes_xfer_avail` float NOT NULL, `files_in_avail` int(10) unsigned NOT NULL, `files_out_avail` int(10) unsigned NOT NULL, `files_xfer_avail` int(10) unsigned NOT NULL) ENGINE=MyISAM;"); + Database::query("INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);"); + Database::query("CREATE TABLE `ftp_quotatallies` (`name` varchar(30) NOT NULL, `quota_type` enum('user','group','class','all') NOT NULL, `bytes_in_used` float NOT NULL, `bytes_out_used` float NOT NULL, `bytes_xfer_used` float NOT NULL, `files_in_used` int(10) unsigned NOT NULL, `files_out_used` int(10) unsigned NOT NULL, `files_xfer_used` int(10) unsigned NOT NULL ) ENGINE=MyISAM;"); // fill quota tallies - $result_ftp_users = $db->query("SELECT username FROM `" . TABLE_FTP_USERS . "` WHERE 1;"); + $result_ftp_users_stmt = Database::query("SELECT username FROM `" . TABLE_FTP_USERS . "` WHERE 1;"); - while($row_ftp_users = $db->fetch_array($result_ftp_users)) - { - $result_ftp_quota = $db->query("SELECT diskspace_used FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE loginname = SUBSTRING_INDEX('" . $row_ftp_users['username'] . "', '" . $settings['customer']['ftpprefix'] . "', 1);"); - $row_ftp_quota = mysql_fetch_row($result_ftp_quota); - $db->query("INSERT INTO `ftp_quotatallies` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $row_ftp_users['username'] . "', 'user', '" . $row_ftp_quota[0] . "'*1024, '0', '0', '0', '0', '0');"); + while ($row_ftp_users = $result_ftp_users_stmt->fetch(PDO::FETCH_ASSOC)) { + $result_ftp_quota_stmt = Database::query(" + SELECT diskspace_used FROM `" . TABLE_PANEL_CUSTOMERS . "` + WHERE loginname = SUBSTRING_INDEX('" . $row_ftp_users['username'] . "', '" . $settings['customer']['ftpprefix'] . "', 1);" + ); + $row_ftp_quota = $result_ftp_quota_stmt->fetch(PDO::FETCH_ASSOC); + Database::query("INSERT INTO `ftp_quotatallies` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $row_ftp_users['username'] . "', 'user', '" . $row_ftp_quota[0] . "'*1024, '0', '0', '0', '0', '0');"); } lastStepStatus(0); @@ -656,29 +646,27 @@ if(isFroxlorVersion('0.9.6-svn5')) updateToVersion('0.9.6-svn6'); } -if(isFroxlorVersion('0.9.6-svn6')) -{ +if (isFroxlorVersion('0.9.6-svn6')) { showUpdateStep("Updating from 0.9.6-svn6 to 0.9.6 final"); lastStepStatus(0); updateToVersion('0.9.6'); } -if(isFroxlorVersion('0.9.6')) -{ +if (isFroxlorVersion('0.9.6')) { showUpdateStep("Updating from 0.9.6 to 0.9.7-svn1", false); $update_customredirect_enable = isset($_POST['update_customredirect_enable']) ? 1 : 0; $update_customredirect_default = isset($_POST['update_customredirect_default']) ? (int)$_POST['update_customredirect_default'] : 1; showUpdateStep("Adding new tables to database"); - $db->query("CREATE TABLE IF NOT EXISTS `redirect_codes` ( + Database::query("CREATE TABLE IF NOT EXISTS `redirect_codes` ( `id` int(5) NOT NULL auto_increment, `code` varchar(3) NOT NULL, `enabled` tinyint(1) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM;"); - $db->query("CREATE TABLE IF NOT EXISTS `domain_redirect_codes` ( + Database::query("CREATE TABLE IF NOT EXISTS `domain_redirect_codes` ( `rid` int(5) NOT NULL, `did` int(11) unsigned NOT NULL, UNIQUE KEY `rc` (`rid`, `did`) @@ -686,117 +674,108 @@ if(isFroxlorVersion('0.9.6')) lastStepStatus(0); showUpdateStep("Filling new tables with default data"); - $db->query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (1, '---', 1);"); - $db->query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (2, '301', 1);"); - $db->query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (3, '302', 1);"); - $db->query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (4, '303', 1);"); - $db->query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (5, '307', 1);"); + Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (1, '---', 1);"); + Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (2, '301', 1);"); + Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (3, '302', 1);"); + Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (4, '303', 1);"); + Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (5, '307', 1);"); lastStepStatus(0); showUpdateStep("Updating domains"); - $res = $db->query("SELECT `id` FROM `".TABLE_PANEL_DOMAINS."` ORDER BY `id` ASC"); + $res = Database::query("SELECT `id` FROM `".TABLE_PANEL_DOMAINS."` ORDER BY `id` ASC"); $updated_domains = 0; - while($d = $db->fetch_array($res)) - { - $db->query("INSERT INTO `domain_redirect_codes` (`rid`, `did`) VALUES ('".(int)$update_customredirect_default."', '".(int)$d['id']."');"); + while ($d = $res->fetch(PDO::FETCH_ASSOC)) { + Database::query("INSERT INTO `domain_redirect_codes` (`rid`, `did`) VALUES ('".(int)$update_customredirect_default."', '".(int)$d['id']."');"); $updated_domains++; } lastStepStatus(0, 'Updated '.$updated_domains.' domain(s)'); showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'enabled', '".(int)$update_customredirect_enable."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'default', '".(int)$update_customredirect_default."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'enabled', '".(int)$update_customredirect_enable."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'default', '".(int)$update_customredirect_default."');"); lastStepStatus(0); // need to fix default-error-copy-and-paste-shizzle showUpdateStep("Checking if anything is ok with the default-error-handler"); - if(!isset($settings['defaultwebsrverrhandler']['err404'])) - { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');"); + if (!isset($settings['defaultwebsrverrhandler']['err404'])) { + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');"); } - if(!isset($settings['defaultwebsrverrhandler']['err403'])) - { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');"); + if (!isset($settings['defaultwebsrverrhandler']['err403'])) { + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');"); } - if(!isset($settings['defaultwebsrverrhandler']['err401'])) - { - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');"); + if (!isset($settings['defaultwebsrverrhandler']['err401'])) { + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');"); } lastStepStatus(0); updateToVersion('0.9.7-svn1'); } -if(isFroxlorVersion('0.9.7-svn1')) -{ +if (isFroxlorVersion('0.9.7-svn1')) { + showUpdateStep("Updating from 0.9.7-svn1 to 0.9.7-svn2", false); showUpdateStep("Updating open_basedir due to security - issue"); - $result = $db->query("SELECT `id` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `documentroot` LIKE '%:%' AND `documentroot` NOT LIKE 'http://%' AND `openbasedir_path` = '0' AND `openbasedir` = '1'"); - while($row = $db->fetch_array($result)) - { - $db->query("UPDATE `".TABLE_PANEL_DOMAINS."` SET `openbasedir_path` = '1' WHERE `id` = " . $row['id']); + $result = Database::query("SELECT `id` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `documentroot` LIKE '%:%' AND `documentroot` NOT LIKE 'http://%' AND `openbasedir_path` = '0' AND `openbasedir` = '1'"); + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + Database::query("UPDATE `".TABLE_PANEL_DOMAINS."` SET `openbasedir_path` = '1' WHERE `id` = '" . (int)$row['id'])."'"; } lastStepStatus(0); updateToVersion('0.9.7-svn2'); } -if(isFroxlorVersion('0.9.7-svn2')) -{ +if (isFroxlorVersion('0.9.7-svn2')) { + showUpdateStep("Updating from 0.9.7-svn2 to 0.9.7-svn3", false); showUpdateStep("Updating database tables"); - $db->query("ALTER TABLE `redirect_codes` ADD `desc` varchar(200) NOT NULL AFTER `code`;"); + Database::query("ALTER TABLE `redirect_codes` ADD `desc` varchar(200) NOT NULL AFTER `code`;"); lastStepStatus(0); showUpdateStep("Updating field-values"); - $db->query("UPDATE `redirect_codes` SET `desc` = 'rc_default' WHERE `code` = '---';"); - $db->query("UPDATE `redirect_codes` SET `desc` = 'rc_movedperm' WHERE `code` = '301';"); - $db->query("UPDATE `redirect_codes` SET `desc` = 'rc_found' WHERE `code` = '302';"); - $db->query("UPDATE `redirect_codes` SET `desc` = 'rc_seeother' WHERE `code` = '303';"); - $db->query("UPDATE `redirect_codes` SET `desc` = 'rc_tempred' WHERE `code` = '307';"); + Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_default' WHERE `code` = '---';"); + Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_movedperm' WHERE `code` = '301';"); + Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_found' WHERE `code` = '302';"); + Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_seeother' WHERE `code` = '303';"); + Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_tempred' WHERE `code` = '307';"); lastStepStatus(0); updateToVersion('0.9.7-svn3'); } -if(isFroxlorVersion('0.9.7-svn3')) -{ +if (isFroxlorVersion('0.9.7-svn3')) { showUpdateStep("Updating from 0.9.7-svn3 to 0.9.7 final"); lastStepStatus(0); updateToVersion('0.9.7'); } -if(isFroxlorVersion('0.9.7')) -{ +if (isFroxlorVersion('0.9.7')) { showUpdateStep("Updating from 0.9.7 to 0.9.8 final"); lastStepStatus(0); updateToVersion('0.9.8'); } -if(isFroxlorVersion('0.9.8')) -{ +if (isFroxlorVersion('0.9.8')) { + showUpdateStep("Updating from 0.9.8 to 0.9.9-svn1", false); $update_defdns_mailentry = isset($_POST['update_defdns_mailentry']) ? '1' : '0'; - showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'dns_createmailentry', '".(int)$update_defdns_mailentry."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'dns_createmailentry', '".(int)$update_defdns_mailentry."');"); lastStepStatus(0); updateToVersion('0.9.9-svn1'); } -if(isFroxlorVersion('0.9.9-svn1')) -{ +if (isFroxlorVersion('0.9.9-svn1')) { showUpdateStep("Updating from 0.9.9-svn1 to 0.9.9 final"); lastStepStatus(0); updateToVersion('0.9.9'); } -if(isFroxlorVersion('0.9.9')) -{ +if (isFroxlorVersion('0.9.9')) { + showUpdateStep("Updating from 0.9.9 to 0.9.10-svn1", false); showUpdateStep("Checking whether you are missing any settings", false); @@ -805,32 +784,43 @@ if(isFroxlorVersion('0.9.9')) $update_httpuser = isset($_POST['update_httpuser']) ? $_POST['update_httpuser'] : false; $update_httpgroup = isset($_POST['update_httpgroup']) ? $_POST['update_httpgroup'] : false; - if($update_httpuser !== false) - { + if ($update_httpuser !== false) { $nonefound = false; showUpdateStep("Adding missing setting 'httpuser'"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'httpuser', '".$update_httpuser."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'httpuser', + `value` = :user" + ); + Database::pexecute($stmt, array(':user' => $update_httpuser)); lastStepStatus(0); } - if($update_httpgroup !== false) - { + if ($update_httpgroup !== false) { $nonefound = false; showUpdateStep("Adding missing setting 'httpgroup'"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'httpgroup', '".$update_httpgroup."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'httpgroup', + `value` = :grp" + ); + Database::pexecute($stmt, array(':grp' => $update_httpgroup)); lastStepStatus(0); } - $result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'debug_cron'"); - if(!isset($result) || !isset($result['value'])) - { + $result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'debug_cron'"); + $result = $result_stmt->fetch(PDO::FETCH_ASSOC); + + if (!isset($result) || !isset($result['value'])) { $nonefound = false; showUpdateStep("Adding missing setting 'debug_cron'"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');"); lastStepStatus(0); } - if($nonefound) { + if ($nonefound) { showUpdateStep("No missing settings found"); lastStepStatus(0); } @@ -838,32 +828,44 @@ if(isFroxlorVersion('0.9.9')) updateToVersion('0.9.10-svn1'); } -if(isFroxlorVersion('0.9.10-svn1')) -{ +if (isFroxlorVersion('0.9.10-svn1')) { + showUpdateStep("Updating from 0.9.10-svn1 to 0.9.10-svn2", false); showUpdateStep("Updating database table definition for panel_databases"); - $db->query("ALTER TABLE `" . TABLE_PANEL_DATABASES . "` ADD `apsdb` tinyint(1) NOT NULL default '0' AFTER `dbserver`;"); + Database::query("ALTER TABLE `" . TABLE_PANEL_DATABASES . "` ADD `apsdb` tinyint(1) NOT NULL default '0' AFTER `dbserver`;"); lastStepStatus(0); showUpdateStep("Adding APS databases to customers overview"); $count_dbupdates = 0; - $db_root = null; - openRootDB(); - $result = $db_root->query("SHOW DATABASES;"); - while($row = $db_root->fetch_array($result)) - { - if(preg_match('/^web([0-9]+)aps([0-9]+)$/', $row['Database'], $matches)) - { + Database::needRoot(true); + $result = Database::query("SHOW DATABASES;"); + Database::needRoot(false); + + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + + if (preg_match('/^web([0-9]+)aps([0-9]+)$/', $row['Database'], $matches)) { $cid = $matches[1]; $databasedescription = 'APS DB'; - $result = $db->query('INSERT INTO `' . TABLE_PANEL_DATABASES . '` (`customerid`, `databasename`, `description`, `dbserver`, `apsdb`) VALUES ("' . (int)$cid . '", "' . $db->escape($row['Database']) . '", "' . $db->escape($databasedescription) . '", "0", "1")'); - $result = $db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `mysqls_used`=`mysqls_used`+1 WHERE `customerid`="' . (int)$cid . '"'); + $result = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_DATABASES . "` SET + `customerid` = :cid, + `databasename` = :dbname, + `description` = :dbdesc, + `dbserver` = '0', + `apsdb` = '1'" + ); + Database::pexecute($result, array( + 'cid' => $cid, + 'dbname' => $row['Database'], + 'dbdesc' => $databasedescription, + )); + Database::query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `mysqls_used`=`mysqls_used`+1 WHERE `customerid`="' . (int)$cid . '"'); $count_dbupdates++; } } - closeRootDB(); - if($count_dbupdates > 0) { + + if ($count_dbupdates > 0) { lastStepStatus(0, "Found ".$count_dbupdates." customer APS databases"); } else { lastStepStatus(0, "None found"); @@ -872,67 +874,73 @@ if(isFroxlorVersion('0.9.10-svn1')) updateToVersion('0.9.10-svn2'); } -if(isFroxlorVersion('0.9.10-svn2')) -{ +if (isFroxlorVersion('0.9.10-svn2')) { + showUpdateStep("Updating from 0.9.10-svn2 to 0.9.10", false); $update_directlyviahostname = isset($_POST['update_directlyviahostname']) ? (int)$_POST['update_directlyviahostname'] : '0'; showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'froxlordirectlyviahostname', '".(int)$update_directlyviahostname."');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'froxlordirectlyviahostname', '".(int)$update_directlyviahostname."');"); lastStepStatus(0); updateToVersion('0.9.10'); } -if(isFroxlorVersion('0.9.10')) -{ +if (isFroxlorVersion('0.9.10')) { showUpdateStep("Updating from 0.9.10 to 0.9.11-svn1", false); $update_pwdregex = isset($_POST['update_pwdregex']) ? $_POST['update_pwdregex'] : ''; showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_regex', '".$db->escape($update_pwdregex)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'panel', + `varname` = 'password_regex', + `value` = :regex" + ); + Database::pexecute($stmt, array('regex' => $update_pwdregex)); lastStepStatus(0); updateToVersion('0.9.11-svn1'); } -if(isFroxlorVersion('0.9.11-svn1')) -{ +if (isFroxlorVersion('0.9.11-svn1')) { showUpdateStep("Updating from 0.9.11-svn1 to 0.9.11-svn2", false); showUpdateStep("Adding perl/CGI directory fields"); - $db->query("ALTER TABLE `".TABLE_PANEL_HTACCESS."` ADD `options_cgi` tinyint(1) NOT NULL default '0' AFTER `error401path`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `perlenabled` tinyint(1) NOT NULL default '0' AFTER `aps_packages_used`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_HTACCESS."` ADD `options_cgi` tinyint(1) NOT NULL default '0' AFTER `error401path`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `perlenabled` tinyint(1) NOT NULL default '0' AFTER `aps_packages_used`;"); lastStepStatus(0); updateToVersion('0.9.11-svn2'); } -if(isFroxlorVersion('0.9.11-svn2')) -{ +if (isFroxlorVersion('0.9.11-svn2')) { showUpdateStep("Updating from 0.9.11-svn2 to 0.9.11-svn3", false); $update_perlpath = isset($_POST['update_perlpath']) ? $_POST['update_perlpath'] : '/usr/bin/perl'; showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'perl_path', '".$db->escape($update_perlpath)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'perl_path', + `value` = :path" + ); + Database::pexecute($stmt, array('path' => $update_perlpath)); lastStepStatus(0); updateToVersion('0.9.11-svn3'); } -if(isFroxlorVersion('0.9.11-svn3')) -{ +if (isFroxlorVersion('0.9.11-svn3')) { showUpdateStep("Updating from 0.9.11-svn3 to 0.9.11 final"); lastStepStatus(0); - updateToVersion('0.9.11'); } -if(isFroxlorVersion('0.9.11')) -{ +if (isFroxlorVersion('0.9.11')) { showUpdateStep("Updating from 0.9.11 to 0.9.12-svn1", false); $update_fcgid_ownvhost = isset($_POST['update_fcgid_ownvhost']) ? (int)$_POST['update_fcgid_ownvhost'] : '0'; @@ -947,16 +955,22 @@ if(isFroxlorVersion('0.9.11')) } showUpdateStep("Adding new settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_ownvhost', '".$db->escape($update_fcgid_ownvhost)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_httpuser', '".$db->escape($update_fcgid_httpuser)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_httpgroup', '".$db->escape($update_fcgid_httpgroup)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'mod_fcgid_ownvhost', 'value' => $update_fcgid_ownvhost)); + Database::pexecute($stmt, array('varname' => 'mod_fcgid_httpuser', 'value' => $update_fcgid_httpuser)); + Database::pexecute($stmt, array('varname' => 'mod_fcgid_httpgroup', 'value' => $update_fcgid_httpgroup)); lastStepStatus(0); updateToVersion('0.9.12-svn1'); } -if(isFroxlorVersion('0.9.12-svn1')) -{ +if (isFroxlorVersion('0.9.12-svn1')) { + showUpdateStep("Updating from 0.9.12-svn1 to 0.9.12-svn2", false); $update_perl_suexecworkaround = isset($_POST['update_perl_suexecworkaround']) ? (int)$_POST['update_perl_suexecworkaround'] : '0'; @@ -967,120 +981,129 @@ if(isFroxlorVersion('0.9.12-svn1')) } showUpdateStep("Adding new settings for perl/CGI"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('perl', 'suexecworkaround', '".$db->escape($update_perl_suexecworkaround)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('perl', 'suexecpath', '".$db->escape($update_perl_suexecpath)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'perl', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'suexecworkaround', 'value' => $update_perl_suexecworkaround)); + Database::pexecute($stmt, array('varname' => 'suexecpath', 'value' => $update_perl_suexecpath)); lastStepStatus(0); updateToVersion('0.9.12-svn2'); } -if(isFroxlorVersion('0.9.12-svn2')) -{ +if (isFroxlorVersion('0.9.12-svn2')) { + showUpdateStep("Updating from 0.9.12-svn2 to 0.9.12-svn3", false); showUpdateStep("Adding new field to domain table"); - $db->query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` ADD `ismainbutsubto` int(11) unsigned NOT NULL default '0' AFTER `mod_fcgid_maxrequests`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` ADD `ismainbutsubto` int(11) unsigned NOT NULL default '0' AFTER `mod_fcgid_maxrequests`;"); lastStepStatus(0); updateToVersion('0.9.12-svn3'); } -if(isFroxlorVersion('0.9.12-svn3')) -{ +if (isFroxlorVersion('0.9.12-svn3')) { + showUpdateStep("Updating from 0.9.12-svn3 to 0.9.12-svn4", false); $update_awstats_awstatspath = isset($_POST['update_awstats_awstatspath']) ? makeCorrectDir($_POST['update_awstats_awstatspath']) : $settings['system']['awstats_path']; showUpdateStep("Adding new settings for awstats"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_awstatspath', '".$db->escape($update_awstats_awstatspath)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'awstats_awstatspath', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_awstats_awstatspath)); lastStepStatus(0); updateToVersion('0.9.12-svn4'); } -if(isFroxlorVersion('0.9.12-svn4')) -{ +if (isFroxlorVersion('0.9.12-svn4')) { + showUpdateStep("Updating from 0.9.12-svn4 to 0.9.12-svn5", false); showUpdateStep("Setting ticket-usage-reset cronjob interval to 1 day"); - $db->query("UPDATE `cronjobs_run` SET `interval`='1 DAY' WHERE `cronfile`='cron_used_tickets_reset.php';"); + Database::query("UPDATE `cronjobs_run` SET `interval`='1 DAY' WHERE `cronfile`='cron_used_tickets_reset.php';"); lastStepStatus(0); updateToVersion('0.9.12-svn5'); } -if(isFroxlorVersion('0.9.12-svn5')) -{ +if (isFroxlorVersion('0.9.12-svn5')) { + showUpdateStep("Updating from 0.9.12-svn5 to 0.9.12-svn6", false); showUpdateStep("Adding new field to table 'panel_htpasswds'"); - $db->query("ALTER TABLE `".TABLE_PANEL_HTPASSWDS."` ADD `authname` varchar(255) NOT NULL default 'Restricted Area' AFTER `password`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_HTPASSWDS."` ADD `authname` varchar(255) NOT NULL default 'Restricted Area' AFTER `password`;"); lastStepStatus(0); updateToVersion('0.9.12-svn6'); } -if(isFroxlorVersion('0.9.12-svn6')) -{ +if (isFroxlorVersion('0.9.12-svn6')) { showUpdateStep("Updating from 0.9.12-svn6 to 0.9.12 final"); lastStepStatus(0); - updateToVersion('0.9.12'); } -if(isFroxlorVersion('0.9.12')) -{ +if (isFroxlorVersion('0.9.12')) { + showUpdateStep("Updating from 0.9.12 to 0.9.13-svn1", false); showUpdateStep("Adding new fields to admin-table"); - $db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `aps_packages_used`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `aps_packages_used`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;"); lastStepStatus(0); showUpdateStep("Adding new fields to customer-table"); - $db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `perlenabled`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `perlenabled`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;"); lastStepStatus(0); - if((int)$settings['autoresponder']['autoresponder_active'] == 1) - { + if ((int)$settings['autoresponder']['autoresponder_active'] == 1) { $update_autoresponder_default = isset($_POST['update_autoresponder_default']) ? intval_ressource($_POST['update_autoresponder_default']) : 0; - - if(isset($_POST['update_autoresponder_default_ul'])) { + if (isset($_POST['update_autoresponder_default_ul'])) { $update_autoresponder_default = -1; } - } - else - { + } else { $update_autoresponder_default = 0; } showUpdateStep("Setting default amount of autoresponders"); // admin gets unlimited - $db->query("UPDATE `".TABLE_PANEL_ADMINS."` SET `email_autoresponder`='-1' WHERE `adminid` = '".(int)$userinfo['adminid']."'"); + Database::query("UPDATE `".TABLE_PANEL_ADMINS."` SET `email_autoresponder`='-1' WHERE `adminid` = '".(int)$userinfo['adminid']."'"); // customers - $db->query("UPDATE `".TABLE_PANEL_CUSTOMERS."` SET `email_autoresponder`='".(int)$update_autoresponder_default."' WHERE `deactivated` = '0'"); + Database::query("UPDATE `".TABLE_PANEL_CUSTOMERS."` SET `email_autoresponder`='".(int)$update_autoresponder_default."' WHERE `deactivated` = '0'"); lastStepStatus(0); updateToVersion('0.9.13-svn1'); } -if(isFroxlorVersion('0.9.13-svn1')) -{ +if (isFroxlorVersion('0.9.13-svn1')) { showUpdateStep("Updating from 0.9.13-svn1 to 0.9.13 final"); lastStepStatus(0); - updateToVersion('0.9.13'); } -if(isFroxlorVersion('0.9.13')) -{ +if (isFroxlorVersion('0.9.13')) { showUpdateStep("Updating from 0.9.13 to 0.9.13.1 final", false); $update_defaultini_ownvhost = isset($_POST['update_defaultini_ownvhost']) ? (int)$_POST['update_defaultini_ownvhost'] : 1; showUpdateStep("Adding settings for Froxlor-vhost's PHP-configuration"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_defaultini_ownvhost', '".(int)$update_defaultini_ownvhost."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'mod_fcgid_defaultini_ownvhost', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_defaultini_ownvhost)); lastStepStatus(0); updateToVersion('0.9.13.1'); @@ -1089,20 +1112,16 @@ if(isFroxlorVersion('0.9.13')) /** * be compatible with the few who already use 0.9.14-svn1 */ -if(isFroxlorVersion('0.9.14-svn1')) -{ +if (isFroxlorVersion('0.9.14-svn1')) { showUpdateStep("Resetting version 0.9.14-svn1 to 0.9.13.1"); lastStepStatus(0); - updateToVersion('0.9.13.1'); } -if(isFroxlorVersion('0.9.13.1')) -{ +if (isFroxlorVersion('0.9.13.1')) { showUpdateStep("Updating from 0.9.13.1 to 0.9.14-svn2", false); - if($settings['ticket']['enabled'] == '1') - { + if ($settings['ticket']['enabled'] == '1') { showUpdateStep("Setting INTERVAL for used-tickets cronjob"); setCycleOfCronjob(null, null, $settings['ticket']['reset_cycle'], null); lastStepStatus(0); @@ -1110,91 +1129,105 @@ if(isFroxlorVersion('0.9.13.1')) updateToVersion('0.9.14-svn2'); } -if(isFroxlorVersion('0.9.14-svn2')) -{ +if (isFroxlorVersion('0.9.14-svn2')) { showUpdateStep("Updating from 0.9.14-svn2 to 0.9.14-svn3", false); $update_awstats_icons = isset($_POST['update_awstats_icons']) ? makeCorrectDir($_POST['update_awstats_icons']) : $settings['system']['awstats_icons']; showUpdateStep("Adding AWStats icons path to the settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_icons', '".$db->escape($update_awstats_icons)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'awstats_icons', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_awstats_icons)); lastStepStatus(0); updateToVersion('0.9.14-svn3'); } -if(isFroxlorVersion('0.9.14-svn3')) -{ +if (isFroxlorVersion('0.9.14-svn3')) { + showUpdateStep("Updating from 0.9.14-svn3 to 0.9.14-svn4", false); $update_ssl_cert_chainfile = isset($_POST['update_ssl_cert_chainfile']) ? $_POST['update_ssl_cert_chainfile'] : ''; - if($update_ssl_cert_chainfile != '') - { + if ($update_ssl_cert_chainfile != '') { $update_ssl_cert_chainfile = makeCorrectFile($update_ssl_cert_chainfile); } showUpdateStep("Adding SSLCertificateChainFile to the settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'ssl_cert_chainfile', '".$db->escape($update_ssl_cert_chainfile)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'ssl_cert_chainfile', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_ssl_cert_chainfile)); lastStepStatus(0); showUpdateStep("Adding new field to IPs and ports for SSLCertificateChainFile"); - $db->query("ALTER TABLE `".TABLE_PANEL_IPSANDPORTS."` ADD `ssl_cert_chainfile` varchar(255) NOT NULL AFTER `default_vhostconf_domain`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_IPSANDPORTS."` ADD `ssl_cert_chainfile` varchar(255) NOT NULL AFTER `default_vhostconf_domain`;"); lastStepStatus(0); updateToVersion('0.9.14-svn4'); } -if(isFroxlorVersion('0.9.14-svn4')) -{ +if (isFroxlorVersion('0.9.14-svn4')) { showUpdateStep("Updating from 0.9.14-svn4 to 0.9.14-svn5", false); showUpdateStep("Adding docroot-field to IPs and ports for custom-docroot settings"); - $db->query("ALTER TABLE `".TABLE_PANEL_IPSANDPORTS."` ADD `docroot` varchar(255) NOT NULL default '' AFTER `ssl_cert_chainfile`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_IPSANDPORTS."` ADD `docroot` varchar(255) NOT NULL default '' AFTER `ssl_cert_chainfile`;"); lastStepStatus(0); updateToVersion('0.9.14-svn5'); } -if(isFroxlorVersion('0.9.14-svn5')) -{ +if (isFroxlorVersion('0.9.14-svn5')) { + showUpdateStep("Updating from 0.9.14-svn5 to 0.9.14-svn6", false); $update_allow_domain_login = isset($_POST['update_allow_domain_login']) ? (int)$_POST['update_allow_domain_login'] : '0'; showUpdateStep("Adding domain-login switch to the settings"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('login', 'domain_login', '".(int)$update_allow_domain_login."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'login', + `varname` = 'domain_login', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_allow_domain_login)); lastStepStatus(0); updateToVersion('0.9.14-svn6'); } -if(isFroxlorVersion('0.9.14-svn6')) -{ +if (isFroxlorVersion('0.9.14-svn6')) { showUpdateStep("Updating from 0.9.14-svn6 to 0.9.14-svn10", false); // remove deprecated realtime-feature showUpdateStep("Removing realtime-feature (deprecated)"); - $db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'realtime_port';"); + Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'realtime_port';"); lastStepStatus(0); // remove deprecated panel_navigation showUpdateStep("Removing table `panel_navigation` (deprecated)"); - $db->query("DROP TABLE IF EXISTS `panel_navigation`;"); + Database::query("DROP TABLE IF EXISTS `panel_navigation`;"); lastStepStatus(0); // remove deprecated panel_cronscript showUpdateStep("Removing table `panel_cronscript` (deprecated)"); - $db->query("DROP TABLE IF EXISTS `panel_cronscript`;"); + Database::query("DROP TABLE IF EXISTS `panel_cronscript`;"); lastStepStatus(0); // make ticket-system ipv6 compatible showUpdateStep("Altering IP field in panel_tickets (IPv6 compatibility)"); - $db->query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';"); + Database::query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';"); lastStepStatus(0); showUpdateStep("Removing deprecated legacy-cronjob from database"); - $db->query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `cronfile` ='cron_legacy.php';"); + Database::query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `cronfile` ='cron_legacy.php';"); lastStepStatus(0); updateToVersion('0.9.14-svn10'); @@ -1204,75 +1237,74 @@ if(isFroxlorVersion('0.9.14-svn6')) * revert database changes we did for multiserver-support * before branching - sorry guys :/ */ -if(isFroxlorVersion('0.9.14-svn9')) -{ +if (isFroxlorVersion('0.9.14-svn9')) { showUpdateStep("Reverting multiserver-patches (svn)", false); $update_allow_domain_login = isset($_POST['update_allow_domain_login']) ? (int)$_POST['update_allow_domain_login'] : '0'; showUpdateStep("Reverting database table-changes"); - $db->query("ALTER TABLE `".TABLE_PANEL_SETTINGS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_SETTINGS."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_MAIL_VIRTUAL."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_MAIL_VIRTUAL."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_FTP_USERS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_FTP_USERS."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_PANEL_TASKS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_TASKS."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_APS_TASKS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_APS_TASKS."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_PANEL_LOG."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_LOG."` DROP `sid`;"); showUpdateStep("."); - $db->query("ALTER TABLE `".TABLE_PANEL_PHPCONFIGS."` DROP `sid`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_PHPCONFIGS."` DROP `sid`;"); lastStepStatus(0); showUpdateStep("Removing froxlor-clients table"); - $db->query("DROP TABLE IF EXISTS `froxlor_clients`"); + Database::query("DROP TABLE IF EXISTS `froxlor_clients`"); lastStepStatus(0); updateToVersion('0.9.14-svn10'); } -if(isFroxlorVersion('0.9.14-svn10')) -{ +if (isFroxlorVersion('0.9.14-svn10')) { showUpdateStep("Updating from 0.9.14-svn10 to 0.9.14 final"); lastStepStatus(0); - updateToVersion('0.9.14'); } -if(isFroxlorVersion('0.9.14')) -{ +if (isFroxlorVersion('0.9.14')) { showUpdateStep("Updating from 0.9.14 to 0.9.15-svn1", false); showUpdateStep("Adding new settings for Nginx support"); - $db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'nginx_php_backend', '127.0.0.1:8888')"); - $db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock')"); - $db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'phpreload_command', '')"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'nginx_php_backend', 'value' => '127.0.0.1:8888')); + Database::pexecute($stmt, array('varname' => 'perl_server', 'value' => 'unix:/var/run/nginx/cgiwrap-dispatch.sock')); + Database::pexecute($stmt, array('varname' => 'phpreload_command', 'value' => '')); lastStepStatus(0); updateToVersion('0.9.15-svn1'); } -if(isFroxlorVersion('0.9.15-svn1')) -{ +if (isFroxlorVersion('0.9.15-svn1')) { showUpdateStep("Updating from 0.9.15-svn1 to 0.9.15 final"); lastStepStatus(0); - updateToVersion('0.9.15'); } -if(isFroxlorVersion('0.9.15')) -{ +if (isFroxlorVersion('0.9.15')) { showUpdateStep("Updating from 0.9.15 to 0.9.16-svn1", false); $update_phpfpm_enabled = isset($_POST['update_phpfpm_enabled']) ? (int)$_POST['update_phpfpm_enabled'] : '0'; @@ -1285,77 +1317,83 @@ if(isFroxlorVersion('0.9.15')) $update_phpfpm_max_children = isset($_POST['update_phpfpm_max_children']) ? (int)$_POST['update_phpfpm_max_children'] : '1'; $update_phpfpm_max_requests = isset($_POST['update_phpfpm_max_requests']) ? (int)$_POST['update_phpfpm_max_requests'] : '0'; - if($update_phpfpm_pm == 'dynamic') - { + if ($update_phpfpm_pm == 'dynamic') { $update_phpfpm_start_servers = isset($_POST['update_phpfpm_start_servers']) ? (int)$_POST['update_phpfpm_start_servers'] : '20'; $update_phpfpm_min_spare_servers = isset($_POST['update_phpfpm_min_spare_servers']) ? (int)$_POST['update_phpfpm_min_spare_servers'] : '5'; $update_phpfpm_max_spare_servers = isset($_POST['update_phpfpm_max_spare_servers']) ? (int)$_POST['update_phpfpm_max_spare_servers'] : '35'; - } - else - { + } else { $update_phpfpm_start_servers = 20; $update_phpfpm_min_spare_servers = 5; $update_phpfpm_max_spare_servers = 35; } - if($update_phpfpm_configdir == '') { + if ($update_phpfpm_configdir == '') { $update_phpfpm_configdir = '/etc/php-fpm.d/'; } - if($update_phpfpm_reload == '') { + if ($update_phpfpm_reload == '') { $update_phpfpm_reload = '/etc/init.d/php-fpm restart'; } showUpdateStep("Adding new settings for PHP-FPM #1"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'enabled', '".(int)$update_phpfpm_enabled."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'configdir', '".$db->escape($update_phpfpm_configdir)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'reload', '".$db->escape($update_phpfpm_reload)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'pm', '".$db->escape($update_phpfpm_pm)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'max_children', '".(int)$update_phpfpm_max_children."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'max_requests', '".(int)$update_phpfpm_max_requests."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'start_servers', '".(int)$update_phpfpm_start_servers."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'min_spare_servers', '".(int)$update_phpfpm_min_spare_servers."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'max_spare_servers', '".(int)$update_phpfpm_max_spare_servers."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'tmpdir', '".$db->escape($update_phpfpm_tmpdir)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'peardir', '".$db->escape($update_phpfpm_peardir)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'phpfpm', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'enabled', 'value' => $update_phpfpm_enabled)); + Database::pexecute($stmt, array('varname' => 'configdir', 'value' => $update_phpfpm_configdir)); + Database::pexecute($stmt, array('varname' => 'reload', 'value' => $update_phpfpm_reload)); + Database::pexecute($stmt, array('varname' => 'pm', 'value' => $update_phpfpm_pm)); + Database::pexecute($stmt, array('varname' => 'max_children', 'value' => $update_phpfpm_max_children)); + Database::pexecute($stmt, array('varname' => 'max_requests', 'value' => $update_phpfpm_max_requests)); + Database::pexecute($stmt, array('varname' => 'start_servers', 'value' => $update_phpfpm_start_servers)); + Database::pexecute($stmt, array('varname' => 'min_spare_servers', 'value' => $update_phpfpm_min_spare_servers)); + Database::pexecute($stmt, array('varname' => 'max_spare_servers', 'value' => $update_phpfpm_max_spare_servers)); + Database::pexecute($stmt, array('varname' => 'tmpdir', 'value' => $update_phpfpm_tmpdir)); + Database::pexecute($stmt, array('varname' => 'peardir', 'value' => $update_phpfpm_peardir)); lastStepStatus(0); updateToVersion('0.9.16-svn1'); } -if(isFroxlorVersion('0.9.16-svn1')) -{ +if (isFroxlorVersion('0.9.16-svn1')) { showUpdateStep("Updating from 0.9.16-svn1 to 0.9.16-svn2", false); $update_phpfpm_enabled_ownvhost = isset($_POST['update_phpfpm_enabled_ownvhost']) ? (int)$_POST['update_phpfpm_enabled_ownvhost'] : '0'; $update_phpfpm_httpuser = isset($_POST['update_phpfpm_httpuser']) ? $_POST['update_phpfpm_httpuser'] : 'froxlorlocal'; $update_phpfpm_httpgroup = isset($_POST['update_phpfpm_httpgroup']) ? $_POST['update_phpfpm_httpgroup'] : 'froxlorlocal'; - if($update_phpfpm_httpuser == '') { + if ($update_phpfpm_httpuser == '') { $update_phpfpm_httpuser = 'froxlorlocal'; } - if($update_phpfpm_httpgroup == '') { + if ($update_phpfpm_httpgroup == '') { $update_phpfpm_httpgroup = 'froxlorlocal'; } showUpdateStep("Adding new settings for PHP-FPM #2"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'enabled_ownvhost', '".(int)$update_phpfpm_enabled_ownvhost."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'vhost_httpuser', '".$db->escape($update_phpfpm_httpuser)."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'vhost_httpgroup', '".$db->escape($update_phpfpm_httpgroup)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'phpfpm', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'enabled_ownvhost', 'value' => $update_phpfpm_enabled_ownvhost)); + Database::pexecute($stmt, array('varname' => 'vhost_httpuser', 'value' => $update_phpfpm_httpuser)); + Database::pexecute($stmt, array('varname' => 'vhost_httpgroup', 'value' => $update_phpfpm_httpgroup)); lastStepStatus(0); updateToVersion('0.9.16-svn2'); } -if(isFroxlorVersion('0.9.16-svn2')) -{ +if (isFroxlorVersion('0.9.16-svn2')) { showUpdateStep("Updating from 0.9.16-svn2 to 0.9.16 final"); lastStepStatus(0); - updateToVersion('0.9.16'); } -if(isFroxlorVersion('0.9.16')) -{ +if (isFroxlorVersion('0.9.16')) { + showUpdateStep("Updating from 0.9.16 to 0.9.17-svn1", false); $update_system_report_enable = isset($_POST['update_system_report_enable']) ? (int)$_POST['update_system_report_enable'] : '1'; @@ -1363,45 +1401,74 @@ if(isFroxlorVersion('0.9.16')) $update_system_report_trafficmax = isset($_POST['update_system_report_trafficmax']) ? (int)$_POST['update_system_report_trafficmax'] : '90'; showUpdateStep("Adding new settings for web- and traffic-reporting"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_enable', '".(int)$update_system_report_enable."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_webmax', '".(int)$update_system_report_webmax."');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_trafficmax', '".(int)$update_system_report_trafficmax."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'report_enable', 'value' => $update_system_report_enable)); + Database::pexecute($stmt, array('varname' => 'report_webmax', 'value' => $update_system_report_webmax)); + Database::pexecute($stmt, array('varname' => 'report_trafficmax', 'value' => $update_system_report_trafficmax)); lastStepStatus(0); showUpdateStep("Adding new cron-module for web- and traffic-reporting"); $clastrun = mktime(6, 0, 0, date('m'), date('d') - 1, date('Y')); - $db->query("INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET `module`='froxlor/reports', `cronfile`='cron_usage_report.php', `lastrun`='".(int)$clastrun."', `interval`='1 DAY', `isactive`='".(int)$update_system_report_enable."', `desc_lng_key`='cron_usage_report';"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET + `module` = 'froxlor/reports', + `cronfile` = 'cron_usage_report.php', + `interval` = '1 DAY', + `desc_lng_key` = 'cron_usage_report', + `lastrun` = :lastrun, + `isactive` = :isactive" + ); + Database::pexecute($stmt, array('lastrun' => $clastrun, 'isactive' => update_system_report_enable)); lastStepStatus(0); showUpdateStep("Updating various database-fields"); - $db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='system' AND `varname`='last_traffic_report_run';"); - $check = $db->query_first("SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname`='trafficninetypercent_subject';"); - if(isset($check['varname']) && $check['varname'] == 'trafficninetypercent_subject') - { - $db->query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_subject' WHERE `varname`='trafficninetypercent_subject';"); + Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'last_traffic_report_run';"); + + $check_stmt = Database::query(" + SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname` = 'trafficninetypercent_subject';" + ); + Database::pexecute($check_stmt); + $check = $check_stmt->fetch(PDO::FETCH_ASSOC); + + if (isset($check['varname']) + && $check['varname'] == 'trafficninetypercent_subject' + ) { + Database::query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_subject' WHERE `varname` = 'trafficninetypercent_subject';"); } - $check = $db->query_first("SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname`='trafficninetypercent_mailbody';"); - if(isset($check['varname']) && $check['varname'] == 'trafficninetypercent_mailbody') - { - $db->query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_mailbody' WHERE `varname`='trafficninetypercent_mailbody';"); + + $check_stmt = Database::query(" + SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname` = 'trafficninetypercent_mailbody';" + ); + Database::pexecute($check_stmt); + $check = $check_stmt->fetch(PDO::FETCH_ASSOC); + + if (isset($check['varname']) + && $check['varname'] == 'trafficninetypercent_mailbody' + ) { + Database::query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_mailbody' WHERE `varname` = 'trafficninetypercent_mailbody';"); } lastStepStatus(0); updateToVersion('0.9.17-svn1'); } -if(isFroxlorVersion('0.9.17-svn1')) -{ +if (isFroxlorVersion('0.9.17-svn1')) { + showUpdateStep("Updating from 0.9.17-svn1 to 0.9.17-svn2", false); showUpdateStep("Adding new tables to database"); - $db->query("CREATE TABLE IF NOT EXISTS `ipsandports_docrootsettings` ( + Database::query("CREATE TABLE IF NOT EXISTS `ipsandports_docrootsettings` ( `id` int(5) NOT NULL auto_increment, `fid` int(11) NOT NULL, `docrootsettings` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM;"); - $db->query("CREATE TABLE IF NOT EXISTS `domain_docrootsettings` ( + Database::query("CREATE TABLE IF NOT EXISTS `domain_docrootsettings` ( `id` int(5) NOT NULL auto_increment, `fid` int(11) NOT NULL, `docrootsettings` text NOT NULL, @@ -1412,31 +1479,36 @@ if(isFroxlorVersion('0.9.17-svn1')) updateToVersion('0.9.17-svn2'); } -if(isFroxlorVersion('0.9.17-svn2')) -{ +if (isFroxlorVersion('0.9.17-svn2')) { showUpdateStep("Updating from 0.9.17-svn2 to 0.9.17 final"); lastStepStatus(0); - updateToVersion('0.9.17'); } -if(isFroxlorVersion('0.9.17')) -{ +if (isFroxlorVersion('0.9.17')) { + showUpdateStep("Updating from 0.9.17 to 0.9.18-svn1", false); showUpdateStep("Checking whether you are missing any settings", false); $nonefound = true; - $result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'httpgroup'"); - if(!isset($result) || !isset($result['value'])) - { + $result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'httpgroup'"); + $result = $result_stmt->fetch(PDO::FETCH_ASSOC); + + if (!isset($result) || !isset($result['value'])) { $nonefound = false; showUpdateStep("Adding missing setting 'httpgroup'"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'httpgroup', '".$settings['system']['httpuser']."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'httpgroup', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $settings['system']['httpuser'])); lastStepStatus(0); } - if($nonefound) { + if ($nonefound) { showUpdateStep("No missing settings found ;-)"); lastStepStatus(0); } @@ -1444,325 +1516,294 @@ if(isFroxlorVersion('0.9.17')) updateToVersion('0.9.18-svn1'); } -if(isFroxlorVersion('0.9.18-svn1')) -{ +if (isFroxlorVersion('0.9.18-svn1')) { + showUpdateStep("Updating from 0.9.18-svn1 to 0.9.18-svn2", false); $update_default_theme = isset($_POST['update_default_theme']) ? $_POST['update_default_theme'] : 'Froxlor'; showUpdateStep("Adding new settings for themes"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'default_theme', '".$db->escape($update_default_theme)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'panel', + `varname` = 'default_theme', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_default_theme)); lastStepStatus(0); showUpdateStep("Delete old setting for header-graphic"); - $db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='admin' AND `varname` = 'froxlor_graphic';"); + Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='admin' AND `varname` = 'froxlor_graphic';"); lastStepStatus(0); showUpdateStep("Updating table layouts"); - $db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_SESSIONS."` ADD `theme` varchar(255) NOT NULL default '' AFTER `adminsession`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_SESSIONS."` ADD `theme` varchar(255) NOT NULL default '' AFTER `adminsession`;"); lastStepStatus(0); updateToVersion('0.9.18-svn2'); } -if(isFroxlorVersion('0.9.18-svn2')) -{ +if (isFroxlorVersion('0.9.18-svn2')) { showUpdateStep("Updating from 0.9.18-svn2 to 0.9.18 final"); lastStepStatus(0); - updateToVersion('0.9.18'); } -if(isFroxlorVersion('0.9.18')) -{ +if (isFroxlorVersion('0.9.18')) { showUpdateStep("Updating from 0.9.18 to 0.9.18.1"); lastStepStatus(0); - updateToVersion('0.9.18.1'); } -if(isFroxlorVersion('0.9.18.1')) -{ +if (isFroxlorVersion('0.9.18.1')) { showUpdateStep("Updating from 0.9.18.1 to 0.9.19"); lastStepStatus(0); - updateToVersion('0.9.19'); } -if(isFroxlorVersion('0.9.19')) -{ +if (isFroxlorVersion('0.9.19')) { showUpdateStep("Updating from 0.9.19 to 0.9.20-svn1"); lastStepStatus(0); showUpdateStep("Adding new setting for domain validation"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'validate_domain', '1')"); + Database::query(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'validate_domain', + `value` = '1'" + ); lastStepStatus(0); updateToVersion('0.9.20-svn1'); } +if (isFroxlorVersion('0.9.20-svn1')) { -if(isFroxlorVersion('0.9.20-svn1')) -{ showUpdateStep("Updating from 0.9.20-svn1 to 0.9.20-svn2"); // adding backup stuff - - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'"); - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_enabled', '1')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_dir', '#froxlor_backup')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_mysqldump_path', '/usr/bin/mysqldump')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_count', '1')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_bigfile', '1')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_enabled', '0')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_server', '')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_user', '')"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_pass', '')"); - $db->query("INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/backup', 'cron_backup.php', '1 Day', '1', 'cron_backup');"); + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'"); + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_enabled', '0')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_dir', '#froxlor_backup')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_mysqldump_path', '/usr/bin/mysqldump')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_count', '1')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_bigfile', '1')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_enabled', '0')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_server', '')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_user', '')"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_pass', '')"); + Database::query("INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/backup', 'cron_backup.php', '1 DAY', '1', 'cron_backup');"); lastStepStatus(0); updateToVersion('0.9.20-svn2'); } -if(isFroxlorVersion('0.9.20-svn2')) -{ +if (isFroxlorVersion('0.9.20-svn2')) { showUpdateStep("Updating from 0.9.20-svn2 to 0.9.20"); lastStepStatus(0); - updateToVersion('0.9.20'); } -if(isFroxlorVersion('0.9.20')) -{ +if (isFroxlorVersion('0.9.20')) { showUpdateStep("Updating from 0.9.20 to 0.9.20.1"); lastStepStatus(0); - updateToVersion('0.9.20.1'); } -if(isFroxlorVersion('0.9.20.1')) -{ +if (isFroxlorVersion('0.9.20.1')) { + showUpdateStep("Updating from 0.9.20.1 to 0.9.20.1-svn1"); lastStepStatus(0); showUpdateStep("Fixing possible broken tables"); // The customer-table may miss the columns, if installed a fresh 0.9.20 or 0.9.20.1 - add them - $result = $db->query("DESCRIBE `" . TABLE_PANEL_CUSTOMERS . "`"); + $result = Database::query("DESCRIBE `" . TABLE_PANEL_CUSTOMERS . "`"); $columnfound = 0; - while($row = $db->fetch_array($result)) - { - if($row['Field'] == 'backup_allowed') - { + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + if ($row['Field'] == 'backup_allowed') { $columnfound = 1; } } - if (!$columnfound) - { - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'"); - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'"); + if (!$columnfound) { + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'"); + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'"); } // The admin-table may have the columns, if installed a fresh 0.9.20.1 - remove them - $result = $db->query("DESCRIBE `" . TABLE_PANEL_ADMINS . "`"); + $result = Database::query("DESCRIBE `" . TABLE_PANEL_ADMINS . "`"); $columnfound = 0; - while($row = $db->fetch_array($result)) - { - if($row['Field'] == 'backup_allowed') - { + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + if ($row['Field'] == 'backup_allowed') { $columnfound = 1; } } - if ($columnfound) - { - $db->query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_allowed`;"); - $db->query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_enabled`;"); + if ($columnfound) { + Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_allowed`;"); + Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_enabled`;"); } lastStepStatus(0); updateToVersion('0.9.20.1-svn1'); } -if(isFroxlorVersion('0.9.20.1-svn1') || isFroxlorVersion('0.9.20.2-svn1')) -{ +if (isFroxlorVersion('0.9.20.1-svn1') || isFroxlorVersion('0.9.20.2-svn1')) { + showUpdateStep("Updating from 0.9.20.1-svn1 to 0.9.21-svn1"); lastStepStatus(0); // add table column for gender - $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`"); - - + showUpdateStep("Add column for gender to customers"); + Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`"); lastStepStatus(0); updateToVersion('0.9.21-svn1'); } -if(isFroxlorVersion('0.9.21-svn1')) -{ +if (isFroxlorVersion('0.9.21-svn1')) { + showUpdateStep("Updating from 0.9.21-svn1 to 0.9.21-svn2"); lastStepStatus(0); /* add new setting: backup FTP mode */ - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1')"); - + showUpdateStep("Add new settings for backup ftp-mode"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1')"); lastStepStatus(0); updateToVersion('0.9.21-svn2'); } -if(isFroxlorVersion('0.9.21-svn2')) -{ +if (isFroxlorVersion('0.9.21-svn2')) { showUpdateStep("Updating from 0.9.21-svn2 to 0.9.21"); lastStepStatus(0); - updateToVersion('0.9.21'); } -if(isFroxlorVersion('0.9.21')) -{ +if (isFroxlorVersion('0.9.21')) { + showUpdateStep("Updating from 0.9.21 to 0.9.22-svn1"); lastStepStatus(0); /* add new settings for diskspacequota - support */ - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_enabled', '0');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_repquota_path', '/usr/sbin/repquota');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_quotatool_path', '/usr/bin/quotatool');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_customer_partition', '/dev/root');"); + showUpdateStep("Add new settings for diskspacequota support"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_enabled', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_repquota_path', '/usr/sbin/repquota');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_quotatool_path', '/usr/bin/quotatool');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_customer_partition', '/dev/root');"); + lastStepStatus(0); updateToVersion('0.9.22-svn1'); } -if(isFroxlorVersion('0.9.22-svn1')) -{ +if (isFroxlorVersion('0.9.22-svn1')) { + showUpdateStep("Updating from 0.9.22-svn1 to 0.9.22-svn2"); lastStepStatus(0); /* fix backup_dir for #186 */ - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/var/customers/backups/' WHERE `varname` = 'backup_dir';"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/var/customers/backups/' WHERE `varname` = 'backup_dir';"); updateToVersion('0.9.22-svn2'); } -if(isFroxlorVersion('0.9.22-svn2')) -{ +if (isFroxlorVersion('0.9.22-svn2')) { showUpdateStep("Updating from 0.9.22-svn2 to 0.9.22-rc1"); lastStepStatus(0); - updateToVersion('0.9.22-rc1'); } -if(isFroxlorVersion('0.9.22-rc1')) -{ +if (isFroxlorVersion('0.9.22-rc1')) { showUpdateStep("Updating from 0.9.22-rc1 to 0.9.22"); lastStepStatus(0); - updateToVersion('0.9.22'); } -if(isFroxlorVersion('0.9.22')) -{ +if (isFroxlorVersion('0.9.22')) { showUpdateStep("Updating from 0.9.22 to 0.9.23-rc1"); lastStepStatus(0); - updateToVersion('0.9.23-rc1'); } - -if(isFroxlorVersion('0.9.23-rc1')) -{ +if (isFroxlorVersion('0.9.23-rc1')) { showUpdateStep("Updating from 0.9.23-rc1 to 0.9.23"); lastStepStatus(0); - updateToVersion('0.9.23'); } -if(isFroxlorVersion('0.9.23')) -{ +if (isFroxlorVersion('0.9.23')) { + showUpdateStep("Updating from 0.9.23 to 0.9.24-svn1"); lastStepStatus(0); /* add new settings for logrotate - support */ - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_enabled', '0');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_binary', '/usr/sbin/logrotate');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_interval', 'weekly');"); - $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_keep', '4');"); + showUpdateStep("Add new settings for logrotate support"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_enabled', '0');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_binary', '/usr/sbin/logrotate');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_interval', 'weekly');"); + Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_keep', '4');"); + lastStepStatus(0); updateToVersion('0.9.24-svn1'); } -if(isFroxlorVersion('0.9.24-svn1')) -{ +if (isFroxlorVersion('0.9.24-svn1')) { showUpdateStep("Updating from 0.9.24-svn1 to 0.9.24-rc1"); lastStepStatus(0); - updateToVersion('0.9.24-rc1'); } -if(isFroxlorVersion('0.9.24-rc1')) -{ +if (isFroxlorVersion('0.9.24-rc1')) { showUpdateStep("Updating from 0.9.24-rc1 to 0.9.24"); lastStepStatus(0); - updateToVersion('0.9.24'); } -if(isFroxlorVersion('0.9.24')) -{ +if (isFroxlorVersion('0.9.24')) { showUpdateStep("Updating from 0.9.24 to 0.9.25-rc1"); lastStepStatus(0); - updateToVersion('0.9.25-rc1'); } -if(isFroxlorVersion('0.9.25-rc1')) -{ +if (isFroxlorVersion('0.9.25-rc1')) { showUpdateStep("Updating from 0.9.25-rc1 to 0.9.25"); lastStepStatus(0); - updateToVersion('0.9.25'); } -if(isFroxlorVersion('0.9.25')) -{ +if (isFroxlorVersion('0.9.25')) { showUpdateStep("Updating from 0.9.25 to 0.9.26-svn1"); lastStepStatus(0); - // enable bind by default - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bind_enable', '1')"); - + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bind_enable', '1')"); updateToVersion('0.9.26-svn1'); } -if(isFroxlorVersion('0.9.26-svn1')) -{ +if (isFroxlorVersion('0.9.26-svn1')) { showUpdateStep("Updating from 0.9.26-svn1 to 0.9.26-rc1"); lastStepStatus(0); - updateToVersion('0.9.26-rc1'); } -if(isFroxlorVersion('0.9.26-rc1')) -{ +if (isFroxlorVersion('0.9.26-rc1')) { showUpdateStep("Updating from 0.9.26-rc1 to 0.9.26"); lastStepStatus(0); - updateToVersion('0.9.26'); } -if(isFroxlorVersion('0.9.26')) -{ +if (isFroxlorVersion('0.9.26')) { + showUpdateStep("Updating from 0.9.26 to 0.9.27-svn1"); lastStepStatus(0); // check for multiple backup_ftp_enabled entries - $handle = $db->query("SELECT `value` FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';"); + $handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';"); - // if there are more than one entry try to fix it - if ($db->num_rows($handle) > 1) { - $rows = $db->fetch_array($handle); + // if there are more than one entries try to fix it + if (Database::num_rows() > 1) { + $rows = $handle->fetch(PDO::FETCH_ASSOC); $state = false; // iterate through all found entries @@ -1772,132 +1813,135 @@ if(isFroxlorVersion('0.9.26')) } // now delete all entries - $db->query("DELETE FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';"); + Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';"); // and re-add it - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_enabled', '". $state ."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'backup_ftp_enabled', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $state)); } updateToVersion('0.9.27-svn1'); } -if(isFroxlorVersion('0.9.27-svn1')) -{ +if (isFroxlorVersion('0.9.27-svn1')) { + showUpdateStep("Updating from 0.9.27-svn1 to 0.9.27-svn2"); lastStepStatus(0); // Get FastCGI timeout setting if available - $handle = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'mod_fcgid_idle_timeout';"); + $handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'mod_fcgid_idle_timeout';"); // If timeout is set then skip - if ($db->num_rows($handle) < 1) { - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_idle_timeout', '30');"); + if (Database::num_rows() < 1) { + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_idle_timeout', '30');"); } // Get FastCGI timeout setting if available - $handle = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'idle_timeout';"); + $handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'idle_timeout';"); // If timeout is set then skip - if ($db->num_rows($handle) < 1) { - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'idle_timeout', '30');"); + if (Database::num_rows() < 1) { + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'idle_timeout', '30');"); } updateToVersion('0.9.27-svn2'); } -if(isFroxlorVersion('0.9.27-svn2')) -{ +if (isFroxlorVersion('0.9.27-svn2')) { showUpdateStep("Updating from 0.9.27-svn2 to 0.9.27-rc1"); lastStepStatus(0); - updateToVersion('0.9.27-rc1'); } -if(isFroxlorVersion('0.9.27-rc1')) -{ +if (isFroxlorVersion('0.9.27-rc1')) { showUpdateStep("Updating from 0.9.27-rc1 to 0.9.27"); lastStepStatus(0); - updateToVersion('0.9.27'); } -if(isFroxlorVersion('0.9.27')) { +if (isFroxlorVersion('0.9.27')) { + showUpdateStep("Updating from 0.9.27 to 0.9.28-svn1"); lastStepStatus(0); // Get AliasconfigDir setting if available - $handle = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'aliasconfigdir';"); + $handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'aliasconfigdir';"); // If AliasconfigDir is set then skip - if ($db->num_rows($handle) < 1) { - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'aliasconfigdir', '/var/www/php-fpm/');"); + if (Database::num_rows() < 1) { + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'aliasconfigdir', '/var/www/php-fpm/');"); } updateToVersion('0.9.28-svn1'); } -if(isFroxlorVersion('0.9.28-svn1')) { +if (isFroxlorVersion('0.9.28-svn1')) { + showUpdateStep("Updating from 0.9.28-svn1 to 0.9.28-svn2"); lastStepStatus(0); // Insert ISO-Codes into database. Default value is foo, which is not a valid language code. - $db->query("ALTER TABLE `panel_languages` ADD `iso` CHAR( 3 ) NOT NULL DEFAULT 'foo' AFTER `language`"); + Database::query("ALTER TABLE `panel_languages` ADD `iso` CHAR( 3 ) NOT NULL DEFAULT 'foo' AFTER `language`"); - $handle = $db->query("SELECT `language` FROM `panel_languages` WHERE `iso`='foo'"); + $handle = Database::query("SELECT `language` FROM `panel_languages` WHERE `iso`='foo'"); - $langauges = $db->fetch_array($handle); - foreach($languages as $language){ + while ($langauge = $handle->fetch(PDO::FETCH_ASSOC)) { switch ($language) { case "Deutsch": - $db->query("UPDATE `panel_languages` SET `iso`='de' WHERE `language` = 'Deutsch'"); + Database::query("UPDATE `panel_languages` SET `iso`='de' WHERE `language` = 'Deutsch'"); break; case "English": - $db->query("UPDATE `panel_languages` SET `iso`='en' WHERE `language` = 'English'"); + Database::query("UPDATE `panel_languages` SET `iso`='en' WHERE `language` = 'English'"); break; case "Français": - $db->query("UPDATE `panel_languages` SET `iso`='fr' WHERE `language` = 'Français'"); + Database::query("UPDATE `panel_languages` SET `iso`='fr' WHERE `language` = 'Français'"); break; case "Chinese": - $db->query("UPDATE `panel_languages` SET `iso`='zh' WHERE `language` = 'Chinese'"); + Database::query("UPDATE `panel_languages` SET `iso`='zh' WHERE `language` = 'Chinese'"); break; case "Catalan": - $db->query("UPDATE `panel_languages` SET `iso`='ca' WHERE `language` = 'Catalan'"); + Database::query("UPDATE `panel_languages` SET `iso`='ca' WHERE `language` = 'Catalan'"); break; case "Español": - $db->query("UPDATE `panel_languages` SET `iso`='es' WHERE `language` = 'Español'"); + Database::query("UPDATE `panel_languages` SET `iso`='es' WHERE `language` = 'Español'"); break; case "Português": - $db->query("UPDATE `panel_languages` SET `iso`='pt' WHERE `language` = 'Português'"); + Database::query("UPDATE `panel_languages` SET `iso`='pt' WHERE `language` = 'Português'"); break; case "Danish": - $db->query("UPDATE `panel_languages` SET `iso`='da' WHERE `language` = 'Danish'"); + Database::query("UPDATE `panel_languages` SET `iso`='da' WHERE `language` = 'Danish'"); break; case "Italian": - $db->query("UPDATE `panel_languages` SET `iso`='it' WHERE `language` = 'Italian'"); + Database::query("UPDATE `panel_languages` SET `iso`='it' WHERE `language` = 'Italian'"); break; case "Bulgarian": - $db->query("UPDATE `panel_languages` SET `iso`='bg' WHERE `language` = 'Bulgarian'"); + Database::query("UPDATE `panel_languages` SET `iso`='bg' WHERE `language` = 'Bulgarian'"); break; case "Slovak": - $db->query("UPDATE `panel_languages` SET `iso`='sk' WHERE `language` = 'Slovak'"); + Database::query("UPDATE `panel_languages` SET `iso`='sk' WHERE `language` = 'Slovak'"); break; case "Dutch": - $db->query("UPDATE `panel_languages` SET `iso`='nl' WHERE `language` = 'Dutch'"); + Database::query("UPDATE `panel_languages` SET `iso`='nl' WHERE `language` = 'Dutch'"); break; case "Russian": - $db->query("UPDATE `panel_languages` SET `iso`='ru' WHERE `language` = 'Russian'"); + Database::query("UPDATE `panel_languages` SET `iso`='ru' WHERE `language` = 'Russian'"); break; case "Hungarian": - $db->query("UPDATE `panel_languages` SET `iso`='hu' WHERE `language` = 'Hungarian'"); + Database::query("UPDATE `panel_languages` SET `iso`='hu' WHERE `language` = 'Hungarian'"); break; case "Swedish": - $db->query("UPDATE `panel_languages` SET `iso`='sv' WHERE `language` = 'Swedish'"); + Database::query("UPDATE `panel_languages` SET `iso`='sv' WHERE `language` = 'Swedish'"); break; case "Czech": - $db->query("UPDATE `panel_languages` SET `iso`='cz' WHERE `language` = 'Czech'"); + Database::query("UPDATE `panel_languages` SET `iso`='cz' WHERE `language` = 'Czech'"); break; case "Polski": - $db->query("UPDATE `panel_languages` SET `iso`='pl' WHERE `language` = 'Polski'"); + Database::query("UPDATE `panel_languages` SET `iso`='pl' WHERE `language` = 'Polski'"); break; default: showUpdateStep("Sorry, but I don't know the ISO-639 language code for ".$language.". Please update the entry in `panel_languages` manually.\n"); @@ -1907,65 +1951,82 @@ if(isFroxlorVersion('0.9.28-svn1')) { updateToVersion('0.9.28-svn2'); } -if(isFroxlorVersion('0.9.28-svn2')) { +if (isFroxlorVersion('0.9.28-svn2')) { + showUpdateStep("Updating from 0.9.28-svn2 to 0.9.28-svn3"); lastStepStatus(0); // change lenght of passwd column - $db->query("ALTER TABLE `" . TABLE_FTP_USERS . "` MODIFY `password` varchar(128) NOT NULL default ''"); + Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` MODIFY `password` varchar(128) NOT NULL default ''"); // Add default setting for vmail_maildirname if not already in place - $handle = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildirname';"); - if ($db->num_rows($handle) < 1) { + $handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildirname';"); + if (Database::num_rows() < 1) { showUpdateStep("Adding default Maildir value into Mailserver settings."); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_maildirname', 'Maildir');"); + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_maildirname', 'Maildir');"); } updateToVersion('0.9.28-svn3'); } -if(isFroxlorVersion('0.9.28-svn3')) -{ +if (isFroxlorVersion('0.9.28-svn3')) { + showUpdateStep("Updating from 0.9.28-svn3 to 0.9.28-svn4", true); lastStepStatus(0); - if (isset($_POST['classic_theme_replacement']) && $_POST['classic_theme_replacement'] != '') - { + if (isset($_POST['classic_theme_replacement']) + && $_POST['classic_theme_replacement'] != '' + ) { $classic_theme_replacement = $_POST['classic_theme_replacement']; - } - else - { + } else { $classic_theme_replacement = 'Froxlor'; } showUpdateStep('Setting replacement for the discontinued and removed Classic theme (if active)', true); // Updating default theme setting - if ($settings['panel']['default_theme'] == 'Classic') - { - $db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '".$db->escape($classic_theme_replacement)."' WHERE varname = 'default_theme';"); + if ($settings['panel']['default_theme'] == 'Classic') { + $upd_stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_SETTINGS . "` SET + `value` = :theme + WHERE `varname` = 'default_theme';" + ); + Database::pexecute($upd_stmt, array('theme' => $classic_theme_replacement)); } // Updating admin's theme setting - $db->query('UPDATE `' . TABLE_PANEL_ADMINS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\''); + $upd_stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_ADMINS . "` SET + `theme` = :theme + WHERE `theme` = 'Classic';" + ); + Database::pexecute($upd_stmt, array('theme' => $classic_theme_replacement)); // Updating customer's theme setting - $db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\''); + $upd_stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET + `theme` = :theme + WHERE `theme` = 'Classic';" + ); + Database::pexecute($upd_stmt, array('theme' => $classic_theme_replacement)); // Updating theme setting of active sessions - $db->query('UPDATE `' . TABLE_PANEL_SESSIONS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\''); + $upd_stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_SESSIONS . "` SET + `theme` = :theme + WHERE `theme` = 'Classic';" + ); + Database::pexecute($upd_stmt, array('theme' => $classic_theme_replacement)); lastStepStatus(0); showUpdateStep('Altering Froxlor database and tables to use UTF-8. This may take a while..', true); - $db->query('ALTER DATABASE `' . $db->getDbName() . '` CHARACTER SET utf8 COLLATE utf8_general_ci'); + Database::query('ALTER DATABASE `' . Database::getDbName() . '` CHARACTER SET utf8 COLLATE utf8_general_ci'); - $handle = $db->query('SHOW TABLES'); - while ($row = $db->fetch_array($handle)) - { - foreach ($row as $table) - { - $db->query('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;'); + $handle = Database::query('SHOW TABLES'); + while ($row = $handle->fetch(PDO::FETCH_ASSOC)) { + foreach ($row as $table) { + Database::query('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;'); } } @@ -1974,38 +2035,51 @@ if(isFroxlorVersion('0.9.28-svn3')) updateToVersion('0.9.28-svn4'); } -if(isFroxlorVersion('0.9.28-svn4')) { +if (isFroxlorVersion('0.9.28-svn4')) { + showUpdateStep("Updating from 0.9.28-svn4 to 0.9.28-svn5"); // Catchall functionality (enabled by default) see #1114 - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('catchall', 'catchall_enabled', '1');"); - + showUpdateStep('Enabling catchall by default'); + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('catchall', 'catchall_enabled', '1');"); lastStepStatus(0); updateToVersion('0.9.28-svn5'); } if (isFroxlorVersion('0.9.28-svn5')) { + showUpdateStep("Updating from 0.9.28-svn5 to 0.9.28-svn6", true); lastStepStatus(0); $update_system_apache24 = isset($_POST['update_system_apache24']) ? (int)$_POST['update_system_apache24'] : '0'; showUpdateStep('Setting value for apache-2.4 modification', true); // support for Apache-2.4 - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'apache24', '".$update_system_apache24."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'apache24', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_system_apache24)); lastStepStatus(0); showUpdateStep("Inserting new tickets-see-all field to panel_admins", true); - $db->query("ALTER TABLE `panel_admins` ADD `tickets_see_all` tinyint(1) NOT NULL default '0' AFTER `tickets_used`"); + Database::query("ALTER TABLE `panel_admins` ADD `tickets_see_all` tinyint(1) NOT NULL default '0' AFTER `tickets_used`"); lastStepStatus(0); showUpdateStep("Updating main admin entry", true); - $db->query("UPDATE `panel_admins` SET `tickets_see_all` = '1' WHERE `adminid` = '".$userinfo['adminid']."';"); + $stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_ADMINS . "` SET + `tickets_see_all` = '1' + WHERE `adminid` = :adminid" + ); + Database::pexecute($stmt, array('adminid' => $userinfo['adminid'])); lastStepStatus(0); showUpdateStep("Inserting new panel webfont-settings (default: off)", true); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'use_webfonts', '0');"); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'webfont', 'Numans');"); + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'use_webfonts', '0');"); + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'webfont', 'Numans');"); lastStepStatus(0); showUpdateStep("Inserting settings for nginx fastcgi-params file", true); @@ -2013,7 +2087,13 @@ if (isFroxlorVersion('0.9.28-svn5')) { if (isset($_POST['nginx_fastcgi_params']) && $_POST['nginx_fastcgi_params'] != '') { $fastcgiparams = makeCorrectFile($_POST['nginx_fastcgi_params']); } - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('nginx', 'fastcgiparams', '".$db->escape($fastcgiparams)."')"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'nginx', + `varname` = 'fastcgiparams', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $fastcgiparams)); lastStepStatus(0); updateToVersion('0.9.28-svn6'); @@ -2026,12 +2106,19 @@ if (isFroxlorVersion('0.9.28-svn6')) { } if (isFroxlorVersion('0.9.28-rc1')) { + showUpdateStep("Updating from 0.9.28-rc1 to 0.9.28-rc2", true); lastStepStatus(0); $update_system_documentroot_use_default_value = isset($_POST['update_system_documentroot_use_default_value']) ? (int)$_POST['update_system_documentroot_use_default_value'] : '0'; showUpdateStep("Adding new settings for using domain name as default value for DocumentRoot path", true); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'documentroot_use_default_value', '".$update_system_documentroot_use_default_value."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'documentroot_use_default_value', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $update_system_documentroot_use_default_value)); lastStepStatus(0); updateToVersion('0.9.28-rc2'); @@ -2039,9 +2126,9 @@ if (isFroxlorVersion('0.9.28-rc1')) { if (isFroxlorVersion('0.9.28-rc2')) { showUpdateStep("Updating from 0.9.28-rc2 to 0.9.28 final", true); - $db->query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='mod_log_sql'"); - $db->query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='openssl_cnf'"); - $db->query("ALTER TABLE `panel_domains` DROP `safemode`"); + Database::query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='mod_log_sql'"); + Database::query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='openssl_cnf'"); + Database::query("ALTER TABLE `panel_domains` DROP `safemode`"); lastStepStatus(0); updateToVersion('0.9.28'); @@ -2054,41 +2141,61 @@ if (isFroxlorVersion('0.9.28')) { } if (isFroxlorVersion('0.9.28.1')) { + showUpdateStep("Updating from 0.9.28.1 to 0.9.29-dev1", true); lastStepStatus(0); $hide_stdsubdomains = isset($_POST['hide_stdsubdomains']) ? (int)$_POST['hide_stdsubdomains'] : '0'; showUpdateStep('Setting value for "hide standard subdomains"', true); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'phpconfigs_hidestdsubdomain', '".$hide_stdsubdomains."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'panel', + `varname` = 'phpconfigs_hidestdsubdomain', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $hide_stdsubdomains)); lastStepStatus(0); // don't advertise security questions - just set a default silently - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'passwordcryptfunc', '1');"); + Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'passwordcryptfunc', '1');"); $fastcgiparams = $settings['nginx']['fastcgiparams']; // check the faulty value explicitly if ($fastcgiparams == '/etc/nginx/fastcgi_params/') { $fastcgiparams = makeCorrectFile(substr($fastcgiparams,0,-1)); - $db->query("UPDATE TABLE `panel_settings` SET `value`='".$db->escape($fastcgiparams)."' WHERE `varname`='fastcgiparams';"); + $stmt = Database::prepare(" + UPDATE `" . TABLE_PANEL_SETTINGS . "` SET + `value` = :value + WHERE `varname` = 'fastcgiparams'" + ); + Database::pexecute($stmt, array('value' => $fastcgiparams)); } updateToVersion('0.9.29-dev1'); } if (isFroxlorVersion('0.9.29-dev1')) { + showUpdateStep("Updating from 0.9.29-dev1 to 0.9.29-dev2", true); lastStepStatus(0); $allow_themechange_c = isset($_POST['allow_themechange_c']) ? (int)$_POST['allow_themechange_c'] : '1'; $allow_themechange_a = isset($_POST['allow_themechange_a']) ? (int)$_POST['allow_themechange_a'] : '1'; showUpdateStep("Inserting new setting to allow/disallow theme changes (default: on)", true); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'allow_theme_change_admin', '".$allow_themechange_a."');"); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'allow_theme_change_customer', '".$allow_themechange_c."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'panel', + `varname` = :varname, + `value` = :value" + ); + Database::pexecute($stmt, array('varname' => 'allow_theme_change_admin', 'value' => $allow_themechange_a)); + Database::pexecute($stmt, array('varname' => 'allow_theme_change_customer', 'value' => $allow_themechange_c)); lastStepStatus(0); updateToVersion('0.9.29-dev2'); } if (isFroxlorVersion('0.9.29-dev2')) { + showUpdateStep("Updating from 0.9.29-dev2 to 0.9.29-dev3", true); lastStepStatus(0); @@ -2104,18 +2211,25 @@ if (isFroxlorVersion('0.9.29-dev2')) { $system_axfrservers = implode(", ", $newaxfrserver); } showUpdateStep("Inserting new setting for AXFR server", true); - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'axfrservers', '".$db->escape($system_axfrservers)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'axfrservers', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $system_axfrservers)); lastStepStatus(0); updateToVersion('0.9.29-dev3'); } if (isFroxlorVersion('0.9.29-dev3')) { + showUpdateStep("Updating from 0.9.29-dev3 to 0.9.29-dev4", true); lastStepStatus(0); showUpdateStep("Adding new tables to database", true); - $db->query("CREATE TABLE IF NOT EXISTS `domain_ssl_settings` ( + Database::query("CREATE TABLE IF NOT EXISTS `domain_ssl_settings` ( `id` int(5) NOT NULL auto_increment, `domainid` int(11) NOT NULL, `ssl_cert_file` text NOT NULL, @@ -2131,24 +2245,37 @@ if (isFroxlorVersion('0.9.29-dev3')) { // prevent users from specifying nonsense here $system_customersslpath = '/etc/ssl/froxlor-custom/'; } - $db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'customer_ssl_path', '".$db->escape($system_customersslpath)."');"); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'system', + `varname` = 'customer_ssl_path', + `value` = :value" + ); + Database::pexecute($stmt, array('value' => $system_customersslpath)); updateToVersion('0.9.29-dev4'); } if (isFroxlorVersion('0.9.29-dev4')) { + showUpdateStep("Updating from 0.9.29-dev4 to 0.9.29-rc1", true); lastStepStatus(0); // check for wrong vmail_maildirname database-field-name (bug #1242) showUpdateStep("correcting Maildir setting database-field-name (if needed).", true); - $db->query("UPDATE `panel_settings` SET `varname` = 'vmail_maildirname' WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildir'"); + Database::query("UPDATE `panel_settings` SET `varname` = 'vmail_maildirname' WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildir'"); lastStepStatus(0); showUpdateStep("setting default php-configuration for php-fpm", true); + $stmt = Database::prepare(" + INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET + `settinggroup` = 'phpfpm', + `varname` = :varname, + `value` = :value" + ); $dval = (isset($settings['system']['mod_fcgid_defaultini']) ? $settings['system']['mod_fcgid_defaultini'] : '1'); - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'phpfpm', `varname` = 'defaultini', `value` = '".(int)$dval."'"); + Database::pexecute($stmt, array('varname' => 'defaultini', 'value' => $dval)); $dval = (isset($settings['system']['mod_fcgid_ownvhost']) ? $settings['system']['mod_fcgid_ownvhost'] : '1'); - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'phpfpm', `varname` = 'vhost_defaultini', `value` = '".(int)$dval."'"); + Database::pexecute($stmt, array('varname' => 'vhost_defaultini', 'value' => $dval)); lastStepStatus(0); updateToVersion('0.9.29-rc1'); @@ -2161,30 +2288,32 @@ if (isFroxlorVersion('0.9.29-rc1')) { } if (isFroxlorVersion('0.9.29')) { + showUpdateStep("Updating from 0.9.29 to 0.9.29.1-dev1", true); lastStepStatus(0); showUpdateStep("Adding new ip to domain - mapping-table"); - $db->query("DROP TABLE IF EXISTS `panel_domaintoip`;"); + Database::query("DROP TABLE IF EXISTS `panel_domaintoip`;"); $sql = "CREATE TABLE `".TABLE_DOMAINTOIP."` ( `id_domain` int(11) unsigned NOT NULL, `id_ipandports` int(11) unsigned NOT NULL, PRIMARY KEY (`id_domain`, `id_ipandports`) ) ENGINE=MyISAM ;"; - $db->query($sql); + Database::query($sql); lastStepStatus(0); showUpdateStep("Convert old domain to ip - mappings"); - $result = $db->query("SELECT `id`, `ipandport`, `ssl_ipandport`, `ssl_redirect`, `parentdomainid` FROM `" . TABLE_PANEL_DOMAINS . "`;"); + $result = Database::query("SELECT `id`, `ipandport`, `ssl_ipandport`, `ssl_redirect`, `parentdomainid` FROM `" . TABLE_PANEL_DOMAINS . "`;"); + + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { - while ($row = $db->fetch_array($result)) { if ((int)$row['ipandport'] != 0) { - $db->query("INSERT INTO `".TABLE_DOMAINTOIP."` SET + Database::query("INSERT INTO `".TABLE_DOMAINTOIP."` SET `id_domain` = " . (int)$row['id'] . ", `id_ipandports` = " . (int)$row['ipandport']); } if ((int)$row['ssl_ipandport'] != 0) { - $db->query("INSERT INTO `".TABLE_DOMAINTOIP."` SET + Database::query("INSERT INTO `".TABLE_DOMAINTOIP."` SET `id_domain` = " . (int)$row['id'] . ", `id_ipandports` = " . (int)$row['ssl_ipandport']); } @@ -2193,7 +2322,7 @@ if (isFroxlorVersion('0.9.29')) { && (int)$row['ssl_redirect'] != 0 && (int)$row['parentdomainid'] != 0 ) { - $db->query("INSERT INTO `".TABLE_DOMAINTOIP."` SET + Database::query("INSERT INTO `".TABLE_DOMAINTOIP."` SET `id_domain` = " . (int)$row['id'] . ", `id_ipandports` = ( SELECT `ssl_ipandport` FROM `" . TABLE_PANEL_DOMAINS . "` @@ -2204,51 +2333,54 @@ if (isFroxlorVersion('0.9.29')) { lastStepStatus(0); showUpdateStep("Updating table layouts"); - $db->query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ipandport`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ssl`;"); - $db->query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ssl_ipandport`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ipandport`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ssl`;"); + Database::query("ALTER TABLE `".TABLE_PANEL_DOMAINS."` DROP `ssl_ipandport`;"); lastStepStatus(0); updateToVersion('0.9.29.1-dev1'); } if (isFroxlorVersion('0.9.29.1-dev1')) { + showUpdateStep("Updating from 0.9.29.1-dev1 to 0.9.29.1-dev2", true); lastStepStatus(0); showUpdateStep("Updating table layouts and contents"); - $db->query("ALTER TABLE `".TABLE_MAIL_USERS."` ADD `mboxsize` bigint(30) NOT NULL default '0' AFTER `imap`;"); - $db->query("INSERT INTO `cronjobs_run` SET `module` = 'froxlor/core', `cronfile` = 'cron_mailboxsize.php', `interval` = '6 HOUR', `isactive` = '1', `desc_lng_key` = 'cron_mailboxsize';"); + Database::query("ALTER TABLE `".TABLE_MAIL_USERS."` ADD `mboxsize` bigint(30) NOT NULL default '0' AFTER `imap`;"); + Database::query("INSERT INTO `cronjobs_run` SET `module` = 'froxlor/core', `cronfile` = 'cron_mailboxsize.php', `interval` = '6 HOUR', `isactive` = '1', `desc_lng_key` = 'cron_mailboxsize';"); lastStepStatus(0); updateToVersion('0.9.29.1-dev2'); } if (isFroxlorVersion('0.9.29.1-dev2')) { + showUpdateStep("Updating from 0.9.29.1-dev2 to 0.9.29.1-dev3", true); lastStepStatus(0); showUpdateStep("Removing old logrotate settings"); - $db->query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_enabled';"); - $db->query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_binary';"); - $db->query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_interval';"); - $db->query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_keep';"); + Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_enabled';"); + Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_binary';"); + Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_interval';"); + Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_keep';"); lastStepStatus(0); updateToVersion('0.9.29.1-dev3'); } if (isFroxlorVersion('0.9.29.1-dev3')) { + showUpdateStep("Updating from 0.9.29.1-dev3 to 0.9.29.1-dev4", true); lastStepStatus(0); // If you upgraded from SysCP the edit_billingdata field has been // removed in one of the first upgrades to froxlor. Sadly, one field // remained in the install.sql so we remove it now if it exists - $bd_exists = $db->query("SHOW COLUMNS FROM `".TABLE_PANEL_ADMINS."` LIKE 'edit_billingdata';"); - if ($db->num_rows() > 0) { + $bd_exists = Database::query("SHOW COLUMNS FROM `".TABLE_PANEL_ADMINS."` LIKE 'edit_billingdata';"); + if (Database::num_rows() > 0) { showUpdateStep("Removing old billing-field from admin-users"); - $db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `edit_billingdata`"); + Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `edit_billingdata`"); lastStepStatus(0); } @@ -2268,11 +2400,12 @@ if (isFroxlorVersion('0.9.30-dev1')) { } if (isFroxlorVersion('0.9.30-rc1')) { + showUpdateStep("Updating from 0.9.30-rc1 to 0.9.30 final", true); lastStepStatus(0); showUpdateStep("Adding ssl-cipher-list setting"); - $db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_cipher_list', `value` = 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH'"); + Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_cipher_list', `value` = 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH'"); lastStepStatus(0); updateToVersion('0.9.30'); diff --git a/lib/classes/database/class.Database.php b/lib/classes/database/class.Database.php index bde4cc81..29ef2066 100644 --- a/lib/classes/database/class.Database.php +++ b/lib/classes/database/class.Database.php @@ -48,6 +48,11 @@ class Database { */ private static $_dbserver = 0; + /** + * used database-name + */ + private static $_dbname = null; + /** * Wrapper for PDOStatement::execute so we can catch the PDOException * and display the error nicely on the panel @@ -73,6 +78,15 @@ class Database { return Database::query("SELECT FOUND_ROWS()")->fetchColumn(); } + /** + * returns the database-name which is used + * + * @return string + */ + public static function getDbName() { + return self::$_dbname; + } + /** * enabled the usage of a root-connection to the database * Note: must be called *before* any prepare/query/etc. @@ -89,16 +103,6 @@ class Database { self::$_needroot = $needroot; } - /** - * set the database-server (relevant for root-connection) - * - * @param int $dbserver - */ - private static function _setServer($dbserver = 0) { - self::$_dbserver = $dbserver; - self::$_link = null; - } - /** * let's us interact with the PDO-Object by using static * call like "Database::function()" @@ -119,6 +123,16 @@ class Database { return $result; } + /** + * set the database-server (relevant for root-connection) + * + * @param int $dbserver + */ + private static function _setServer($dbserver = 0) { + self::$_dbserver = $dbserver; + self::$_link = null; + } + /** * function that will be called on every static call * which connects to the database if necessary @@ -175,6 +189,8 @@ class Database { 'dbname' => $sql["db"] ); + self::$_dbname = $sql["db"]; + // add options to dsn-string foreach ($dbconf["dsn"] as $k => $v) { $dsn .= $k."=".$v.";"; diff --git a/lib/functions/filedir/function.makeCorrectDir.php b/lib/functions/filedir/function.makeCorrectDir.php index 440346b2..d08eb149 100644 --- a/lib/functions/filedir/function.makeCorrectDir.php +++ b/lib/functions/filedir/function.makeCorrectDir.php @@ -24,7 +24,6 @@ * @return string The corrected dirname * @author Florian Lippert */ - function makeCorrectDir($dir) { $dir = trim($dir);