function run() { $queue = CRM_Core_Extensions_Upgrades::createQueue(); $runner = new CRM_Queue_Runner(array('title' => ts('Database Upgrades'), 'queue' => $queue, 'errorMode' => CRM_Queue_Runner::ERROR_ABORT, 'onEnd' => array('CRM_Admin_Page_ExtensionsUpgrade', 'onEnd'), 'onEndUrl' => CRM_Utils_System::url(self::END_URL, self::END_PARAMS))); CRM_Core_Error::debug_log_message('CRM_Admin_Page_ExtensionsUpgrade: Start upgrades'); $runner->runAllViaWeb(); // does not return }
/** * Browse all options * * * @return void * @access public * @static */ function browse() { $this->assign('extEnabled', FALSE); if (self::$_extensions !== NULL) { $this->assign('extEnabled', TRUE); } else { return; } $this->assign('extDbUpgrades', CRM_Core_Extensions_Upgrades::hasPending()); $this->assign('extDbUpgradeUrl', CRM_Utils_System::url('civicrm/admin/extensions/upgrade', 'reset=1')); $extensionRows = array(); $em = self::$_extensions; $fid = 1; foreach ($em as $key => $obj) { // for extensions which aren't installed, create a // dummy/placeholder id if (isset($obj->id)) { $id = $obj->id; } else { $id = 'x' . $fid++; } $extensionRows[$id] = (array) $obj; // assign actions if ($obj->status == CRM_Core_Extensions_Extension::STATUS_INSTALLED || $obj->status == CRM_Core_Extensions_Extension::STATUS_MISSING) { if ($obj->is_active) { $action = CRM_Core_Action::DISABLE; if ($obj->upgradable) { $action += CRM_Core_Action::UPDATE; } } else { $action = array_sum(array_keys($this->links())); $action -= CRM_Core_Action::DISABLE; $action -= CRM_Core_Action::ADD; if (!$obj->upgradable) { $action -= CRM_Core_Action::UPDATE; } if ($obj->status == CRM_Core_Extensions_Extension::STATUS_MISSING) { // do not allow Enable for a MISSING status extension $action -= CRM_Core_Action::ENABLE; } } $extensionRows[$id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $id, 'key' => $obj->key)); } else { $action = array_sum(array_keys($this->links())); $action -= CRM_Core_Action::DISABLE; $action -= CRM_Core_Action::ENABLE; $action -= CRM_Core_Action::DELETE; $action -= CRM_Core_Action::UPDATE; $extensionRows[$id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $id, 'key' => $obj->key)); } } $this->assign('extensionRows', $extensionRows); }