diff --git a/core/databases/app_config.php b/core/databases/app_config.php index 71da3e3035..d8e418f60c 100644 --- a/core/databases/app_config.php +++ b/core/databases/app_config.php @@ -54,6 +54,11 @@ $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = ''; $apps[$x]['db'][$y]['fields'][$z]['deprecated'] = 'true'; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = 'database_driver'; + $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = 'db_type'; + $apps[$x]['db'][$y]['fields'][$z]['type'] = 'text'; + $apps[$x]['db'][$y]['fields'][$z]['description']['en'] = 'Select the database driver.'; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = 'database_type'; $apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = 'db_type'; $apps[$x]['db'][$y]['fields'][$z]['type'] = 'text'; diff --git a/core/databases/app_defaults.php b/core/databases/app_defaults.php new file mode 100644 index 0000000000..4c9f3cb626 --- /dev/null +++ b/core/databases/app_defaults.php @@ -0,0 +1,152 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//set the database driver + $sql = "select * from v_databases "; + $sql .= "where database_driver is null "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $database_uuid = $row["database_uuid"]; + $database_type = $row["database_type"]; + $database_type_array = explode(":", $database_type); + if ($database_type_array[0] == "odbc") { + $database_driver = $database_type_array[1]; + } + else { + $database_driver = $database_type_array[0]; + } + $sql = "update v_databases set "; + $sql .= "database_driver = '$database_driver' "; + $sql .= "where database_uuid = '$database_uuid' "; + $db->exec(check_sql($sql)); + unset($sql); + } + +if (strlen($_SESSION['switch']['scripts']['dir']) > 0) { + + //get the odbc information + $sql = "select count(*) as num_rows from v_databases "; + $sql .= "where database_type = 'odbc' "; + if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] > 0) { + $odbc_num_rows = $row['num_rows']; + + $sql = "select * from v_databases "; + $sql .= "where database_driver = 'odbc' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $dsn_name = $row["database_name"]; + $dsn_username = $row["database_username"]; + $dsn_password = $row["database_password"]; + break; //limit to 1 row + } + unset ($prep_statement); + } + else { + $odbc_num_rows = '0'; + } + } + + //config.lua + $fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.lua","w"); + $tmp = "\n"; + $tmp .= "--switch directories\n"; + if (strlen($_SESSION['switch']['sounds']['dir']) > 0) { + $tmp .= " sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n"; + } + if (strlen($_SESSION['switch']['recordings']['dir']) > 0) { + $tmp .= " recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n"; + } + $tmp .= "\n"; + $tmp .= "--database connection info\n"; + if (strlen($db_type) > 0) { + $tmp .= " db_type = \"".$db_type."\";\n"; + } + if (strlen($db_name) > 0) { + $tmp .= " db_name = \"".$db_name."\";\n"; + } + if (strlen($db_path) > 0) { + $tmp .= " db_path = \"".$db_path."\";\n"; + } + if (strlen($dsn_name) > 0) { + $tmp .= " dsn_name = \"".$dsn_name."\";\n"; + } + if (strlen($dsn_username) > 0) { + $tmp .= " dsn_username = \"".$dsn_username."\";\n"; + } + if (strlen($dsn_password) > 0) { + $tmp .= " dsn_password = \"".$dsn_password."\";\n"; + } + $tmp .= "\n"; + $tmp .= "--additional info\n"; + $tmp .= " tmp_dir = \"".$tmp_dir."\";\n"; + fwrite($fout, $tmp); + unset($tmp); + fclose($fout); + + //config.js + $fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.js","w"); + $tmp = "\n"; + $tmp .= "//switch directories\n"; + $tmp .= " var admin_pin = \"".$row["admin_pin"]."\";\n"; + $tmp .= " var sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n"; + $tmp .= " var recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n"; + $tmp .= "\n"; + $tmp = "//database connection info\n"; + if (strlen($db_type) > 0) { + $tmp .= " var db_type = \"".$db_type."\";\n"; + } + if (strlen($db_name) > 0) { + $tmp .= " var db_name = \"".$db_name."\";\n"; + } + if (strlen($db_path) > 0) { + $tmp .= " var db_path = \"".$db_path."\";\n"; + } + if (strlen($dsn_name) > 0) { + $tmp .= " var dsn_name = \"".$dsn_name."\";\n"; + } + if (strlen($dsn_username) > 0) { + $tmp .= " var dsn_username = \"".$dsn_username."\";\n"; + } + if (strlen($dsn_password) > 0) { + $tmp .= " var dsn_password = \"".$dsn_password."\";\n"; + } + $tmp .= "\n"; + $tmp .= "//additional info\n"; + $tmp .= " var tmp_dir = \"".$tmp_dir."\";\n"; + fwrite($fout, $tmp); + unset($tmp); + fclose($fout); +} +?> \ No newline at end of file diff --git a/core/databases/database_edit.php b/core/databases/database_edit.php index 6499ef7844..7b20d0323e 100644 --- a/core/databases/database_edit.php +++ b/core/databases/database_edit.php @@ -44,6 +44,7 @@ else { } //clear the values + $database_driver = ''; $database_type = ''; $database_host = ''; $database_port = ''; @@ -55,6 +56,7 @@ else { //get http post variables and set them to php variables if (count($_POST)>0) { + $database_driver = check_str($_POST["database_driver"]); $database_type = check_str($_POST["database_type"]); $database_host = check_str($_POST["database_host"]); $database_port = check_str($_POST["database_port"]); @@ -73,6 +75,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { } //check for all required data + //if (strlen($database_driver) == 0) { $msg .= "Please provide: Driver
\n"; } //if (strlen($database_type) == 0) { $msg .= "Please provide: Type
\n"; } //if (strlen($database_host) == 0) { $msg .= "Please provide: Host
\n"; } //if (strlen($database_port) == 0) { $msg .= "Please provide: Port
\n"; } @@ -97,66 +100,79 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //add or update the database if ($_POST["persistformvar"] != "true") { if ($action == "add") { - $database_uuid = uuid(); - $sql = "insert into v_databases "; - $sql .= "("; - //$sql .= "domain_uuid, "; - $sql .= "database_uuid, "; - $sql .= "database_type, "; - $sql .= "database_host, "; - $sql .= "database_port, "; - $sql .= "database_name, "; - $sql .= "database_username, "; - $sql .= "database_password, "; - $sql .= "database_path, "; - $sql .= "database_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - //$sql .= "'$domain_uuid', "; - $sql .= "'$database_uuid', "; - $sql .= "'$database_type', "; - $sql .= "'$database_host', "; - $sql .= "'$database_port', "; - $sql .= "'$database_name', "; - $sql .= "'$database_username', "; - $sql .= "'$database_password', "; - $sql .= "'$database_path', "; - $sql .= "'$database_description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); + //add the data + $database_uuid = uuid(); + $sql = "insert into v_databases "; + $sql .= "("; + //$sql .= "domain_uuid, "; + $sql .= "database_uuid, "; + $sql .= "database_driver, "; + $sql .= "database_type, "; + $sql .= "database_host, "; + $sql .= "database_port, "; + $sql .= "database_name, "; + $sql .= "database_username, "; + $sql .= "database_password, "; + $sql .= "database_path, "; + $sql .= "database_description "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + //$sql .= "'$domain_uuid', "; + $sql .= "'$database_uuid', "; + $sql .= "'$database_driver', "; + $sql .= "'$database_type', "; + $sql .= "'$database_host', "; + $sql .= "'$database_port', "; + $sql .= "'$database_name', "; + $sql .= "'$database_username', "; + $sql .= "'$database_password', "; + $sql .= "'$database_path', "; + $sql .= "'$database_description' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); - require_once "includes/header.php"; - echo "\n"; - echo "
\n"; - echo "Add Complete\n"; - echo "
\n"; - require_once "includes/footer.php"; - return; + //set the defaults + require_once "app_defaults.php"; + + //redirect the browser + require_once "includes/header.php"; + echo "\n"; + echo "
\n"; + echo "Add Complete\n"; + echo "
\n"; + require_once "includes/footer.php"; + return; } //if ($action == "add") if ($action == "update") { - $sql = "update v_databases set "; - $sql .= "database_type = '$database_type', "; - $sql .= "database_host = '$database_host', "; - $sql .= "database_port = '$database_port', "; - $sql .= "database_name = '$database_name', "; - $sql .= "database_username = '$database_username', "; - $sql .= "database_password = '$database_password', "; - $sql .= "database_path = '$database_path', "; - $sql .= "database_description = '$database_description' "; - $sql .= "where database_uuid = '$database_uuid' "; - $db->exec(check_sql($sql)); - unset($sql); + //udpate the database + $sql = "update v_databases set "; + $sql .= "database_type = '$database_type', "; + $sql .= "database_driver = '$database_driver', "; + $sql .= "database_host = '$database_host', "; + $sql .= "database_port = '$database_port', "; + $sql .= "database_name = '$database_name', "; + $sql .= "database_username = '$database_username', "; + $sql .= "database_password = '$database_password', "; + $sql .= "database_path = '$database_path', "; + $sql .= "database_description = '$database_description' "; + $sql .= "where database_uuid = '$database_uuid' "; + $db->exec(check_sql($sql)); + unset($sql); - require_once "includes/header.php"; - echo "\n"; - echo "
\n"; - echo "Update Complete\n"; - echo "
\n"; - require_once "includes/footer.php"; - return; + //set the defaults + require_once "app_defaults.php"; + + //redirect the browser + require_once "includes/header.php"; + echo "\n"; + echo "
\n"; + echo "Update Complete\n"; + echo "
\n"; + require_once "includes/footer.php"; + return; } //if ($action == "update") } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) @@ -170,6 +186,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { + $database_driver = $row["database_driver"]; $database_type = $row["database_type"]; $database_host = $row["database_host"]; $database_port = $row["database_port"]; @@ -211,6 +228,43 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " Driver:\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo "Select the database driver.\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo " Type:\n"; @@ -219,30 +273,29 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo " \n"; echo "
\n"; echo "Select the database type.\n"; diff --git a/core/upgrade/app_defaults.php b/core/upgrade/app_defaults.php index e984b4af1b..a2d6f2cd6f 100644 --- a/core/upgrade/app_defaults.php +++ b/core/upgrade/app_defaults.php @@ -27,108 +27,7 @@ if (strlen($_SESSION['switch']['scripts']['dir']) > 0) { //if the resource scripts resource directory does not exist then create it - if (strlen($_SESSION['switch']['scripts']['dir']) > 0) { - if (!is_dir($_SESSION['switch']['scripts']['dir']."/resources")) { mkdir($_SESSION['switch']['scripts']['dir']."/resources",0755,true); } - } + if (!is_dir($_SESSION['switch']['scripts']['dir']."/resources")) { mkdir($_SESSION['switch']['scripts']['dir']."/resources",0755,true); } - //get odbc information - $sql = "select count(*) as num_rows from v_databases "; - $sql .= "where database_type = 'odbc' "; - if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] > 0) { - $odbc_num_rows = $row['num_rows']; - - $sql = "select * from v_databases "; - $sql .= "where database_type = 'odbc' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - $dsn_name = $row["database_name"]; - $dsn_username = $row["database_username"]; - $dsn_password = $row["database_password"]; - break; //limit to 1 row - } - unset ($prep_statement); - } - else { - $odbc_num_rows = '0'; - } - } - - //config.lua - $fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.lua","w"); - $tmp = "\n"; - $tmp .= "--switch directories\n"; - if (strlen($_SESSION['switch']['sounds']['dir']) > 0) { - $tmp .= " sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n"; - } - if (strlen($_SESSION['switch']['recordings']['dir']) > 0) { - $tmp .= " recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n"; - } - $tmp .= "\n"; - $tmp .= "--database connection info\n"; - if (strlen($db_type) > 0) { - $tmp .= " db_type = \"".$db_type."\";\n"; - } - if (strlen($db_name) > 0) { - $tmp .= " db_name = \"".$db_name."\";\n"; - } - if (strlen($db_path) > 0) { - $tmp .= " db_path = \"".$db_path."\";\n"; - } - if (strlen($dsn_name) > 0) { - $tmp .= " dsn_name = \"".$dsn_name."\";\n"; - } - if (strlen($dsn_username) > 0) { - $tmp .= " dsn_username = \"".$dsn_username."\";\n"; - } - if (strlen($dsn_password) > 0) { - $tmp .= " dsn_password = \"".$dsn_password."\";\n"; - } - $tmp .= "\n"; - $tmp .= "--additional info\n"; - $tmp .= " tmp_dir = \"".$tmp_dir."\";\n"; - fwrite($fout, $tmp); - unset($tmp); - fclose($fout); - - //config.js - $fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.js","w"); - $tmp = "\n"; - $tmp .= "//switch directories\n"; - $tmp .= " var admin_pin = \"".$row["admin_pin"]."\";\n"; - $tmp .= " var sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n"; - $tmp .= " var recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n"; - $tmp .= "\n"; - $tmp = "//database connection info\n"; - if (strlen($db_type) > 0) { - $tmp .= " var db_type = \"".$db_type."\";\n"; - } - if (strlen($db_name) > 0) { - $tmp .= " var db_name = \"".$db_name."\";\n"; - } - if (strlen($db_path) > 0) { - $tmp .= " var db_path = \"".$db_path."\";\n"; - } - if (strlen($dsn_name) > 0) { - $tmp .= " var dsn_name = \"".$dsn_name."\";\n"; - } - if (strlen($dsn_username) > 0) { - $tmp .= " var dsn_username = \"".$dsn_username."\";\n"; - } - if (strlen($dsn_password) > 0) { - $tmp .= " var dsn_password = \"".$dsn_password."\";\n"; - } - $tmp .= "\n"; - $tmp .= "//additional info\n"; - $tmp .= " var tmp_dir = \"".$tmp_dir."\";\n"; - fwrite($fout, $tmp); - unset($tmp); - fclose($fout); } ?> \ No newline at end of file