diff --git a/application/portaldispatcher.class.inc.php b/application/portaldispatcher.class.inc.php index 0a9cc5d4f..b56da6b68 100644 --- a/application/portaldispatcher.class.inc.php +++ b/application/portaldispatcher.class.inc.php @@ -55,7 +55,16 @@ class PortalDispatcher public function GetURL() { - return utils::GetAbsoluteUrlAppRoot().$this->aData['url']; + $aOverloads = MetaModel::GetConfig()->Get('portal_dispatch_urls'); + if (array_key_exists($this->sPortalid, $aOverloads)) + { + $sRet = $aOverloads[$this->sPortalid]; + } + else + { + $sRet = utils::GetAbsoluteUrlAppRoot().$this->aData['url']; + } + return $sRet; } public function GetLabel() diff --git a/core/config.class.inc.php b/core/config.class.inc.php index bfff92c1f..a742ebabf 100644 --- a/core/config.class.inc.php +++ b/core/config.class.inc.php @@ -718,6 +718,15 @@ class Config 'source_of_value' => '', 'show_in_conf_sample' => true, ), + 'portal_dispatch_urls' => array( + 'type' => 'array', + 'description' => 'Associative array of sPortalId => Home page URL (relatively to the application root)', + // examples... not used + 'default' => array(), + 'value' => false, + 'source_of_value' => '', + 'show_in_conf_sample' => false, + ), 'max_execution_time_per_loop' => array( 'type' => 'integer', 'description' => 'Maximum execution time requested, per loop, during bulk operations. Zero means no limit.',