public function doSave($con = null)
 {
     parent::doSave($con);
     $enabled_ids = $this->getValue('enabled_modules');
     $all_dependencies = sfConfig::get('app_pm_module_enabler_dependencies', array());
     foreach ($this->getObject()->getpmModules() as $pm_module) {
         $pm_module->setIsEnabled(in_array($pm_module->getId(), $enabled_ids) || $pm_module->getName() == 'pmconfiguration' ? true : false);
         $pm_module->save();
     }
     foreach ($all_dependencies as $pm_module_name => $dependency) {
         $pm_module = pmModulePeer::retrieveByName($pm_module_name);
         if ($pm_module->getIsEnabled()) {
             $dependencies = isset($all_dependencies[$pm_module_name]) ? $all_dependencies[$pm_module_name] : array();
             // save all module dependencies
             foreach ($dependencies as $dependency) {
                 $dependency = pmModulePeer::retrieveByName($dependency);
                 $dependency->setIsEnabled(true);
                 $dependency->save();
             }
         }
     }
     // clear cache
     $cache = new sfFileCache(array('cache_dir' => sfConfig::get('sf_cache_dir')));
     $cache->clean();
 }
Exemple #2
0
 public function loadModules()
 {
     $enabled_modules = sfConfig::get('sf_enabled_modules', array());
     $always_enabled = sfConfig::get('app_pm_module_enabler_always_enabled', array());
     foreach ($enabled_modules as $enabled_module) {
         $pm_module = pmModulePeer::retrieveByName($enabled_module);
         if (!in_array($enabled_module, $always_enabled) && is_null($pm_module)) {
             $pm_module = new pmModule();
             $pm_module->setName($enabled_module);
             if ($enabled_module == 'default' || $enabled_modules == 'pmconfiguration') {
                 $pm_module->setIsEnabled(true);
             }
             $pm_module->setpmConfigurationId($this->getId());
             $pm_module->save();
         }
     }
 }