diff options
Diffstat (limited to 'modules-available/sysconfig/addmodule.inc.php')
-rw-r--r-- | modules-available/sysconfig/addmodule.inc.php | 22 |
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); } |