You are here

function services_client_connection_get_plugins in Services Client 7

Same name and namespace in other branches
  1. 7.2 services_client_connection/services_client_connection.module \services_client_connection_get_plugins()

Get list of all plugins

Parameters

string $type: Type of required plugins

int $services_version: Optionally can provide version of services module that have to be supported by plugin

bool $select_box: Whether should be returned back as options for select box in format PluginName => Human Readable

1 call to services_client_connection_get_plugins()
services_client_connection_export_ui_form in services_client_connection/plugins/export_ui/services_client_connection.inc
Basic form configuration

File

services_client_connection/services_client_connection.module, line 76
Services Client Connection allows to configure different connections via UI and store them as exportable configuration. API client should be able to communicate with different versions of remote Services module via unified API client.

Code

function services_client_connection_get_plugins($type, $services_version = NULL, $select_box = FALSE) {
  $output = array();
  $plugins = ctools_get_plugins('services_client_connection', $type);

  // Let other modules alter list of plugins
  drupal_alter('services_client_connection_plugins', $plugins, $type);

  // Filter plugins by remote services version
  if ($services_version) {
    foreach ($plugins as $key => $plugin) {
      if (isset($plugin['services_version'])) {
        if (is_array($plugin['services_version']) && in_array($services_version, $plugin['services_version'])) {
          $output[$key] = $plugin;
        }
        elseif ($plugin['services_version'] == $services_version) {
          $output[$key] = $plugin;
        }
      }
      else {
        $output[$key] = $plugin;
      }
    }
  }
  else {
    $output = $plugins;
  }
  if ($select_box) {
    $options = array();
    foreach ($output as $key => $plugin) {
      $options[$key] = $plugin['name'];
    }
    $output = $options;
  }
  return $output;
}