/[drupal]/contributions/modules/services/services.resource-translation.inc
ViewVC logotype

Diff of /contributions/modules/services/services.resource-translation.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1.2.1, Sat Sep 5 13:57:58 2009 UTC revision 1.1.2.2, Wed Nov 4 21:43:25 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id$  // $Id: services.resource-translation.inc,v 1.1.2.1 2009/09/05 13:57:58 marcingy Exp $
3    
4  function _services_resource_as_services($resource) {  function _services_resource_as_services($resource) {
5    static $controllers = array(    static $controllers = array(
6      '#create' => 'create',      'create' => 'create',
7      '#delete' => 'delete',      'delete' => 'delete',
8      '#retrieve' => 'retrieve',      'retrieve' => 'retrieve',
9      '#update' => 'update',      'update' => 'update',
10      '#index' => 'index',      'index' => 'index',
11    ), $subcontrollers = array(    ), $subcontrollers = array(
12      '#relationships' => 'related',      'relationships' => 'related',
13      '#targeted actions' => 'targeted_action',      'targeted actions' => 'targeted_action',
14    );    );
15    
16    $methods = array();    $methods = array();
17    $file = isset($resource['#file']) ? $resource['#file'] : array();    $file = isset($resource['file']) ? $resource['file'] : array();
18    
19    foreach ($controllers as $attr => $name) {    foreach ($controllers as $attr => $name) {
20      if (isset($resource[$attr])) {      if (isset($resource[$attr])) {
21        $methods[] = _services_resource_controller_as_service($resource['#name'], $name, $resource[$attr], $file);        $methods[] = _services_resource_controller_as_service($resource['name'], $name, $resource[$attr], $file);
22      }      }
23    }    }
24    
25    foreach ($subcontrollers as $attr => $name) {    foreach ($subcontrollers as $attr => $name) {
26      if (isset($resource[$attr])) {      if (isset($resource[$attr])) {
27        foreach ($resource[$attr] as $sc_name => $controller) {        foreach ($resource[$attr] as $sc_name => $controller) {
28          $methods[] = _services_resource_controller_as_service($resource['#name'], $name . '_' . $sc_name, $controller, $file);          $methods[] = _services_resource_controller_as_service($resource['name'], $name . '_' . $sc_name, $controller, $file);
29        }        }
30      }      }
31    }    }
32    
33    if (isset($resource['#actions'])) {    if (isset($resource['actions'])) {
34      foreach ($resource['#actions'] as $sc_name => $controller) {      foreach ($resource['actions'] as $sc_name => $controller) {
35        $methods[] = _services_resource_controller_as_service($resource['#name'], 'action_' . $sc_name, $controller, $file);        $methods[] = _services_resource_controller_as_service($resource['name'], 'action_' . $sc_name, $controller, $file);
36      }      }
37    }    }
38    
# Line 41  function _services_resource_as_services( Line 41  function _services_resource_as_services(
41    
42  function _services_resource_controller_as_service($resource, $name, $controller, $file) {  function _services_resource_controller_as_service($resource, $name, $controller, $file) {
43    $method = array_merge($controller, array(    $method = array_merge($controller, array(
44      '#method' => $resource . '_resource.' . $name,      'method' => $resource . '_resource.' . $name,
45    ));    ));
46    
47    if (!empty($file) && !empty($method['#file'])) {    if (!empty($file) && !empty($method['file'])) {
48      $method['#file'] = $file;      $method['file'] = $file;
49    }    }
50    
51    return $method;    return $method;
# Line 55  function _services_services_as_resources Line 55  function _services_services_as_resources
55    $resources = array();    $resources = array();
56    
57    foreach ($services as $service) {    foreach ($services as $service) {
58      $signature = preg_split('/\./', $service['#method']);      $signature = preg_split('/\./', $service['method']);
59    
60      $controller = $service;      $controller = $service;
61      $controller['#args'] = array();      $controller['args'] = array();
62    
63      foreach($service['#args'] as $arg) {      foreach ($service['args'] as $arg) {
64        $arg['#source'] = array(        $arg['source'] = array(
65          'data' => $arg['#name'],          'data' => $arg['name'],
66        );        );
67        $controller['#args'][] = $arg;        $controller['args'][] = $arg;
68      }      }
69    
70      $resources['service_' . $signature[0]]['#actions'][$signature[1]] = $controller;      $resources['service_' . $signature[0]]['actions'][$signature[1]] = $controller;
71    }    }
72    return $resources;    return $resources;
73  }  }

Legend:
Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.2

  ViewVC Help
Powered by ViewVC 1.1.2