public function start() { $p = new \Permissions(); if (!$p->canUpgrade()) { return false; } $updateVersion = $this->post('updateVersion'); if (!$updateVersion) { $this->error->add(t('Invalid version')); } else { $upd = ApplicationUpdate::getByVersionNumber($updateVersion); } if (!is_object($upd)) { $this->error->add(t('Invalid version')); } else { if (version_compare($upd->getUpdateVersion(), APP_VERSION, '<=')) { $this->error->add(t('You may only apply updates with a greater version number than the version you are currently running.')); } } if (!$this->error->has()) { /* $resp = $upd->apply(); if ($resp !== true) { switch ($resp) { case ApplicationUpdate::E_UPDATE_WRITE_CONFIG: $this->error->add( t( 'Unable to write to config/site.php. You must make config/site.php writable in order to upgrade in this manner.')); break; } } else { $token = Loader::helper("validation/token"); \Redirect::to('/ccm/system/upgrade/submit?ccm_token=' . $token->generate('Concrete\Controller\Upgrade'))->send(); exit; } */ $this->set('update', $upd); } $this->view(); }
/** * Looks in the designated updates location for all directories, ascertains what * version they represent, and finds all versions greater than the currently installed version of * concrete5. * * @return ApplicationUpdate[] */ public function getLocalAvailableUpdates() { $fh = Core::make('helper/file'); $updates = []; $contents = @$fh->getDirectoryContents(DIR_CORE_UPDATES); foreach ($contents as $con) { if (is_dir(DIR_CORE_UPDATES . '/' . $con)) { $obj = ApplicationUpdate::get($con); if (is_object($obj)) { if (version_compare($obj->getUpdateVersion(), APP_VERSION, '>')) { $updates[] = $obj; } } } } usort($updates, function ($a, $b) { return version_compare($a->getUpdateVersion(), $b->getUpdateVersion()); }); return $updates; }