'Standard', 'exhibition' => 'Exhibition', ]; const PAGE_TYPE = [ '' => '', 'exhibit' => 'Exhibitions', ]; public function init(ModuleManager $moduleManager): void { $moduleManager->getEventManager()->attach(ModuleEvent::EVENT_MERGE_CONFIG, [$this, 'onEventMergeConfig']); } public function onEventMergeConfig(ModuleEvent $event): void { /** @var \Laminas\ModuleManager\Listener\ConfigListener $configListener */ $configListener = $event->getParam('configListener'); // At this point, the config is read only, so it is copied and replaced. $config = $configListener->getMergedConfig(false); /* if (isset($config['block_layouts']['factories']['html'])) { unset($config['block_layouts']['factories']['html']); } if (isset($config['block_layouts']['sorted_names']['html'])) { unset($config['block_layouts']['sorted_names']['html']); } */ if (isset($config['block_layouts']['invokables']['tableOfContents'])) { unset($config['block_layouts']['invokables']['tableOfContents']); } if (isset($config['block_layouts']['invokables']['browsePreview'])) { unset($config['block_layouts']['invokables']['browsePreview']); } $configListener->setMergedConfig($config); } public function getConfig() { return include __DIR__ . '/config/module.config.php'; } public function getConfigForm(PhpRenderer $renderer) { $services = $this->getServiceLocator(); $config = $services->get('Config'); $settings = $services->get('Omeka\Settings'); $form = $services->get('FormElementManager')->get(ConfigForm::class); $data = []; $defaultSettings = $config['config']['SiteMeta']; foreach ($defaultSettings as $name => $value) { $data[$name] = $settings->get($name, $value); } $form->init(); $form->setData($data); $html = $renderer->render('module/config', [ 'form' => $form, ]); return $html; } public function handleConfigForm(AbstractController $controller) { //return true; //if (!parent::handleConfigForm($controller)) { // return false; //} //$services = $this->getServiceLocator(); //$settings = $services->get('Omeka\Settings'); //$a=$b; $config = $this->getConfig(); #print_r($config); $encodedString = json_encode($config); file_put_contents('/tmp/json_array.txt', $encodedString); var_dump($encodedString); $space = strtolower(static::NAMESPACE); if (empty($config['config']['SiteMeta'])) { return true; } $services = $this->getServiceLocator(); $formManager = $services->get('FormElementManager'); $formClass = static::NAMESPACE . '\Form\ConfigForm'; if (!$formManager->has($formClass)) { return true; } $params = $controller->getRequest()->getPost(); $form = $formManager->get($formClass); $form->init(); $form->setData($params); if (!$form->isValid()) { $controller->messenger()->addErrors($form->getMessages()); return false; } $params = $form->getData(); $settings = $services->get('Omeka\Settings'); $defaultSettings = $config['config']['SiteMeta']; //$defaultSettings = $config[$space]['config']; $params = array_intersect_key($params, $defaultSettings); foreach ($params as $name => $value) { $settings->set($name, $value); } return true; } }