/** * Execute certain hook handler * * @return void */ public function executeHookHandler() { foreach (\Includes\Utils\ModulesManager::getActiveModules() as $name => $data) { $class = \Includes\Utils\ModulesManager::getClassNameByModuleName($name); $class::runBuildCacheHandler(); } }
/** * Execute certain hook handler * * @return void */ public function executeHookHandler() { $modulesNames = array_keys(\Includes\Utils\ModulesManager::getActiveModules()); $classes = array_map(function ($name) { return \Includes\Utils\ModulesManager::getClassNameByModuleName($name); }, $modulesNames); foreach ($classes as $class) { $this->runBuildCacheHandler($class); } }
/** * Check if module will be disabled after upgrade * * :TRICKY: check if the "getMajorVersion" is not declared in the main module class * * @param \XLite\Model\Module $module Module to check * * @return boolean */ protected function isModuleToDisable(\XLite\Model\Module $module) { $versionCore = \XLite\Upgrade\Cell::getInstance()->getCoreMajorVersion(); $versionModule = $module->getMajorVersion(); $classModule = \Includes\Utils\ModulesManager::getClassNameByModuleName($module->getActualName()); $reflection = new \ReflectionMethod($classModule, 'getMajorVersion'); $classModule = \Includes\Utils\Converter::prepareClassName($classModule); $classActual = \Includes\Utils\Converter::prepareClassName($reflection->getDeclaringClass()->getName()); return version_compare($versionModule, $versionCore, '<') || $classModule !== $classActual; }
/** * Get module * * @return string */ public function getValidModule() { $result = null; $module = $this->getModule(); if (!empty($module) && preg_match('/\\w+\\\\\\w+/', $module)) { $class = \Includes\Utils\ModulesManager::getClassNameByModuleName($module); if (class_exists($class)) { $result = $module; } } return $result; }
/** * Get specific language help message * * @param \XLite\Model\AEntity $entity Language object * * @return string */ protected function getLanguageHelpMessage(\XLite\Model\AEntity $entity) { $message = null; if ($entity->getValidModule()) { $moduleClass = \Includes\Utils\ModulesManager::getClassNameByModuleName($entity->getModule()); $moduleName = sprintf('%s (%s)', $moduleClass::getModuleName(), $moduleClass::getAuthorName()); $message = static::t('This language is added by module and cannot be removed.', array('module' => $moduleName)); } elseif ('en' == $entity->getCode()) { $message = 'English language cannot be removed as it is primary language for all texts.'; } return $message; }