diff --git a/CRM/Admin/Form/Extensions.php b/CRM/Admin/Form/Extensions.php index 7f273cb1632f..d17f6e2f9474 100644 --- a/CRM/Admin/Form/Extensions.php +++ b/CRM/Admin/Form/Extensions.php @@ -180,12 +180,12 @@ public function postProcess() { } if ($this->_action & CRM_Core_Action::ADD) { - CRM_Extension_System::singleton()->getManager()->install(array($this->_key)); + civicrm_api3('Extension', 'install', array('keys' => $this->_key)); CRM_Core_Session::setStatus("", ts('Extension Installed'), "success"); } if ($this->_action & CRM_Core_Action::ENABLE) { - CRM_Extension_System::singleton()->getManager()->enable(array($this->_key)); + civicrm_api3('Extension', 'enable', array('keys' => $this->_key)); CRM_Core_Session::setStatus("", ts('Extension Enabled'), "success"); } diff --git a/CRM/Extension/Manager.php b/CRM/Extension/Manager.php index bdddca921114..013c9aa9a03b 100644 --- a/CRM/Extension/Manager.php +++ b/CRM/Extension/Manager.php @@ -610,7 +610,7 @@ public function findInstallRequirements($keys) { $info = @$infos[$key]; if ($this->getStatus($key) === self::STATUS_INSTALLED) { - // skip + $sorter->add($key, $info->requires); } elseif ($info && $info->requires) { $sorter->add($key, $info->requires); diff --git a/templates/CRM/Admin/Page/ExtensionDetails.tpl b/templates/CRM/Admin/Page/ExtensionDetails.tpl index 3b883fd756da..56ca683c5a97 100644 --- a/templates/CRM/Admin/Page/ExtensionDetails.tpl +++ b/templates/CRM/Admin/Page/ExtensionDetails.tpl @@ -31,6 +31,20 @@