private function _checkForUpdates() { //Check if all modules are up-to-date $modules = $this->config('modules'); foreach ($modules as $name => $moduleData) { try { $module = new \ATPCore\Model\Module(); $module->loadByName($name); if ($moduleData['version'] != $module->version) { if (!$this->_isUpdaterController) { return $this->redirect()->toRoute('install', array('action' => 'update')); } } } catch (\Exception $e) { if (!$this->_isInstallerController) { return $this->redirect()->toRoute('install', array('action' => 'options')); } } } return null; }
public function installAction() { $modules = $this->config('modules'); //Move core module to front of the list $coreParams = $modules['ATPCore']; unset($modules['ATPCore']); $modules = array_merge(array('ATPCore' => $coreParams), $modules); foreach ($modules as $name => $moduleData) { //Get the module $class = "{$name}\\Module"; $module = new $class(); $module->setServiceManager($this->getServiceLocator()); //Install the module $params = isset($_POST[$name]) ? $_POST[$name] : array(); $module->install($params); //Create the module entry in the Modules table $moduleEntry = new \ATPCore\Model\Module(); $moduleEntry->name = $name; $moduleEntry->version = $moduleData['version']; $moduleEntry->save(); } return $this->redirect()->toRoute('home'); }