From 333ee274b5fb6c587e101a755d862188d6422dab Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 26 Nov 2014 14:49:57 +0100 Subject: [PATCH] [ticket/334] Try to resolve functions for portal modules in acp B3P-334 --- acp/portal_module.php | 16 ++++++++++++++-- language/de/portal_acp.php | 1 + language/en/portal_acp.php | 1 + language/nl/portal_acp.php | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/acp/portal_module.php b/acp/portal_module.php index 25bbc296..c55f2a8c 100644 --- a/acp/portal_module.php +++ b/acp/portal_module.php @@ -184,8 +184,20 @@ class portal_module { if (!is_array($null['submit'])) { - $func = array($this->c_class, $null['submit']); - $args = ($module_id != 0) ? array($config_name, $module_id) : $config_name; + if (method_exists($this->c_class, $null['submit'])) + { + $func = array($this->c_class, $null['submit']); + $args = ($module_id != 0) ? array($config_name, $module_id) : $config_name; + } + else if (function_exists($null['submit'])) + { + $func = $null['submit']; + $args = ($module_id != 0) ? array($cfg_array[$config_name], $config_name, $module_id) : $config_name; + } + else + { + throw new \RuntimeException($this->user->lang('UNKNOWN_MODULE_METHOD', $module_data['module_classname'])); + } } else { diff --git a/language/de/portal_acp.php b/language/de/portal_acp.php index 02ff40dc..c290a1b5 100644 --- a/language/de/portal_acp.php +++ b/language/de/portal_acp.php @@ -74,6 +74,7 @@ $lang = array_merge($lang, array( 'MODULE_STATUS' => 'Aktiviere Modul', 'MODULE_ADD_ONCE' => 'Diese Modul kann nur ein Mal hinzugefügt werden.', 'MODULE_IMAGE_ERROR' => 'Während dem Prüfen des Modul Bildes sind ein oder mehrere Fehler aufgetreten:', + 'UNKNOWN_MODULE_METHOD' => 'Die Modul Methode des %1$s Moduls konnte nicht gefunden werden.', // general 'ACP_PORTAL_CONFIG_INFO' => 'Allgemeine Einstellungen', diff --git a/language/en/portal_acp.php b/language/en/portal_acp.php index 97d28a71..b2fd1dfc 100644 --- a/language/en/portal_acp.php +++ b/language/en/portal_acp.php @@ -73,6 +73,7 @@ $lang = array_merge($lang, array( 'MODULE_STATUS' => 'Enable module', 'MODULE_ADD_ONCE' => 'This module can only be added once.', 'MODULE_IMAGE_ERROR' => 'There was an error while checking for the module image:', + 'UNKNOWN_MODULE_METHOD' => 'The %1$s module’s module method couldn’t be resolved.', // general 'ACP_PORTAL_CONFIG_INFO' => 'General settings', diff --git a/language/nl/portal_acp.php b/language/nl/portal_acp.php index a194f770..2698fe0e 100644 --- a/language/nl/portal_acp.php +++ b/language/nl/portal_acp.php @@ -68,6 +68,7 @@ $lang = array_merge($lang, array( 'MODULE_STATUS' => 'Module inschakelen', 'MODULE_ADD_ONCE' => 'Deze module kan maar één keer worden toegevoegd.', 'MODULE_IMAGE_ERROR' => 'Er is een fout opgetreden tijdens het controleren van de module afbeelding:', + 'UNKNOWN_MODULE_METHOD' => 'De methode van de %1$s module kan niet worden gevonden.', // general 'ACP_PORTAL_CONFIG_INFO' => 'Algemene instellingen', 'ACP_PORTAL_GENERAL_TITLE' => 'Portaal beheer',