예제 #1
0
 public function toggleModuleActivation(ModuleToggleActivationEvent $event)
 {
     if (null !== ($module = ModuleQuery::create()->findPk($event->getModuleId()))) {
         ModuleHookQuery::create()->filterByModuleId($module->getId())->update(array('ModuleActive' => $module->getActivate() == BaseModule::IS_ACTIVATED));
     }
     return $event;
 }
 public function manageAcl(ModuleToggleActivationEvent $event)
 {
     if (null === ($module = ModuleQuery::create()->findPk($event->getModuleId()))) {
         return;
     }
     //In case of deactivation do nothing
     if ($module->getActivate() == BaseModule::IS_ACTIVATED) {
         return;
     }
     //In case of activation update acls
     $this->aclXmlFileloader->load($module);
 }
예제 #3
0
파일: Module.php 프로젝트: alex63530/thelia
 public function toggleActivation(ModuleToggleActivationEvent $event)
 {
     if (null !== ($module = ModuleQuery::create()->findPk($event->getModuleId()))) {
         $moduleInstance = $module->createInstance();
         if (method_exists($moduleInstance, 'setContainer')) {
             $moduleInstance->setContainer($this->container);
             if ($module->getActivate() == BaseModule::IS_ACTIVATED) {
                 $moduleInstance->deActivate($module);
             } else {
                 $moduleInstance->activate($module);
             }
         }
         $event->setModule($module);
         $this->cacheClear($event->getDispatcher());
     }
 }
예제 #4
0
파일: Module.php 프로젝트: badelas/thelia
 public function checkToggleActivation(ModuleToggleActivationEvent $event)
 {
     if (true === $event->isNoCheck()) {
         return;
     }
     if (null !== ($module = ModuleQuery::create()->findPk($event->getModuleId()))) {
         try {
             if ($module->getActivate() == BaseModule::IS_ACTIVATED) {
                 $this->checkDeactivation($module);
             } else {
                 $this->checkActivation($module);
             }
         } catch (\Exception $ex) {
             $event->stopPropagation();
             throw $ex;
         }
     }
 }
예제 #5
0
파일: Module.php 프로젝트: margery/thelia
 /**
  * Get modules having current module in dependence and deactivate it if needed
  *
  * @param ModuleToggleActivationEvent $event
  *
  */
 public function recursiveDeactivation(ModuleToggleActivationEvent $event)
 {
     if (null !== ($module = ModuleQuery::create()->findPk($event->getModuleId()))) {
         $moduleValidator = new ModuleValidator($module->getAbsoluteBaseDir());
         $dependencies = $moduleValidator->getModulesDependOf(true);
         foreach ($dependencies as $defMod) {
             $submodule = ModuleQuery::create()->findOneByCode($defMod["code"]);
             if ($submodule && $submodule->getActivate() == BaseModule::IS_ACTIVATED) {
                 $subevent = new ModuleToggleActivationEvent($submodule->getId());
                 $subevent->setRecursive(true);
                 $event->getDispatcher()->dispatch(TheliaEvents::MODULE_TOGGLE_ACTIVATION, $subevent);
             }
         }
     }
 }