source: pmb4.2/trunk/fuentes/pmb/admin/planificateur/run_task.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: 3.5 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: run_task.php,v 1.7.4.1 2015-09-24 09:12:21 dgoron Exp $
6
7$base_path="..";
8$base_title="";
9$base_noheader=1;
10$base_nocheck=1;
11$base_nobody=1;
12$base_nosession=1;
13
14$class_path = $base_path."/classes";
15$include_path = $base_path."/includes";
16
17if ($tmp=trim($argv[6])){
18        $database=$tmp;
19}
20
21require_once($include_path."/init.inc.php");
22require_once($include_path."/db_param.inc.php");
23require_once($include_path."/mysql_connect.inc.php");
24require_once($class_path."/external_services.class.php");
25require_once($class_path."/tache.class.php");
26require_once($class_path."/connecteurs_out.class.php");
27
28$dbh = connection_mysql();
29
30if (!$user_id) $user_id=$argv[4];
31
32$requete_nom = "SELECT nom, prenom, user_email, userid, username, rights, user_lang, deflt_docs_location, deflt2docs_location  FROM users
33        LEFT JOIN es_esgroups on userid=esgroup_pmbusernum
34        LEFT JOIN es_esusers on esgroup_id=esuser_groupnum
35        WHERE esuser_id=$user_id";
36$res_nom = pmb_mysql_query($requete_nom, $dbh);
37@$param_nom = pmb_mysql_fetch_object( $res_nom );
38$lang = $param_nom->user_lang ;
39$PMBusernom=$param_nom->nom ;
40$PMBuserprenom=$param_nom->prenom ;
41$PMBuseremail=$param_nom->user_email ;
42$deflt_docs_location=$param_nom->deflt_docs_location;
43$deflt2docs_location=$param_nom->deflt2docs_location;   
44// pour que l'id user soit dispo partout
45define('SESSuserid'     , $param_nom->userid);
46$PMBuserid = $param_nom->userid;
47$PMBusername = $param_nom->username;
48
49//droits utilisateurs
50define('SESSrights'     , $param_nom->rights);
51
52$messages = new XMLlist("$include_path/messages/$lang.xml", 0);
53$messages->analyser();
54$msg = $messages->table;
55
56
57function run_task($id_tache, $type_tache, $id_planificateur, $num_es_user, $connectors_out_source_id) {
58        global $base_path,$dbh;
59        global $PMBuserid;
60
61        @ini_set('zend.ze1_compatibility_mode',0);
62       
63        $query = "select * from connectors_out_sources where connectors_out_source_id=".$connectors_out_source_id;
64        $res = pmb_mysql_query($query);
65        $row = pmb_mysql_fetch_object($res);
66
67        $connectors_out_sources_connectornum = $row->connectors_out_sources_connectornum; 
68
69        $daconn = instantiate_connecteur_out($connectors_out_sources_connectornum);
70        if ($daconn) {
71                $source_object = $daconn->instantiate_source_class($connectors_out_source_id);
72        } else {
73                $source_object= NULL;
74        }
75       
76        $es=new external_services();
77
78        $array_functions = array();
79        foreach ($source_object->config["exported_functions"] as $exported_function) {
80                $array_functions[] = $exported_function["group"]."_".$exported_function["name"];
81        }
82        $proxy=$es->get_proxy($PMBuserid,$array_functions);
83
84        if (file_exists($base_path."/admin/planificateur/catalog_subst.xml")) {
85                $filename = $base_path."/admin/planificateur/catalog_subst.xml";
86        } else {
87                $filename = $base_path."/admin/planificateur/catalog.xml";
88        }
89        $xml=file_get_contents($filename);
90        $param=_parser_text_no_function_($xml,"CATALOG");
91       
92        foreach ($param["ACTION"] as $anitem) {
93                if($type_tache == $anitem["ID"]) {
94                        require_once($base_path."/admin/planificateur/".$anitem["NAME"]."/".$anitem["NAME"].".class.php");
95                        $obj_type = new $anitem["NAME"]($id_tache);
96                        $obj_type->setEsProxy($proxy);
97                        $obj_type->execute();
98                        $obj_type->checkParams($id_planificateur);
99                }
100        }
101}
102
103if ($argv[1] && $argv[2] && $argv[3] && $argv[4] && $argv[5]) { 
104        run_task($argv[1], $argv[2], $argv[3], $argv[4], $argv[5]);
105}
Note: See TracBrowser for help on using the repository browser.