/** * 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(); } }
/** * Return info about installed modules * * @return string */ protected function getModulesMessage() { $result = array(); foreach (\Includes\Utils\ModulesManager::getActiveModules() as $data) { $result[] = '(' . $data['authorName'] . '): ' . $data['moduleName'] . ' (v.' . $data['majorVersion'] . '.' . $data['minorVersion'] . ')'; } return 'Installed modules:' . LC_EOL . ($result ? implode(LC_EOL, $result) : static::t('None')); }
/** * 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); } }
/** * Execute certain hook handler * * @return void */ public function executeHookHandler() { // To cache data \Includes\Utils\ModulesManager::getActiveModules(); // Walk through the "XLite/Module" directory foreach ($this->getModuleMainFileIterator()->getIterator() as $path => $data) { $dir = $path; $name = basename($dir = dirname($dir)); $author = basename($dir = dirname($dir)); $class = \Includes\Utils\ModulesManager::getClassNameByAuthorAndName($author, $name); if (!\Includes\Utils\Operator::checkIfClassExists($class)) { require_once $path; } \Includes\Utils\ModulesManager::switchModule($author, $name); } \Includes\Utils\ModulesManager::removeFile(); }
/** * Get all active modules and return plain array with the module descriptors * * @return array */ protected static function getModulesGraphIndex() { $index = array(); // Fetch all active modules from database. // Dependencies are checked and corrected by the ModulesManager foreach (\Includes\Utils\ModulesManager::getActiveModules() as $module => $tmp) { // Unconditionally add module to the index (since its dependencies are already checked) $index[$module] = new \Includes\Decorator\DataStructure\Graph\Modules($module); } return $index; }
/** * Check if the module can be enabled * * @param \XLite\Model\Module $module Module * * @return boolean */ protected function canEnable(\XLite\Model\Module $module) { $result = $this->isModuleCompatible($module); if ($result) { $dependencies = $module->getDependencies(); if ($dependencies) { $modules = array_keys(\Includes\Utils\ModulesManager::getActiveModules()); $result = !(bool) array_diff($dependencies, $modules); } } return $result; }
/** * Return info about installed modules * * @return string */ protected function getModulesMessage() { $result = array(); foreach (\Includes\Utils\ModulesManager::getActiveModules() as $data) { $result[] = array($data['authorName'], $data['moduleName'], $data['majorVersion'], $data['minorVersion']); } usort($result, function ($a, $b) { return strcasecmp($a[1], $b[1]); }); $list = array_map(function ($a) { return vsprintf('(%s): %s (v.%s.%s)', $a); }, $result); return 'Installed modules:' . LC_EOL . ($list ? implode(LC_EOL, $list) : static::t('None')); }
/** * Return list of modules current module requires to be disabled * * @return array */ public function getEnabledMutualModules() { $list = array(); $modules = \Includes\Utils\ModulesManager::getActiveModules(); foreach ($modules as $m => $data) { $mutualModules = \Includes\Utils\ModulesManager::callModuleMethod($m, 'getMutualModulesList'); if (in_array($this->getActualName(), $mutualModules) && !isset($list[$m])) { $list[$m] = \XLite\Core\Database::getRepo('XLite\\Model\\Module')->findOneBy(array_combine(array('author', 'name'), explode('\\', $m))); } } return $list; }