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');
 }