Skip to content

Commit d1ec3e0

Browse files
authored
Merge pull request #1703 from shazar-webkul/gli-2896
Fixed: Module visibility on manage module and module catalog section in back-office
2 parents c13ce4d + 92d1575 commit d1ec3e0

2 files changed

Lines changed: 23 additions & 17 deletions

File tree

controllers/admin/AdminModulesCatalogController.php

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,25 +51,31 @@ public function initContent()
5151
parent::initContent();
5252

5353
$suggestedModules = Module::getSuggestedModules();
54+
$modulesDirOnDisk = Module::getModulesDirOnDisk();
55+
$localModuleNames = array();
5456

55-
$modulesToAdd = array();
56-
$dirModules = ModuleCore::getModulesOnDisk();
57-
$modules_name = array_column($suggestedModules, 'name');
58-
foreach ($dirModules as $mod) {
59-
if (($id = array_search($mod->name, $modules_name)) !== false) {
60-
if ($mod->installed) {
61-
unset($suggestedModules[$id]);
62-
} else {
63-
$suggestedModules[$id]->not_on_disk = false;
64-
}
65-
} else {
66-
if (!$mod->installed) {
67-
$modulesToAdd[] = $mod;
57+
foreach ($modulesDirOnDisk as $moduleName) {
58+
$localModuleNames[Tools::strtolower($moduleName)] = true;
59+
}
60+
61+
$modules = array();
62+
63+
foreach ($suggestedModules as $suggestedModule) {
64+
$moduleName = Tools::strtolower($suggestedModule->name);
65+
if (isset($localModuleNames[$moduleName])) {
66+
continue;
67+
}
68+
if (!empty($suggestedModule->compatibility)) {
69+
$minVersion = isset($suggestedModule->compatibility['from']) ? $suggestedModule->compatibility['from'] : null;
70+
$maxVersion = isset($suggestedModule->compatibility['to']) ? $suggestedModule->compatibility['to'] : null;
71+
72+
if (($minVersion && version_compare(_QLOAPPS_VERSION_, $minVersion, '<')) || ($maxVersion && version_compare(_QLOAPPS_VERSION_, $maxVersion, '>'))) {
73+
continue;
6874
}
6975
}
70-
}
7176

72-
$modules = array_merge($suggestedModules, $modulesToAdd);
77+
$modules[] = $suggestedModule;
78+
}
7379

7480
$link_admin_modules = $this->context->link->getAdminLink('AdminModules', true);
7581
foreach ($modules as $key => $module) {

controllers/admin/AdminModulesController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,8 +1449,8 @@ public function initContent()
14491449
$modules_preferences[$v['module']] = $v;
14501450
}
14511451

1452-
// Retrieve Modules List
1453-
$modules = Module::getInstalledModulesOnDisk(true, $this->logged_on_addons, $this->id_employee);
1452+
// Retrieve Modules List (installed + disabled + uninstalled)
1453+
$modules = Module::getModulesOnDisk(true, $this->logged_on_addons, $this->id_employee);
14541454
$this->initModulesList($modules);
14551455
$this->nb_modules_total = count($modules);
14561456
$module_errors = array();

0 commit comments

Comments
 (0)