Beispiel #1
0
 static function validate_input($databases)
 {
     if ($validate = validate::username($_REQUEST["admin_user"]) and $validate != "") {
         setup::error_add("{t}Admin Username{/t} - {t}validation failed{/t} " . $validate, 30);
     }
     if ($_REQUEST["db_host"] == "") {
         setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database Hostname / IP{/t}"), 31);
     }
     if ($_REQUEST["db_user"] == "") {
         setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database User{/t}"), 32);
     }
     if ($_REQUEST["db_name"] == "") {
         setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database Name{/t}"), 33);
     }
     if ($_REQUEST["admin_pw"] == "") {
         setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Admin Password{/t}"), 34);
     }
     if ($_REQUEST["admin_pw"] != "" and strlen($_REQUEST["admin_pw"]) < 5) {
         setup::error_add("{t}Admin Password{/t}: {t}Password must be not null, min 5 characters.{/t}", "34b");
     }
     if (!@sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"], $_REQUEST["db_name"])) {
         if (!sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"])) {
             setup::error_add("{t}Connection to database failed.{/t}\n" . sql_error(), 35);
         }
         setup::errors_show();
         if (!sgsml_parser::create_database($_REQUEST["db_name"])) {
             setup::error_add("{t}Creating database failed.{/t}\n" . sql_error(), 36);
         }
     }
     if (!sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"], $_REQUEST["db_name"]) or empty(sys::$db)) {
         setup::error_add("{t}Connection to database failed.{/t}\n" . sql_error(), 37);
         setup::errors_show();
     }
     if (!($version = sgsml_parser::sql_version())) {
         setup::error_add(sprintf("{t}Could not determine database-version.{/t}"), 38);
     }
     $database_min = (int) substr(str_replace(".", "", $databases[SETUP_DB_TYPE][1]), 0, 3);
     if ($version < $database_min) {
         setup::error_add(sprintf("{t}Wrong database-version (%s). Please use at least %s !{/t}", $version, $databases[SETUP_DB_TYPE]), "20" . SETUP_DB_TYPE);
     }
     if (SETUP_DB_TYPE == "pgsql") {
         if (!sql_query("SELECT ''::tsvector;")) {
             setup::error_add("{t}Please install 'tsearch2' for the PostgreSQL database.{/t}\n(Run <postgresql>/share/contrib/tsearch2.sql)\n" . sql_error(), 21);
         }
         if (!sql_query(file_get_contents("modules/core/pgsql.sql"))) {
             setup::error_add("pgsql.sql: " . sql_error(), 50);
         }
     }
     setup::errors_show();
     return $version;
 }
 static function change_database_pre()
 {
     // 0.730
     $status = array("{t}completed{/t}" => "completed", "{t}confirmed{/t}" => "confirmed", "{t}booked{/t}" => "booked", "{t}canceled{/t}" => "canceled");
     sgsml_parser::table_column_translate("simple_timesheets", "status", $status);
     sgsml_parser::table_column_translate("simple_expenses", "status", $status);
     // completed=0 && status=unconfirmed -> status=open
     // completed=1 && status=unconfirmed -> status=completed
     if (sgsml_parser::table_column_exists("simple_timesheets", "completed")) {
         db_update("simple_timesheets", array("status" => "open"), array("completed=0", "status=@status@"), array("status" => "{t}unconfirmed{/t}"), array("no_defaults" => 1));
         db_update("simple_timesheets", array("status" => "completed"), array("completed=1", "status=@status@"), array("status" => "{t}unconfirmed{/t}"), array("no_defaults" => 1));
     }
     if (sgsml_parser::table_column_exists("simple_expenses", "completed")) {
         db_update("simple_expenses", array("status" => "open"), array("completed=0", "status=@status@"), array("status" => "{t}unconfirmed{/t}"), array("no_defaults" => 1));
         db_update("simple_expenses", array("status" => "completed"), array("completed=1", "status=@status@"), array("status" => "{t}unconfirmed{/t}"), array("no_defaults" => 1));
     }
     // 0.662
     $priority = array("{t}lowest{/t}" => "1", "{t}low{/t}" => "2", "{t}normal{/t}" => "3", "{t}urgent{/t}" => "4", "{t}immediate{/t}" => "5");
     sgsml_parser::table_column_translate("simple_calendar", "priority", $priority);
     sgsml_parser::table_column_translate("simple_tasks", "priority", $priority);
     sgsml_parser::table_column_translate("simple_helpdesk", "priority", $priority);
     sgsml_parser::table_column_translate("simple_projects", "priority", $priority);
     // 0.658
     if (!sgsml_parser::table_column_rename("simple_emails", "attachments", "attachment")) {
         setup::error_add("rename[10]: " . sql_error(), 1152);
     }
     if (!sgsml_parser::table_column_rename("simple_helpdesk", "attachments", "attachment")) {
         setup::error_add("rename[9]: " . sql_error(), 1153);
     }
     // 0.400
     if (!sgsml_parser::table_column_rename("simple_projects", "started", "begin")) {
         setup::error_add("rename[8]: " . sql_error(), 152);
     }
     if (!sgsml_parser::table_column_rename("simple_projects", "finished", "ending")) {
         setup::error_add("rename[7]: " . sql_error(), 153);
     }
     // 0.220
     if (!sgsml_parser::table_column_rename("simple_gallery", "title", "filename")) {
         setup::error_add("rename[5]: " . sql_error(), 52);
     }
     if (!sgsml_parser::table_column_rename("simple_gallery", "attachment", "filedata")) {
         setup::error_add("rename[6]: " . sql_error(), 53);
     }
     // 0.219
     if (!sgsml_parser::table_column_rename("simple_calendar", "end", "ending")) {
         setup::error_add("rename[1]: " . sql_error(), 54);
     }
     if (!sgsml_parser::table_column_rename("simple_contactactivities", "end", "ending")) {
         setup::error_add("rename[2]: " . sql_error(), 55);
     }
     if (!sgsml_parser::table_column_rename("simple_tasks", "end", "ending")) {
         setup::error_add("rename[3]: " . sql_error(), 56);
     }
     // process funambol schema views on sgs update
     if (self::get_config_old("SYNC4J", false, 0) == "1") {
         setup::out(sprintf("{t}Processing %s ...{/t}", "Funambol schema"));
         if (SETUP_DB_TYPE == "mysqli") {
             $data = preg_replace("!/\\*.+?\\*/!s", "", file_get_contents("tools/funambolv7_syncML/mysql/funambol.sql"));
             if ($msg = db_query(explode(";", $data))) {
                 setup::error_add("funambol.sql [mysql]: " . $msg . " " . sql_error(), 100);
             }
         } else {
             if (SETUP_DB_TYPE == "pgsql") {
                 $data = file_get_contents("tools/funambolv7_syncML/postgresql/funambol.sql");
                 if ($msg = db_query($data)) {
                     setup::error_add("funambol.sql [pgsql]: " . $msg . " " . sql_error(), 101);
                 }
             }
         }
     }
     // 0.720
     if (sgsml_parser::table_column_exists("simple_sys_custom_fields", "id")) {
         setup::out(sprintf("{t}Processing %s ...{/t}", "customization fields"));
         $rows = db_select("simple_sys_custom_fields", "*", "activated=1", "", "");
         if (is_array($rows) and count($rows) > 0) {
             foreach ($rows as $row) {
                 sgsml_customizer::trigger_build_field($row["id"], $row, null, "simple_sys_custom_fields");
             }
         }
     }
     setup::errors_show();
 }