/** * Calls preComponentLoad-Hooks * PreComponentLoad-Hooks are defined in /config/preComponentLoadHooks.yml * * @throws \Exception */ protected function callPreComponentLoadHooks() { try { $filename = $this->getWebsiteConfigPath() . '/preComponentLoadHooks.yml'; $objDataSet = \Cx\Core_Modules\Listing\Model\Entity\DataSet::load($filename, false); foreach ($objDataSet as $componentDefinition) { // check if componentController was already loaded in preInit if (array_key_exists($componentDefinition['name'], $this->preLoadedComponents)) { $componentController = $this->preLoadedComponents[$componentDefinition['name']]; } else { $componentController = $this->getComponentControllerByNameAndType($componentDefinition['name'], $componentDefinition['type']); $this->preLoadedComponents[$componentDefinition['name']] = $componentController; } $componentController->preComponentLoad(); } } catch (\Cx\Core_Modules\Listing\Model\Entity\DataSetException $e) { throw new \Exception('Error in processing preComponentLoad-hooks: ' . $e->getMessage()); } }
/** * Delete one or more records from the File * * For maintenance/update purposes only. * At least one of the parameter values must be non-empty. * It will fail if both are empty. Mind that in this case, * no records will be deleted. * Does {@see flush()} the currently loaded settings on success. * @param string $name The optional setting name. * Defaults to null * @param string $group The optional group. * Defaults to null * @return boolean True on success, false otherwise */ function delete($name = null, $group = null) { // Fail if both parameter values are empty if (empty($name) && empty($group) && empty($this->section)) { return false; } $arrSetting = array(); $objDataSet = \Cx\Core_Modules\Listing\Model\Entity\DataSet::load($this->filename); // if get blank or invalid file if (empty($objDataSet)) { return false; } foreach ($objDataSet as $value) { if ($value['group'] != $group && $value['name'] != $name) { $arrSetting[$value['name']] = $value; } } // if get blank array if (empty($arrSetting)) { return false; } $objDataSet = new \Cx\Core_Modules\Listing\Model\Entity\DataSet($arrSetting); $objDataSet->exportToFile(new \Cx\Core_Modules\Listing\Model\Entity\YamlInterface(), $this->filename); return true; }
/** * Calls post-init hooks * Post-Init hooks are defined in /config/postInitHooks.yml. * * @throws \Exception */ protected function callPostInitHooks() { try { $filename = $this->getWebsiteConfigPath() . '/postInitHooks.yml'; $objDataSet = \Cx\Core_Modules\Listing\Model\Entity\DataSet::load($filename); foreach ($objDataSet as $componentDefinition) { $this->eventManager->triggerEvent('preComponent', array('componentName' => $componentDefinition['name'], 'component' => null, 'hook' => 'postInit')); $componentController = $this->getComponentControllerByNameAndType($componentDefinition['name'], $componentDefinition['type']); $componentController->postInit($this); $this->eventManager->triggerEvent('postComponent', array('componentName' => $componentDefinition['name'], 'component' => null, 'hook' => 'postInit')); } } catch (\Cx\Core_Modules\Listing\Model\Entity\DataSetException $e) { throw new \Exception('Error in processing postInit-hooks: ' . $e->getMessage()); } }
protected function loadData() { $entities = array(); $repository = \Cx\Core_Modules\Listing\Model\Entity\DataSet::load($this->repositoryPath); if (!$repository->entryExists('meta')) { throw new YamlRepositoryException("Unable to load repository {$this->repositoryPath}. Repository is missing meta description!"); } $meta = $repository->getEntry('meta'); if ($repository->entryExists('data')) { foreach ($repository->getEntry('data') as $entity) { if (!$entity instanceof \Cx\Core\Model\Model\Entity\YamlEntity) { throw new YamlRepositoryException("Unable to load repository {$this->repositoryPath}. Repository contains invalid entity: " . serialize($entity)); } $id = $this->getIdentifierOfEntity($entity, $meta['identifier']); $entities[$id] = $entity; } } return array($meta, $entities); }