From 5dcb0d332bf28a8e2c49fe72488eb1cf0b04a24e Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 17 Jun 2020 15:52:06 +0900 Subject: [PATCH] Extend action_forward feature to include route info --- modules/module/module.class.php | 19 +++++++++++++++++++ modules/module/module.controller.php | 6 ++++-- .../module/queries/insertActionForward.xml | 3 +++ modules/module/schemas/action_forward.xml | 5 ++++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 392db552c..248df4c92 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -131,6 +131,11 @@ class module extends ModuleObject { return true; } + + // check route columns in action_forward table + if(!$oDB->isColumnExists('action_forward', 'route_method')) return true; + if(!$oDB->isColumnExists('action_forward', 'route_regexp')) return true; + if(!$oDB->isColumnExists('action_forward', 'route_config')) return true; } /** @@ -448,6 +453,20 @@ class module extends ModuleObject $oDB->addIndex('module_part_config', 'unique_module_part_config', array('module', 'module_srl'), false); } } + + // check route columns in action_forward table + if(!$oDB->isColumnExists('action_forward', 'route_method')) + { + $oDB->addColumn('action_forward', 'route_method', 'varchar', 30); + } + if(!$oDB->isColumnExists('action_forward', 'route_regexp')) + { + $oDB->addColumn('action_forward', 'route_regexp', 'varchar', 180); + } + if(!$oDB->isColumnExists('action_forward', 'route_config')) + { + $oDB->addColumn('action_forward', 'route_config', 'text'); + } } /** diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index 3b2132044..8e196c11c 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -19,13 +19,15 @@ class moduleController extends module * Action forward finds and forwards if an action is not in the requested module * This is used when installing a module */ - function insertActionForward($module, $type, $act) + function insertActionForward($module, $type, $act, $route_method = null, $route_regexp = null, $route_config = null) { $args = new stdClass(); $args->module = $module; $args->type = $type; $args->act = $act; - + $args->route_method = $route_method; + $args->route_regexp = $route_regexp; + $args->route_config = $route_config; $output = executeQuery('module.insertActionForward', $args); Rhymix\Framework\Cache::delete('action_forward'); diff --git a/modules/module/queries/insertActionForward.xml b/modules/module/queries/insertActionForward.xml index ef48a8e2b..20d4d52ec 100644 --- a/modules/module/queries/insertActionForward.xml +++ b/modules/module/queries/insertActionForward.xml @@ -6,5 +6,8 @@ + + + diff --git a/modules/module/schemas/action_forward.xml b/modules/module/schemas/action_forward.xml index 608bae8c8..c14824218 100644 --- a/modules/module/schemas/action_forward.xml +++ b/modules/module/schemas/action_forward.xml @@ -1,5 +1,8 @@ - + + + +