From 8035e3ffa1c5d780f9e4de626285f7038b825251 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Wed, 26 Jan 2022 23:48:00 -0700 Subject: [PATCH] Add more command line upgrade options. --- core/upgrade/upgrade.php | 164 +++++++++++++++++++++++++++------------ 1 file changed, 115 insertions(+), 49 deletions(-) diff --git a/core/upgrade/upgrade.php b/core/upgrade/upgrade.php index 3876a28aa9..79f749f791 100644 --- a/core/upgrade/upgrade.php +++ b/core/upgrade/upgrade.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2020 + Portions created by the Initial Developer are Copyright (C) 2008-2022 the Initial Developer. All Rights Reserved. Contributor(s): @@ -48,59 +48,125 @@ $display_type = 'html'; //html, text } -//add multi-lingual support - require_once "resources/classes/text.php"; - $language = new text; - $text = $language->get(); +//set the default upgrade type + $upgrade_type = 'defaults'; -//show the title - if ($display_type == 'text') { - echo "\n"; - echo $text['label-upgrade']."\n"; - echo "-----------------------------------------\n"; - echo "\n"; - echo $text['label-database']."\n"; +//get the command line arguments + if(defined('STDIN')) { + //$application_name = $argv[0]; + $upgrade_type = $argv[1]; + //echo $upgrade_type."\n"; } -//make sure the database schema and installation have performed all necessary tasks - require_once "resources/classes/schema.php"; - $obj = new schema; - echo $obj->schema("text"); - //run all app_defaults.php files - require_once "resources/classes/domains.php"; - $domain = new domains; - $domain->display_type = $display_type; - $domain->upgrade(); - -//show the content - if ($display_type == 'html') { - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
".$text['header-message']."
".$text['message-upgrade']."
\n"; - echo "
\n"; - - echo "
\n"; - echo "
\n"; - echo "
\n"; - echo "
\n"; - echo "
\n"; - echo "
\n"; - echo "
\n"; - } - elseif ($display_type == 'text') { - echo "\n"; + if ($upgrade_type == 'domains') { + require_once "resources/classes/config.php"; + require_once "resources/classes/domains.php"; + $domain = new domains; + $domain->display_type = $display_type; + $domain->upgrade(); } -//include the footer - if ($display_type == "html") { - require_once "resources/footer.php"; +//upgrade schema and/or data_types + if ($upgrade_type == 'schema') { + //get the database schema put it into an array then compare and update the database as needed. + require_once "resources/classes/schema.php"; + $obj = new schema; + if (isset($argv[2]) && $argv[2] == 'data_types') { + $obj->data_types = true; + } + echo $obj->schema($format); } -?> \ No newline at end of file +//restore the default menu + if ($upgrade_type == 'menu') { + //get the menu uuid and language + $sql = "select menu_uuid, menu_language from v_menus "; + $sql .= "where menu_name = :menu_name "; + $parameters['menu_name'] = 'default'; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && sizeof($row) != 0) { + $menu_uuid = $row["menu_uuid"]; + $menu_language = $row["menu_language"]; + } + unset($sql, $parameters, $row); + + //restore the menu + $included = true; + require_once("core/menu/menu_restore_default.php"); + unset($sel_menu); + + //send message to the console + echo $text['message-upgrade_menu']."\n"; + } + +//restore the default permissions + if ($upgrade_type == 'permissions') { + //default the permissions + $included = true; + require_once("core/groups/permissions_default.php"); + + //send message to the console + echo $text['message-upgrade_permissions']."\n"; + } + +//default upgrade schema and app defaults + if ($upgrade_type == 'defaults') { + //add multi-lingual support + require_once "resources/classes/text.php"; + $language = new text; + $text = $language->get(); + + //show the title + if ($display_type == 'text') { + echo "\n"; + echo $text['label-upgrade']."\n"; + echo "-----------------------------------------\n"; + echo "\n"; + echo $text['label-database']."\n"; + } + + //make sure the database schema and installation have performed all necessary tasks + require_once "resources/classes/schema.php"; + $obj = new schema; + echo $obj->schema("text"); + + //run all app_defaults.php files + require_once "resources/classes/domains.php"; + $domain = new domains; + $domain->display_type = $display_type; + $domain->upgrade(); + + //show the content + if ($display_type == 'html') { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
".$text['header-message']."
".$text['message-upgrade']."
\n"; + echo "
\n"; + + echo "
\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + } + elseif ($display_type == 'text') { + echo "\n"; + } + + //include the footer + if ($display_type == "html") { + require_once "resources/footer.php"; + } + } + +?>