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(); }
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(); } } }