Fix CRM-19408: Create extension.getremote API
authorAllen Shaw <allen@JoineryHQ.com>
Sun, 25 Sep 2016 21:42:27 +0000 (16:42 -0500)
committerAllen Shaw <allen@JoineryHQ.com>
Sun, 25 Sep 2016 21:42:27 +0000 (16:42 -0500)
api/v3/Extension.php

index 183af02e36241adaa2a5d752fea345b22facf1d3..567046055026eb856dcb169c8d6b8614c347562a 100644 (file)
@@ -341,6 +341,27 @@ function civicrm_api3_extension_get($params) {
   return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', array('id', 'key', 'status'));
 }
 
+/**
+ * Get a list of remotely available extensions.
+ *
+ * @param array $params
+ *
+ * @return array
+ *   API result
+ */
+function civicrm_api3_extension_getremote($params) {
+  $extensions = CRM_Extension_System::singleton()->getBrowser()->getExtensions();
+  $result = array();
+  $id = 0;
+  foreach ($extensions as $key => $obj) {
+    $info = array();
+    $info['id'] = $id++; // backward compatibility with indexing scheme
+    $info = array_merge($info, (array) $obj);
+    $result[] = $info;
+  }
+  return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', CRM_Utils_Array::value('return', $params, array()));
+}
+
 /**
  * Determine the list of extension keys.
  *