source: pmb4.2/trunk/fuentes/pmb/admin/connecteurs/out/apijsonrpc/apijsonrpc_jsonrpcserver.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: apijsonrpc_jsonrpcserver.class.php,v 1.4 2010-04-15 08:15:12 erwanmartin Exp $
6//Here be komodo dragons
7
8/*
9        Ce fichier contient l'implémentation du serveur PMBAPI->JSON-RPC
10*/
11
12global $class_path, $base_path, $include_path;
13
14require_once ("$base_path/includes/init.inc.php");
15require_once ($class_path."/external_services.class.php");
16
17require_once 'jsonRPCServer.php';
18
19class apijsonrpc_jsonrpcserver {
20        var $connector_object;
21        var $server;
22       
23        function apijsonrpc_jsonrpcserver($connector_object) {
24                $this->connector_object = $connector_object;
25        }
26       
27        function return_error($error_string) {
28                highlight_string(print_r($error_string, true));
29                die();
30        }
31       
32       
33        function process($source_id, $pmb_user_id, $json_input) {
34                global $charset;
35                global $wsdl;
36                global $class_path;
37               
38                $the_source = $this->connector_object->instantiate_source_class($source_id);
39                if (!isset($the_source->config["exported_functions"]))
40                        $this->return_error("Source wasn't configured");
41
42                $allowed_methods = array();
43                foreach($the_source->config["exported_functions"] as $aallowed_method)
44                        $allowed_methods[] = $aallowed_method['group'].'_'.$aallowed_method['name'];
45                       
46                $json_operation = '';
47                $request = $json_input;
48                if ($request)
49                        $json_operation = $request["method"];
50                       
51                //Instantions la classe qui contient les fonctions
52                $ess = new external_services(true);
53                if ($json_operation && $ess->operation_need_messages($json_operation)) {
54                        //Allons chercher les messages
55                        global $class_path;
56                        global $include_path;
57                        global $lang;
58                        require_once("$class_path/XMLlist.class.php");
59                        $messages = new XMLlist("$include_path/messages/$lang.xml", 0);
60                        $messages->analyser();
61                        global $msg;
62                        $msg = $messages->table;
63                }
64                if ($json_operation)
65                        $proxy = $ess->get_proxy($pmb_user_id, array($json_operation));
66                else
67                        $proxy = $ess->get_proxy($pmb_user_id);
68                $proxy->input_charset = 'utf-8';
69
70                jsonRPCServer::handle($proxy, $allowed_methods, $json_input) or print 'No request';
71        }
72}
73
74
75
76
77?>
Note: See TracBrowser for help on using the repository browser.