summaryrefslogtreecommitdiffstats
path: root/modules-available/sysconfig/addmodule.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/sysconfig/addmodule.inc.php')
-rw-r--r--modules-available/sysconfig/addmodule.inc.php22
1 files changed, 21 insertions, 1 deletions
diff --git a/modules-available/sysconfig/addmodule.inc.php b/modules-available/sysconfig/addmodule.inc.php
index b4a84537..91fee45d 100644
--- a/modules-available/sysconfig/addmodule.inc.php
+++ b/modules-available/sysconfig/addmodule.inc.php
@@ -177,9 +177,29 @@ class AddModule_Assign extends AddModule_Base
protected function renderInternal()
{
- $data = ['edit' => $this->edit->id(), 'configs' => SysConfig::getAll()];
+ $data = ['configs' => SysConfig::getAll()];
if (count($data['configs']) === 0)
Util::redirect('?do=SysConfig');
+
+ $moduleType = $this->edit->moduleType();
+ if (ConfigModule::getList()[$moduleType]['unique']) {
+ $modules = Database::queryAll('SELECT configtgz_module.moduleid as moduleid, configtgz_module.title as title, configtgz_x_module.configid as configid'
+ . ' FROM configtgz_module INNER JOIN configtgz_x_module ON configtgz_module.moduleid = configtgz_x_module.moduleid'
+ . ' WHERE configtgz_module.moduletype = :moduletype',
+ array('moduletype' => $moduleType));
+
+ $modulesByConfigId = [];
+ foreach ($modules as $module) {
+ $modulesByConfigId[$module['configid']] = $module;
+ }
+
+ foreach ($data['configs'] as &$config) {
+ if (!isset($modulesByConfigId[$config['configid']])) continue;
+ $config['replaces'] = $modulesByConfigId[$config['configid']]['title'];
+ }
+ }
+
+ $data['edit'] = $this->edit->id();
Render::addDialog(Dictionary::translate('lang_moduleAssign'), false, 'assign', $data);
}