protected function getModuleConfigView(Structure $oStructure, Module $oModule) { $moduleConfigView = new ViewModuleConfiguration(); $settings = []; if ($oModule->getPrimaryKey()) { $aModulesSettings = $oModule->getModuleSettings(); foreach ($aModulesSettings as $oModuleSetting) { $type = Module::TYPE_LIST; if (!is_null($oModuleSetting->entity)) { $oEntities = DataSource::factory($oModuleSetting->entity); $oEntities->builder()->where('deleted=0'); $list = $oEntities->findAll(); $type = Module::TYPE_ENTITY; } elseif (!is_null($oModuleSetting->list)) { $list = json_decode($oModuleSetting->list, true); } else { $list = []; } $oStructureSetting = null; if ($oStructure->id) { $oStructureSettings = DataSource::factory(StructureSetting::cls()); $oStructureSettings->builder()->where("structure_id={$oStructure->getPrimaryKey()}")->whereAnd()->where("module_setting_id={$oModuleSetting->getPrimaryKey()}"); /** @var StructureSetting[] $aStructureSettings */ $aStructureSettings = $oStructureSettings->findAll(); if (!empty($aStructureSettings)) { $oStructureSetting = $aStructureSettings[0]; } } $settings[] = ['type' => $type, 'setting' => $oModuleSetting, 'list' => $list, 'value' => is_null($oStructureSetting) ? null : $oStructureSetting->value]; } } $moduleConfigView->settings = $settings; return $moduleConfigView; }