/** * Gibt Liste mit Modulen zurück, die in lokaler Modul-DB-Tabellen enthalten sind und nicht von Modul-Server angeboten werden * @return array */ public function getModulesLocal() { $this->getModuleLocalFilesystem(); $remoteModules = array_keys($this->getModulesRemote(false)); if (count($remoteModules)) { $where = array_fill(0, count($remoteModules), 'modkey NOT ' . $this->dbcon->dbLike() . ' ?'); $localModules = $this->dbcon->fetch($this->dbcon->select($this->table, '*', '(' . implode(' OR ', $where) . ')', $remoteModules), true); } else { $localModules = $this->dbcon->fetch($this->dbcon->select($this->table, '*'), true); } $modules = array(); foreach ($localModules as $localModule) { if (!$localModule->modkey) { continue; } $mlConfig = $this->getConfigByModuleKey($localModule->modkey, 'modulelist'); $moduleItem = new \fpcm\model\modules\listitem($localModule->modkey, isset($mlConfig['name']) ? $mlConfig['name'] : $localModule->modkey, $localModule->version, '', isset($mlConfig['description']) ? $mlConfig['description'] : '-', isset($mlConfig['author']) ? $mlConfig['author'] : '-', isset($mlConfig['link']) ? $mlConfig['link'] : '-', isset($mlConfig['sysversion']) ? $mlConfig['sysversion'] : $this->config->system_version, false); $moduleItem->setStatus($localModule->status); $moduleItem->setIsInstalled(true); $moduleItem->setDependenciesOk($this->checkDepencies($localModule->modkey)); if (isset($modules[$localModule->modkey])) { continue; } $modules[$localModule->modkey] = $moduleItem; } return $modules; }