diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index a82ac2e74ccd728f8882a1ef212aea862465796d..83b6ffba3a39c96977fbad30612700eb544c2705 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2152,7 +2152,7 @@ class installer_base { // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + } public function configure_dbserver() { @@ -2240,6 +2240,21 @@ class installer_base { touch($conf['ispconfig_log_dir'].'/cron.log'); chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); + } + + // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases + public function cleanup_ispconfig() { + global $app,$conf; + + // Remove directories recursively + if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); + + // Remove files + if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); + if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); + + + } public function getinitcommand($servicename, $action, $init_script_directory = ''){ diff --git a/install/update.php b/install/update.php index 36eb2018175cef76d39daba55895a33c3e9d3499..eec69bad3b38f3e1d4b1ff1174e9de147f74c4c1 100644 --- a/install/update.php +++ b/install/update.php @@ -443,6 +443,9 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { $inst->install_ispconfig(); +// Cleanup +$inst->cleanup_ispconfig(); + //** Configure Crontab $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab'); if($update_crontab_answer == 'yes') { diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php deleted file mode 100644 index e6948ddd2d6f84df5c5af7dc8675985c9e175c01..0000000000000000000000000000000000000000 --- a/interface/lib/classes/form.inc.php +++ /dev/null @@ -1,517 +0,0 @@ -tableDef = $table; - $this->table_name = $table_name; - $this->table_index = $table_index; - return true; - } - - function loadFormDef($file) { - global $app, $conf; - - include_once $file; - $this->formDef = $form; - return true; - } - - - - - - - - - /** - * Konvertiert die Daten des übergebenen assoziativen - * Arrays in "menschenlesbare" Form. - * Datentyp Konvertierung, z.B. für Ausgabe in Listen. - * - * @param record - * @return record - */ - function decode($record) { - global $app; - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - $new_record[$key] = stripslashes($val); - break; - - case 'DATE': - if($val > 0) { - $new_record[$key] = date($this->dateformat, $val); - } - break; - - case 'INTEGER': - $new_record[$key] = $app->functions->intval($val); - break; - - case 'DOUBLE': - $new_record[$key] = $val; - break; - - case 'CURRENCY': - $new_record[$key] = number_format($val, 2, ',', ''); - break; - - default: - $new_record[$key] = stripslashes($val); - } - } - - } - return $new_record; - } - - - - - - /** - * Record für Ausgabe in Formularen vorbereiten. - * - * @param record = Datensatz als Array - * @param action = NEW oder EDIT - * @return record - */ - function getHTML($record, $action = 'NEW') { - - global $app; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - $new_record = array(); - if($action == 'EDIT') { - $record = $this->decode($record); - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'], $val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $selected = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $selected = ' SELECTED'; - } - - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($val); - } - } - } - } else { - foreach($this->tableDef as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'], $val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $out .= "\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']); - } - } - - } - - if($this->debug == 1) $this->dbg($new_record); - - return $new_record; - } - - - - - - /** - * Record in "maschinen lesbares" Format überführen - * und Werte gegen reguläre Ausdrücke prüfen. - * - * @param record = Datensatz als Array - * @return record - */ - function encode($record) { - global $app; - $this->errorMessage = ''; - - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - if(!is_array($val)) { - $new_record[$key] = $app->db->quote($val); - } else { - $new_record[$key] = implode($this->tableDef[$key]['separator'], $val); - } - break; - case 'DATE': - if($val > 0) { - list($tag, $monat, $jahr) = explode('.', $val); - $new_record[$key] = mktime(0, 0, 0, $monat, $tag, $jahr); - } - break; - case 'INTEGER': - $new_record[$key] = $app->functions->intval($val); - break; - case 'DOUBLE': - $new_record[$key] = $app->db->quote($val); - break; - case 'CURRENCY': - $new_record[$key] = str_replace(",", ".", $val); - break; - } - - if($this->tableDef[$key]['regex'] != '') { - // Enable that "." matches also newlines - $this->tableDef[$key]['regex'] .= 's'; - if(!preg_match($this->tableDef[$key]['regex'], $val)) { - $this->errorMessage .= $this->tableDef[$key]['errmsg']."
\r\n"; - } - } - } - - } - return $new_record; - } - - - - - - /** - * SQL Statement für Record erzeugen. - * - * @param record = Datensatz als Array - * @param action = INSERT oder UPDATE - * @param primary_id - * @return record - */ - function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { - - global $app; - - $record = $this->encode($record); - $sql_insert_key = ''; - $sql_insert_val = ''; - $sql_update = ''; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - // gehe durch alle Felder des Records - if(is_array($record)) { - foreach($record as $key => $val) { - // Wenn es kein leeres Passwortfeld ist - if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { - // gehe durch alle Felder der TableDef - foreach($this->tableDef as $tk => $tv) { - // Wenn Feld in TableDef enthalten ist - if($tk == $key) { - // Erzeuge Insert oder Update Quelltext - if($action == "INSERT") { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_insert_key .= "`$key`, "; - // $sql_insert_val .= "'$val', "; - } else { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "'$val', "; - } - - } else { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_update .= "`$key` = md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_update .= "`$key` = '$val', "; - } else { - $sql_update .= "`$key` = '$val', "; - } - - } - } - } - } - } - } - - // Füge Backticks nur bei unvollständigen Tabellennamen ein - if(stristr($this->table_name, '.')) { - $escape = ''; - } else { - $escape = '`'; - } - - - if($action == "INSERT") { - $sql_insert_key = substr($sql_insert_key, 0, -2); - $sql_insert_val = substr($sql_insert_val, 0, -2); - $sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; - } else { - if($primary_id != 0) { - $sql_update = substr($sql_update, 0, -2); - $sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id; - if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; - } else { - $app->error("Primary ID fehlt!"); - } - } - - return $sql; - } - - - - - - /** - * Debugging arrays. - * - * @param array_data - */ - function dbg($array_data) { - - echo "
";
-		print_r($array_data);
-		echo "
"; - - } - - - function showForm() { - global $app, $conf; - - if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); - - if($this->errorMessage == '') { - // wenn kein Fehler vorliegt - if($_REQUEST["next_tab"] != '') { - // wenn nächster Tab bekannt - $active_tab = $_REQUEST["next_tab"]; - } else { - // ansonsten ersten tab nehmen - $active_tab = $this->formDef["tabs"][0]["name"]; - } - } else { - // bei Fehlern den gleichen Tab nochmal anzeigen - $active_tab = $_SESSION["s"]["form"]["tab"]; - } - - // definiere Tabs - foreach( $this->formDef["tabs"] as $tab) { - - if($tab["name"] == $active_tab) { - $app->tpl->setInclude('content_tpl', $tab["template"]); - $tab["active"] = 1; - $_SESSION["s"]["form"]["tab"] = $tab["name"]; - } else { - $tab["active"] = 0; - } - - $frmTab[] = $tab; - } - - // setze Loop - $app->tpl->setLoop("formTab", $frmTab); - - // Formular action setzen - $app->tpl->setVar('form_action', $this->formDef["action"]); - } - - -} - -?>