From: Allen Shaw Date: Mon, 26 Sep 2016 23:50:38 +0000 (-0500) Subject: Fix CRM-19414. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=517dfba8b;p=civicrm-core.git Fix CRM-19414. --- diff --git a/api/v3/Extension.php b/api/v3/Extension.php index 5670460550..931944edb4 100644 --- a/api/v3/Extension.php +++ b/api/v3/Extension.php @@ -325,20 +325,22 @@ function _civicrm_api3_extension_refresh_spec(&$fields) { */ function civicrm_api3_extension_get($params) { $statuses = CRM_Extension_System::singleton()->getManager()->getStatuses(); + $mapper = CRM_Extension_System::singleton()->getMapper(); $result = array(); $id = 0; foreach ($statuses as $key => $status) { - //try { - // $info = (array) $mapper->keyToInfo($key); - //} catch (CRM_Extension_Exception $e) { - $info = array(); + try { + $obj = $mapper->keyToInfo($key); + } + catch (CRM_Extension_Exception $ex) { + CRM_Core_Session::setStatus(ts('Failed to read extension (%1). Please refresh the extension list.', array(1 => $key))); + continue; + } + $info = CRM_Extension_System::createExtendedInfo($obj); $info['id'] = $id++; // backward compatibility with indexing scheme - $info['key'] = $key; - //} - $info['status'] = $status; $result[] = $info; } - return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', array('id', 'key', 'status')); + return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', array()); } /**