コード例 #1
0
ファイル: Cx.class.php プロジェクト: Cloudrexx/cloudrexx
 /**
  * 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());
     }
 }
コード例 #2
0
ファイル: FileSystem.class.php プロジェクト: Niggu/cloudrexx
 /**
  * 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;
 }
コード例 #3
0
ファイル: Cx.class.php プロジェクト: hbdsklf/LimeCMS
 /**
  * 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());
     }
 }
コード例 #4
0
 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);
 }