/[openfoncier]/trunk/obj/utils.class.php
ViewVC logotype

Annotation of /trunk/obj/utils.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9511 - (hide annotations)
Fri Sep 4 16:34:05 2020 UTC (4 years, 5 months ago) by softime
File size: 170392 byte(s)
* MàJ core 4.9.8 + ajout verif athentification WS

1 mbroquet 3730 <?php
2     /**
3     * Ce fichier est destine a permettre la surcharge de certaines methodes de
4     * la classe om_application pour des besoins specifiques de l'application
5     *
6     * @package openmairie_exemple
7     * @version SVN : $Id: utils.class.php 6132 2016-03-09 09:18:18Z stimezouaght $
8     */
9    
10     /**
11     *
12     */
13 softime 8329 if (file_exists("../dyn/locales.inc.php") === true) {
14     require_once "../dyn/locales.inc.php";
15     }
16 mbroquet 3730
17     /**
18     *
19     */
20 softime 8329 if (file_exists("../dyn/include.inc.php") === true) {
21     require_once "../dyn/include.inc.php";
22     } else {
23     /**
24     * Définition de la constante représentant le chemin d'accès au framework
25     */
26     define("PATH_OPENMAIRIE", getcwd()."/../core/");
27    
28     /**
29 softime 9282 * TCPDF specific config
30     */
31     define('K_TCPDF_EXTERNAL_CONFIG', true);
32     define('K_TCPDF_CALLS_IN_HTML', true);
33    
34     /**
35 softime 8329 * Dépendances PHP du framework
36     * On modifie la valeur de la directive de configuration include_path en
37     * fonction pour y ajouter les chemins vers les librairies dont le framework
38     * dépend.
39     */
40     set_include_path(
41     get_include_path().PATH_SEPARATOR.implode(
42     PATH_SEPARATOR,
43     array(
44 softime 9282 getcwd()."/../php/pear",
45     getcwd()."/../php/db",
46 softime 8329 getcwd()."/../php/fpdf",
47     getcwd()."/../php/phpmailer",
48     getcwd()."/../php/tcpdf",
49     )
50     )
51     );
52 mbroquet 3730
53 softime 8329 /**
54     * Retourne l'URL de la racine d'openADS.
55     * Exemple : http://localhost/openads/
56     */
57     if (!function_exists("get_base_url")) {
58     function get_base_url() {
59     // Récupération du protocole
60     $protocol = 'http';
61     if (isset($_SERVER['HTTPS'])) {
62     $protocol = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != "off") ? "https" : "http";
63     }
64     // Récupération du domaine
65     $domain = $_SERVER['HTTP_HOST'];
66     // Récupération du port
67     $port = $_SERVER['SERVER_PORT'];
68     $disp_port = ($protocol == 'http' && $port == 80 || $protocol == 'https' && $port == 443) ? '' : ":$port";
69     // Construction du chemin restant
70     $base_url = str_replace('app', '', rtrim(dirname($_SERVER['PHP_SELF']), '/\\'));
71     //
72     return $protocol."://".$domain.$disp_port.$base_url;
73     }
74     }
75     define("PATH_BASE_URL", get_base_url());
76     }
77    
78 mbroquet 3730 /**
79     *
80     */
81 softime 8329 if (file_exists("../dyn/debug.inc.php") === true) {
82     require_once "../dyn/debug.inc.php";
83     }
84 mbroquet 3730
85     /**
86     *
87     */
88     (defined("PATH_OPENMAIRIE") ? "" : define("PATH_OPENMAIRIE", ""));
89    
90     /**
91     *
92     */
93     require_once PATH_OPENMAIRIE."om_application.class.php";
94    
95     /**
96     *
97     */
98     class utils extends application {
99    
100 fmichon 4471 /**
101 softime 8329 * Gestion du nom de l'application.
102     *
103     * @var mixed Configuration niveau application.
104     */
105     protected $_application_name = "openADS";
106    
107     /**
108     * Titre HTML.
109     *
110     * @var mixed Configuration niveau application.
111     */
112     protected $html_head_title = ":: openMairie :: openADS";
113    
114     /**
115     * Gestion du nom de la session.
116     *
117     * @var mixed Configuration niveau application.
118     */
119     protected $_session_name = "openads";
120    
121     /**
122 fmichon 4471 * Gestion du favicon de l'application.
123     *
124     * @var mixed Configuration niveau application.
125     */
126     var $html_head_favicon = '../app/img/favicon.ico';
127    
128 softime 8329 /**
129     * Gestion du mode de gestion des permissions.
130     *
131     * @var mixed Configuration niveau application.
132     */
133     protected $config__permission_by_hierarchical_profile = false;
134    
135 mbroquet 3730 // {{{
136    
137     /**
138     * SURCHARGE DE LA CLASSE OM_APPLICATION.
139     *
140     * @see Documentation sur la méthode parent 'om_application:getCollectivite'.
141     */
142     function getCollectivite($om_collectivite_idx = null) {
143     // On vérifie si une valeur a été passée en paramètre ou non.
144     if ($om_collectivite_idx === null) {
145     // Cas d'utilisation n°1 : nous sommes dans le cas où on
146     // veut récupérer les informations de la collectivité de
147     // l'utilisateur et on stocke l'info dans un flag.
148     $is_get_collectivite_from_user = true;
149     // On initialise l'identifiant de la collectivité
150     // à partir de la variable de session de l'utilisateur.
151     $om_collectivite_idx = $_SESSION['collectivite'];
152     } else {
153     // Cas d'utilisation n°2 : nous sommes dans le cas où on
154     // veut récupérer les informations de la collectivité
155     // passée en paramètre et on stocke l'info dans le flag.
156     $is_get_collectivite_from_user = false;
157     }
158     //
159     $collectivite_parameters = parent::getCollectivite($om_collectivite_idx);
160    
161     //// BEGIN - SURCHARGE OPENADS
162    
163     // Ajout du paramétrage du sig pour la collectivité
164     if (file_exists("../dyn/var.inc")) {
165     include "../dyn/var.inc";
166     }
167     if (file_exists("../dyn/sig.inc.php")) {
168     include "../dyn/sig.inc.php";
169     }
170 softime 4760 if (!isset($sig_externe)) {
171     $sig_externe = "sig-default";
172     }
173 mbroquet 3730 $idx_multi = $this->get_idx_collectivite_multi();
174    
175 softime 4749 if (isset($collectivite_parameters['om_collectivite_idx'])
176     && isset($conf[$sig_externe][$collectivite_parameters['om_collectivite_idx']])
177     && isset($conf[$sig_externe]["sig_treatment_mod"])
178     && isset($collectivite_parameters["option_sig"])
179     && $collectivite_parameters["option_sig"] == "sig_externe"
180 mbroquet 3730 ) {
181    
182     // Cas numéro 1 : conf sig définie sur la collectivité et option sig active
183     $collectivite_parameters["sig"] = $conf[$sig_externe][$collectivite_parameters['om_collectivite_idx']];
184 nhaye 4099 $collectivite_parameters["sig"]["sig_treatment_mod"] = $conf[$sig_externe]["sig_treatment_mod"];
185 mbroquet 3730
186 softime 4749 } elseif($idx_multi != ''
187     && isset($conf[$sig_externe][$idx_multi])
188     && isset($conf[$sig_externe]["sig_treatment_mod"])
189     && isset($collectivite_parameters["option_sig"])
190     && $collectivite_parameters["option_sig"] == "sig_externe") {
191 mbroquet 3730 // Cas numéro : conf sig définie sur la collectivité multi et
192     // option_sig activé pour la collectivité mono
193     $collectivite_parameters["sig"] = $conf[$sig_externe][$idx_multi];
194 nhaye 4099 $collectivite_parameters["sig"]["sig_treatment_mod"] = $conf[$sig_externe]["sig_treatment_mod"];
195 mbroquet 3730 }
196    
197     //// END - SURCHARGE OPENADS
198    
199     // Si on se trouve dans le cas d'utilisation n°1
200     if ($is_get_collectivite_from_user === true) {
201     // Alors on stocke dans l'attribut collectivite le tableau de
202     // paramètres pour utilisation depuis la méthode 'getParameter'.
203     $this->collectivite = $collectivite_parameters;
204     }
205     // On retourne le tableau de paramètres.
206     return $collectivite_parameters;
207     }
208    
209     /**
210     * Retourne l'identifiant de la collectivité multi ou l'identifiant de la
211     * seule collectivité dans le cas d'une installation mono.
212     *
213     * @return integer Identifiant de la collectivité multi.
214     */
215     public function get_idx_collectivite_multi() {
216     // Récupère l'identifiant de la collectivité de niveau 2
217     $sql = "SELECT om_collectivite FROM ".DB_PREFIXE."om_collectivite WHERE niveau = '2'";
218     $idx = $this->db->getOne($sql);
219     $this->addToLog(__METHOD__.": db->getOne(\"".$sql."\");", VERBOSE_MODE);
220     $this->isDatabaseError($idx);
221    
222     // S'il n'y a pas de collectivité de niveau 2
223     if ($idx == null || $idx == '') {
224    
225     // Compte le nombre de collectivité
226     $sql = "SELECT count(om_collectivite) FROM ".DB_PREFIXE."om_collectivite";
227     $count = $this->db->getOne($sql);
228     $this->addToLog(__METHOD__.": db->getOne(\"".$sql."\");", VERBOSE_MODE);
229     $this->isDatabaseError($count);
230    
231     // S'il y qu'une collectivité
232     if ($count == 1) {
233    
234     // Récupère l'identifiant de la seule collectivité
235     $sql = "SELECT om_collectivite FROM ".DB_PREFIXE."om_collectivite WHERE niveau = '1'";
236     $idx = $this->db->getOne($sql);
237     $this->addToLog(__METHOD__.": db->getOne(\"".$sql."\");", VERBOSE_MODE);
238     $this->isDatabaseError($idx);
239     }
240    
241     }
242    
243     // Retourne l'identifiant
244     return $idx;
245     }
246    
247    
248     /**
249     * Retourne l'identifiant de la collectivité de l'element de la table passée
250     * en paramètre.
251     *
252     * @param string $table Table de l'element.
253     * @param mixed $id Identifiant de l'element.
254     *
255     * @return string identifiant de la collectivite ou false si l'element n'existe pas.
256     */
257     public function get_collectivite_of_element($table, $id) {
258 softime 7996 $instance = $this->get_inst__om_dbform(array(
259     "obj" => $table,
260     "idx" => $id,
261     ));
262 mbroquet 3730 if($instance->getVal($instance->clePrimaire) != '') {
263     return $instance->getVal('om_collectivite');
264     }
265     return false;
266     }
267    
268    
269     /**
270 softime 6929 * Retourne vrai si la collectivité passée en paramètre ou la collectivité
271     * de l'utilisateur connecté est mono.
272     *
273     * @param string $id Identifiant de la collectivité.
274     *
275     * @return boolean
276 mbroquet 3730 */
277 softime 6929 public function isCollectiviteMono($id = null) {
278     // Si on ne passe pas de collectivité en argument
279     if ($id == null) {
280     // On vérifie la collectivité stockée en session de l'utilisateur
281     // connecté
282     $res = false;
283     if ($_SESSION['niveau'] === '1') {
284     //
285     $res = true;
286     }
287     //
288     return $res;
289     }
290    
291     // Requête SQL
292 mbroquet 3730 $sql = "SELECT niveau FROM ".DB_PREFIXE."om_collectivite WHERE om_collectivite = ".$id;
293     $niveau = $this->db->getOne($sql);
294     $this->addToLog(__METHOD__.": db->getOne(\"".$sql."\");", VERBOSE_MODE);
295     $this->isDatabaseError($niveau);
296 softime 6929
297     //
298     if ($niveau === '1') {
299     //
300 mbroquet 3730 return true;
301     }
302 softime 6929 //
303 mbroquet 3730 return false;
304     }
305    
306 softime 6929
307 mbroquet 3730 // }}}
308    
309     // {{{
310    
311     var $om_utilisateur = array();
312     var $user_is_instr = NULL;
313     var $user_is_service = NULL;
314     var $user_is_admin = NULL;
315     var $user_is_service_ext = NULL;
316     var $user_is_qualificateur = NULL;
317     var $user_is_chef = NULL;
318     var $user_is_divisionnaire = NULL;
319     var $user_is_service_int = NULL;
320    
321     /**
322     * Méthode de récupération des informations de l'utilisateur connecté.
323     */
324     function getUserInfos() {
325    
326     // Si l'utilisateur est loggé $_SESSION existe
327     if(isset($_SESSION['login']) AND !empty($_SESSION['login'])) {
328    
329     // Récupération des infos utilisateur
330     $sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ".
331     "FROM ".DB_PREFIXE."om_utilisateur WHERE login = '".$_SESSION['login']."'";
332     $resUser=$this->db->query($sqlUser);
333     $this->addToLog("getUserInfos(): db->query(\"".$sqlUser."\");", VERBOSE_MODE);
334     if ( database::isError($resUser)){
335     die();
336     }
337     $this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC);
338    
339     // Récupère le profil et test si c'est un
340     $sqlProfil = "SELECT libelle FROM ".DB_PREFIXE."om_profil WHERE om_profil = ".$this->om_utilisateur['om_profil'];
341     $resProfil=$this->db->getOne($sqlProfil);
342     $this->addToLog("getUserInfos(): db->getOne(\"".$sqlProfil."\");", VERBOSE_MODE);
343     if (database::isError($resProfil)){
344     die();
345     }
346     // Sauvegarde le libelle du profil
347     $this->om_utilisateur["libelle_profil"] = $resProfil;
348    
349     // si c'est un administrateur technique
350     // XXX Mauvaise méthode, il faut utiliser isAccredited
351     if ($resProfil == "ADMINISTRATEUR TECHNIQUE"
352     || $resProfil == "ADMINISTRATEUR FONCTIONNEL") {
353     $this->user_is_admin = true;
354     } else {
355     $this->user_is_admin = false;
356     }
357    
358     //si c'est un service externe
359     if ($resProfil == "SERVICE CONSULTÉ") {
360     $this->user_is_service_ext = true;
361     } else {
362     $this->user_is_service_ext = false;
363     }
364    
365     //si c'est un service interne
366     if ($resProfil == "SERVICE CONSULTÉ INTERNE") {
367     $this->user_is_service_int = true;
368     } else {
369     $this->user_is_service_int = false;
370     }
371    
372     // si c'est un qualificateur
373     if ($resProfil == "QUALIFICATEUR") {
374     $this->user_is_qualificateur = true;
375     } else {
376     $this->user_is_qualificateur = false;
377     }
378    
379     // si c'est un chef de service
380     if ($resProfil == "CHEF DE SERVICE") {
381     $this->user_is_chef = true;
382     } else {
383     $this->user_is_chef = false;
384     }
385    
386     // si c'est un divisionnaire
387     if ($resProfil == "DIVISIONNAIRE") {
388     $this->user_is_divisionnaire = true;
389     } else {
390     $this->user_is_divisionnaire = false;
391     }
392    
393     // Récupération des infos instructeur
394     $sqlInstr = "SELECT instructeur.instructeur, instructeur.nom, instructeur.telephone,
395     division.division, division.code, division.libelle ".
396     "FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."division ON division.division=instructeur.division ".
397     "WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
398     $resInstr=$this->db->query($sqlInstr);
399     $this->addToLog("getUserInfos(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE);
400     if ( database::isError($resInstr)){
401     die();
402     }
403     $tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC);
404     // Si il y a un resultat c'est un instructeur
405 softime 9245 if (is_array($tempInstr) === true && count($tempInstr) > 0) {
406 mbroquet 3730 $this->user_is_instr=true;
407     $this->om_utilisateur = array_merge($this->om_utilisateur,$tempInstr);
408     } else {
409     $this->user_is_instr=false;
410     }
411    
412     // Récupération des infos de services consultés
413     $sqlServ = "SELECT service.service, service.abrege, service.libelle ".
414     "FROM ".DB_PREFIXE."service ".
415     "INNER JOIN ".DB_PREFIXE."lien_service_om_utilisateur ON lien_service_om_utilisateur.service=service.service ".
416     "WHERE lien_service_om_utilisateur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
417     $resServ=$this->db->query($sqlServ);
418     $this->addToLog("getUserInfos(): db->query(\"".$sqlServ."\");", VERBOSE_MODE);
419     if ( database::isError($resServ)){
420     die();
421     }
422    
423     while ($tempServ=&$resServ->fetchRow(DB_FETCHMODE_ASSOC)) {
424     $this->om_utilisateur['service'][]=$tempServ;
425     }
426     // Si il y a un resultat c'est un utilisateur de service
427     if(isset($this->om_utilisateur['service'])) {
428     $this->user_is_service=true;
429     } else {
430     $this->user_is_service=false;
431     }
432     }
433     }
434    
435     /**
436     * getter user_is_service
437     */
438     function isUserService() {
439     //
440     if (is_null($this->user_is_service)) {
441     //
442     $this->getUserInfos();
443     }
444     //
445     return $this->user_is_service;
446     }
447    
448     /**
449     * getter user_is_instr
450     */
451     function isUserInstructeur() {
452     //
453     if (is_null($this->user_is_instr)) {
454     //
455     $this->getUserInfos();
456     }
457     //
458     return $this->user_is_instr;
459     }
460    
461     function isUserAdministrateur() {
462     //
463     if (is_null($this->user_is_admin)) {
464     //
465     $this->getUserInfos();
466     }
467     //
468     return $this->user_is_admin;
469     }
470    
471     /**
472     * getter user_is_service_ext
473     */
474     function isUserServiceExt() {
475     //
476     if (is_null($this->user_is_service_ext)) {
477     //
478     $this->getUserInfos();
479     }
480     //
481     return $this->user_is_service_ext;
482     }
483    
484     /**
485     * getter user_is_service_int
486     */
487     function isUserServiceInt() {
488     //
489     if (is_null($this->user_is_service_int)) {
490     //
491     $this->getUserInfos();
492     }
493     //
494     return $this->user_is_service_int;
495     }
496    
497     /**
498     * getter user_is_qualificateur
499     */
500     function isUserQualificateur() {
501     //
502     if (is_null($this->user_is_qualificateur)) {
503     //
504     $this->getUserInfos();
505     }
506     //
507     return $this->user_is_qualificateur;
508     }
509    
510     /**
511     * getter user_is_chef
512     */
513     function isUserChef() {
514     //
515     if (is_null($this->user_is_chef)) {
516     //
517     $this->getUserInfos();
518     }
519     //
520     return $this->user_is_chef;
521     }
522    
523     /**
524     * getter user_is_divisionnaire
525     */
526     function isUserDivisionnaire() {
527     //
528     if (is_null($this->user_is_divisionnaire)) {
529     //
530     $this->getUserInfos();
531     }
532     //
533     return $this->user_is_divisionnaire;
534     }
535    
536     /**
537     * Méthode permettant de définir si l'utilisateur connecté peut ajouter un
538     * événement d'instruction
539     *
540     * @param integer $idx identifiant du dossier
541     * @param string $obj objet
542     *
543     * @return boolean true si il peut false sinon
544     */
545     function isUserCanAddObj($idx, $obj) {
546     // Si il à le droit "bypass" il peut ajouter
547     if($this->isAccredited($obj."_ajouter_bypass") === true) {
548     return true;
549     }
550     if($this->isAccredited(array($obj."_ajouter", $obj), "OR") === false) {
551     return false;
552     }
553 softime 6565 $return = false;
554    
555 softime 7996 $object_instance = $this->get_inst__om_dbform(array(
556     "obj" => $obj,
557     "idx" => "]",
558     ));
559 mbroquet 3730 // Si il n'est pas dans la même division on défini le retour comme faux
560     // à moins qu'il ai un droit de changement de decision
561 softime 6565 if($this->isUserInstructeur() === true &&
562     ($object_instance->getDivisionFromDossier($idx) == $_SESSION["division"] or
563     ($obj == "instruction" &&
564     $object_instance->isInstrCanChangeDecision($idx) === true))) {
565 mbroquet 3730
566 softime 6565 $return = true;
567 mbroquet 3730 }
568    
569     return $return;
570     }
571    
572 softime 6565
573 mbroquet 3730 /**
574 softime 6565 * Ajout de variables de session contenant la division pour permettre une
575     * utilisation plus efficace dans les requetes.
576 mbroquet 3730 *
577 softime 6565 * @param array $utilisateur Tableau d'informations de l'utilisateur.
578 mbroquet 3730 */
579 softime 6929 function triggerAfterLogin($utilisateur = NULL) {
580 softime 6565 // Récupération de la division de l'utilisateur.
581 mbroquet 3730 $sql = "SELECT instructeur.division, division.code
582 softime 6565 FROM ".DB_PREFIXE."instructeur
583     LEFT JOIN ".DB_PREFIXE."division
584     ON instructeur.division = division.division
585     WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'";
586 mbroquet 3730 $res = $this->db->query($sql);
587 softime 6565 $this->addToLog(
588 softime 8989 __METHOD__."(): db->query(\"".$sql."\");",
589 softime 6565 VERBOSE_MODE
590     );
591     if (database::isError($res)) {
592 mbroquet 3730 die();
593     }
594     $row = $res->fetchrow(DB_FETCHMODE_ASSOC);
595 softime 6565 // Enregistrement de la division en session
596 mbroquet 3730 if (isset($row["division"]) && $row["division"] != NULL) {
597     $_SESSION["division"] = $row["division"];
598     $_SESSION["division_code"] = $row["code"];
599     } else {
600     $_SESSION["division"] = "0";
601     $_SESSION["division_code"] = "";
602     }
603 softime 6565 // Récupération du paramétrage des groupes de l'utilisateur.
604     $sqlGroupes = "SELECT groupe.code, lien_om_utilisateur_groupe.confidentiel, lien_om_utilisateur_groupe.enregistrement_demande, groupe.libelle
605     FROM ".DB_PREFIXE."groupe
606     RIGHT JOIN ".DB_PREFIXE."lien_om_utilisateur_groupe ON
607     lien_om_utilisateur_groupe.groupe = groupe.groupe
608 softime 6674 WHERE lien_om_utilisateur_groupe.login = '".$utilisateur["login"] ."'
609 softime 6565 ORDER BY libelle";
610     $resGroupes = $this->db->query($sqlGroupes);
611     $this->addToLog(
612 softime 8989 __METHOD__."(): db->query(\"".$sqlGroupes."\");",
613 softime 6565 VERBOSE_MODE
614     );
615     if (database::isError($resGroupes)) {
616     die();
617     }
618     // Si aucun résultat alors récupération du paramétrage des groupes du profil
619     if ($resGroupes->numRows() === 0) {
620     $sqlGroupes = "SELECT groupe.code, lien_om_profil_groupe.confidentiel, lien_om_profil_groupe.enregistrement_demande, groupe.libelle
621     FROM ".DB_PREFIXE."groupe
622     RIGHT JOIN ".DB_PREFIXE."lien_om_profil_groupe ON
623     lien_om_profil_groupe.groupe = groupe.groupe
624     AND om_profil = ".$utilisateur["om_profil"] ."
625     ORDER BY libelle";
626     $resGroupes = $this->db->query($sqlGroupes);
627     $this->addToLog(
628 softime 8989 __METHOD__."(): db->query(\"".$sqlGroupes."\");",
629 softime 6565 VERBOSE_MODE
630     );
631     if (database::isError($resGroupes)) {
632     die();
633     }
634     }
635     $_SESSION["groupe"] = array();
636     // Enregistrement des groupe en session
637     while ($row = $resGroupes->fetchrow(DB_FETCHMODE_ASSOC)) {
638     if ($row["confidentiel"] === 't') {
639     $row["confidentiel"] = true;
640     } else {
641     $row["confidentiel"] = false;
642     }
643     if ($row["enregistrement_demande"] === 't') {
644     $row["enregistrement_demande"] = true;
645     } else {
646     $row["enregistrement_demande"] = false;
647     }
648     $_SESSION["groupe"][$row["code"]] = array(
649     "confidentiel" => $row["confidentiel"],
650     "enregistrement_demande" => $row["enregistrement_demande"],
651     "libelle" => $row["libelle"],
652     );
653     }
654     }
655 mbroquet 3730
656     // Affichage des actions supplémentaires
657     function displayActionExtras() {
658     // Affichage de la division si l'utilisateur en possède une
659     if ($_SESSION["division"] != 0) {
660     echo "\t\t\t<li class=\"action-division\">";
661     echo "(".$_SESSION['division_code'].")";
662     echo "</li>\n";
663     }
664     }
665    
666     // }}}
667    
668    
669     // {{{ GESTION DES FICHIERS
670    
671     /**
672     *
673     */
674     function notExistsError ($explanation = NULL) {
675     // message
676     $message_class = "error";
677     $message = _("Cette page n'existe pas.");
678     $this->addToMessage ($message_class, $message);
679     //
680     $this->setFlag(NULL);
681     $this->display();
682    
683     //
684     die();
685     }
686    
687     // }}}
688     /**
689     * Retourne le statut du dossier d'instruction
690     * @param string $idx Identifiant du dossier d'instruction
691     * @return string Le statut du dossier d'instruction
692     */
693     function getStatutDossier($idx){
694    
695     $statut = '';
696    
697     //Si l'identifiant du dossier d'instruction fourni est correct
698     if ( $idx != '' ){
699    
700     //On récupère le statut de l'état du dossier à partir de l'identifiant du
701     //dossier d'instruction
702     $sql = "SELECT etat.statut
703     FROM ".DB_PREFIXE."dossier
704     LEFT JOIN
705     ".DB_PREFIXE."etat
706     ON
707     dossier.etat = etat.etat
708     WHERE dossier ='".$idx."'";
709     $statut = $this->db->getOne($sql);
710     $this->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
711     if ( database::isError($statut)){
712     die();
713     }
714     }
715     return $statut;
716     }
717    
718     /**
719     * Formate le champ pour le type Timestamp
720 softime 8989 * @param date $date_str Date
721     * @param boolean $show Format pour l'affichage
722     * @return mixed False si le traitement échoue ou la date formatée
723 mbroquet 3730 */
724     function formatTimestamp ($date_str, $show = true) {
725    
726     // Sépare la date et l'heure
727     $date = explode(" ", $date_str);
728     if (count($date) != 2) {
729     return false;
730     }
731    
732     // Date en BDD
733     $date_db = explode ('-', $date[0]);
734 softime 8989 // Date en affichage
735 mbroquet 3730 $date_show = explode ('/', $date[0]);
736    
737     // Contrôle la composition de la date
738     if (count ($date_db) != 3 and count ($date_show) != 3) {
739     return false;
740     }
741    
742     if (count ($date_db) == 3) {
743     // Vérifie que c'est une date valide
744     if (!checkdate($date_db[1], $date_db[2], $date_db[0])) {
745     return false;
746     }
747     // Si c'est pour l'affichage de la date
748     if ($show == true) {
749     return $date_db [2]."/".$date_db [1]."/".$date_db [0]." ".$date[1];
750     } else {
751     return $date[0];
752     }
753     }
754    
755     //
756     if (count ($date_show) == 3) {
757     // Vérifie que c'est une date valide
758     if (!checkdate($date_show[1], $date_show[0], $date_show[2])) {
759     return false;
760     }
761     // Si c'est pour l'affichage de la date
762     if ($show == true) {
763     return $date[0];
764     } else {
765     return $date_show [2]."-".$date_show [1]."-".$date_show [0]." ".$date[1];
766     }
767    
768     }
769     return false;
770    
771     }
772    
773     /**
774     * Permet de calculer la liste des parcelles à partir de la chaîne passée en paramètre
775     * et la retourner sous forme d'un tableau associatif
776     *
777     * @param string $strParcelles Chaîne de la parcelles.
778     * @param string $collectivite_idx Collectivite de la parcelle.
779     *
780     * @return array (array(prefixe, quartier, section, parcelle), ...)
781     */
782     function parseParcelles($strParcelles, $collectivite_idx = null) {
783    
784     // Séparation des lignes
785     $references = explode(";", $strParcelles);
786     $liste_parcelles = array();
787    
788     // On boucle sur chaque ligne pour ajouter la liste des parcelles de chaque ligne
789     foreach ($references as $parcelles) {
790    
791     // On transforme la chaîne de la ligne de parcelles en tableau
792     $ref = str_split($parcelles);
793     // Les 1er caractères sont numériques
794     $num = true;
795    
796     // Tableau des champs de la ligne de références cadastrales
797     $reference_tab = array();
798     $temp = "";
799     foreach ($ref as $carac) {
800    
801     // Permet de tester si le caractère courant est de même type que le précédent
802     if(is_numeric($carac) === $num) {
803     $temp .= $carac;
804     } else {
805     // Bascule
806     $num = !$num;
807     // On stock le champ
808     $reference_tab[] = $temp;
809     // re-init de la valeur temporaire pour le champ suivant
810     $temp = $carac;
811     }
812     }
813     // Stockage du dernier champ sur lequel il n'y a pas eu de bascule
814     $reference_tab[] = $temp;
815     // Calcul des parcelles
816     $quartier = $reference_tab[0];
817     $sect = $reference_tab[1];
818    
819     $ancien_ref_parc = "";
820     for ($i=2; $i < count($reference_tab); $i+=2) {
821     if($collectivite_idx != null) {
822     // Récupération du code impot de l'arrondissement
823     $collectivite = $this->getCollectivite($collectivite_idx);
824     $parc["prefixe"] = $this->get_arrondissement_code_impot($quartier);
825     }
826     $parc["quartier"] = $quartier;
827     // Met en majuscule si besoin
828     $parc["section"] = strtoupper($sect);
829     if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") {
830     // 1ere parcelle ou parcelle individuelle
831     // Compléte par des "0" le début de la chaîne si besoin
832     $parc["parcelle"] = str_pad($reference_tab[$i], 4, "0", STR_PAD_LEFT);
833     // Ajout d'une parcelle à la liste
834     $liste_parcelles[] = $parc;
835     } elseif ($reference_tab[$i-1] == "A") {
836     // Interval de parcelles
837     for ($j=$ancien_ref_parc+1; $j <= $reference_tab[$i]; $j++) {
838     // Compléte par des "0" le début de la chaîne si besoin
839     $parc["parcelle"] = str_pad($j, 4, "0", STR_PAD_LEFT);
840     // Ajout d'une parcelle à la liste
841     $liste_parcelles[] = $parc;
842     }
843     }
844     //Gestion des erreurs
845     else{
846    
847     echo _("Une erreur de formattage a ete detecte dans la reference cadastrale du dossier ").$this->row['dossier'];
848     }
849     // Sauvegarde de la référence courante de parcelle
850     $ancien_ref_parc = $reference_tab[$i];
851     }
852     }
853    
854     return $liste_parcelles;
855     }
856    
857    
858     /**
859     * Récupère le code impôt par rapport au quartier.
860     *
861     * @param string $quartier Numéro de quartier.
862     * @return string Code impôts.
863     */
864     protected function get_arrondissement_code_impot($quartier) {
865     // Initialisation
866     $code_impots = "";
867     // Si le quartier fournis est correct
868     if ($quartier != "") {
869     // Requête SQL
870     $sql = "SELECT
871     arrondissement.code_impots
872     FROM
873     ".DB_PREFIXE."arrondissement
874     LEFT JOIN
875     ".DB_PREFIXE."quartier
876     ON
877     quartier.arrondissement = arrondissement.arrondissement
878     WHERE
879     quartier.code_impots = '".$quartier."'";
880    
881     }
882     $code_impots = $this->db->getOne($sql);
883     if ($code_impots === null) {
884     $code_impots = "";
885     }
886     $this->isDatabaseError($code_impots);
887     // Retour
888     return $code_impots;
889     }
890    
891    
892     /**
893     * Formate les parcelles en ajoutant le code impôt
894     * @param array $liste_parcelles Tableau des parcelles
895     * @return string Liste des parcelles formatées
896     */
897     function formatParcelleToSend($liste_parcelles) {
898    
899     //
900     $wParcelle = array();
901    
902     //Formatage des références cadastrales pour l'envoi
903     foreach ($liste_parcelles as $value) {
904    
905     // On ajoute les données dans le tableau que si quartier + section + parcelle
906     // a été fourni
907     if ($value["quartier"] !== ""
908     && $value["section"] !== ""
909     && $value["parcelle"] !== ""){
910    
911     //On récupère le code impôt de l'arrondissement
912     $arrondissement = $this->getCodeImpotByQuartier($value["quartier"]);
913    
914     //On ajoute la parcelle, si un arrondissement a été trouvé
915     if ($arrondissement!=="") {
916     //
917     $wParcelle[] = $arrondissement.$value["quartier"].
918     str_pad($value["section"], 2, " ", STR_PAD_LEFT).
919     $value["parcelle"];
920     }
921     }
922     }
923    
924     //
925     return $wParcelle;
926     }
927    
928     /**
929     * Récupère le code impôt par rapport au quartier
930     * @param string $quartier Numéro de quartier
931     * @return string Code impôt
932     */
933     function getCodeImpotByQuartier($quartier) {
934    
935     $arrondissement = "";
936    
937     // Si le quartier fournis est correct
938     if ($quartier != "") {
939    
940     // Requête SQL
941     $sql = "SELECT
942     arrondissement.code_impots
943     FROM
944     ".DB_PREFIXE."arrondissement
945     LEFT JOIN
946     ".DB_PREFIXE."quartier
947     ON
948     quartier.arrondissement = arrondissement.arrondissement
949     WHERE
950     quartier.code_impots = '".$quartier."'";
951     $this->addToLog("getCodeImpotByQuartier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
952     $arrondissement = $this->db->getOne($sql);
953     $this->isDatabaseError($arrondissement);
954     }
955    
956     // Retour
957     return $arrondissement;
958     }
959    
960    
961     /**
962     * Retourne true si tous les paramètres du SIG externe ont bien été définis
963     * @return bool true/false
964     */
965     public function issetSIGParameter($idx) {
966     $collectivite_idx = $this->get_collectivite_of_element("dossier", $idx);
967     $collectivite = $this->getCollectivite($collectivite_idx);
968     if(isset($collectivite["sig"])) {
969     return true;
970     } else {
971     return false;
972     }
973     }
974    
975     /**
976     * Permet de vérifier que des champs existe dans une table
977     * @param array $list_fields Liste des champs à tester
978     * @param string $table Table où les champs doivent exister
979     * @return mixed Retourne les champs qui n'existent pas
980     * ou true
981     */
982     public function check_field_exist($list_fields, $table) {
983    
984     // Instance de la classe en paramètre
985 softime 7996 $object = $this->get_inst__om_dbform(array(
986     "obj" => $table,
987     "idx" => "]",
988     ));
989 mbroquet 3730
990     // Récupère les champs de la table
991     foreach ($object->champs as $champ) {
992     $list_column[] = $champ;
993     }
994    
995     // Tableau des champs en erreur
996     $error_fields = array();
997    
998     // Pour chaque champ à tester
999     foreach ($list_fields as $value) {
1000    
1001     // S'il n'apparaît pas dans la liste des champs possible
1002     if (!in_array($value, $list_column)) {
1003    
1004     // Alors le champ est ajouté au tableau des erreurs
1005     $error_fields[] = $value;
1006     }
1007     }
1008    
1009     // Si le tableau des erreurs n'est pas vide on le retourne
1010     if (count($error_fields) > 0) {
1011     return $error_fields;
1012     }
1013    
1014     // Sinon on retourne le booléen true
1015     return true;
1016    
1017     }
1018    
1019     /*
1020     *
1021     */
1022     /**
1023     * Récupère la lettre type lié à un événement
1024     * @param integer $evenement L'identifiant de l'événement
1025     * @return integer Retourne l'idenfiant de la lettre-type ou true
1026     */
1027     function getLettreType($evenement){
1028    
1029     $lettretype = NULL;
1030    
1031     $sql =
1032     "SELECT
1033     lettretype
1034     FROM
1035     ".DB_PREFIXE."evenement
1036     WHERE
1037     evenement = $evenement";
1038    
1039     $this->addToLog("getLettreType() : db->query(\"".$sql."\")", VERBOSE_MODE);
1040     $res = $this->db->query($sql);
1041     if ( database::isError($res)){
1042     die();
1043     }
1044    
1045     if ( $res->numrows() > 0 ){
1046    
1047     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
1048     $lettretype = $row['lettretype'];
1049     }
1050    
1051     return $lettretype;
1052     }
1053    
1054     /**
1055     * Retourne le type de dossier d'autorisation du dossier courant :
1056     * @param $idxDossier Le numéro du dossier d'instruction
1057     * @return le code du type détaillée de dossier d'autorisation
1058     **/
1059     function getDATDCode($idxDossier) {
1060     $sql = "SELECT dossier_autorisation_type_detaille.code
1061     FROM ".DB_PREFIXE."dossier_autorisation_type_detaille
1062     INNER JOIN ".DB_PREFIXE."dossier_autorisation
1063     ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille =
1064     dossier_autorisation.dossier_autorisation_type_detaille
1065     INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
1066     WHERE dossier.dossier = '".$idxDossier."'";
1067     $res = $this->db->getOne($sql);
1068     $this->addToLog("getDATDCode() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
1069     if ( database::isError($res)){
1070     die();
1071     }
1072     return $res;
1073     }
1074    
1075     /**
1076 fmichon 4708 * Retourne le type de dossier d'autorisation du dossier courant :
1077     * @param $idxDossier Le numéro du dossier d'instruction
1078     * @return le code du type de dossier d'autorisation
1079     **/
1080     function getDATCode($idxDossier) {
1081     $sql = "
1082     SELECT
1083     dossier_autorisation_type.code
1084     FROM
1085     ".DB_PREFIXE."dossier_autorisation_type
1086     INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
1087     ON dossier_autorisation_type.dossier_autorisation_type=dossier_autorisation_type_detaille.dossier_autorisation_type
1088     INNER JOIN ".DB_PREFIXE."dossier_autorisation
1089     ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille=dossier_autorisation.dossier_autorisation_type_detaille
1090     INNER JOIN ".DB_PREFIXE."dossier
1091     ON dossier.dossier_autorisation=dossier_autorisation.dossier_autorisation
1092     WHERE
1093     dossier.dossier = '".$idxDossier."'
1094     ";
1095     $res = $this->db->getOne($sql);
1096     $this->addToLog(__METHOD__."(): db->getOne(\"".$sql."\")", VERBOSE_MODE);
1097     if ( database::isError($res)){
1098     die();
1099     }
1100     return $res;
1101     }
1102    
1103     /**
1104 mbroquet 3730 * Permet de copier un enregistrement
1105     * @param mixed $idx Identifiant de l'enregistrment
1106     * @param string $obj Objet de l'enregistrment
1107     * @param string $objsf Objets associés
1108     * @return array Tableau des nouveaux id et du message
1109     */
1110     function copier($idx, $obj, $objsf) {
1111    
1112     // Tableau de résultat
1113     $resArray = array();
1114     // Message retourné à l'utilisateur
1115     $message = "";
1116     // Type du message (valid ou error)
1117     $message_type = "valid";
1118    
1119     // Requête SQL permettant de récupérer les informations sur l'objet métier
1120     $sql = "SELECT *
1121     FROM ".DB_PREFIXE.$obj."
1122     WHERE ".$obj." = ".$idx;
1123     $res = $this->db->query($sql);
1124     $this->isDatabaseError($res);
1125    
1126     // Valeurs clonées
1127     $valF = array();
1128     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
1129     // Recupère la valeur
1130     $valF = $row;
1131     }
1132    
1133     // Valeurs non clonées
1134     // Identifiant modifié pour que ça soit un ajout
1135     $valF[$obj] = "]";
1136     // Instance de l'objet métier
1137 softime 7996 $clone_obj = $this->get_inst__om_dbform(array(
1138     "obj" => $obj,
1139     "idx" => "]",
1140     ));
1141 mbroquet 3730 // Si dans l'objet métier la fonction "copier" existe
1142     if (method_exists($clone_obj, "update_for_copy")) {
1143     // Traitement sur les valeurs du duplicata
1144     $valF = $clone_obj->update_for_copy($valF, $objsf, DEBUG);
1145     // Recupère les messages retourné par la fonction
1146     $message .= $valF['message'];
1147     // Supprime les messages de la liste des valeurs
1148     unset($valF['message']);
1149     }
1150     // Ajoute le duplicata
1151 softime 8989 $clone_obj->ajouter($valF);
1152 mbroquet 3730 // Si aucune erreur se produit dans la classe instanciée
1153     if ($clone_obj->correct === true) {
1154     // Récupère l'identifiant de l'objet créé
1155     $clone_obj_id = $clone_obj->valF[$obj];
1156    
1157     // Message
1158     $message .= sprintf(_("La copie de l'enregistrement %s avec l'identifiant %s s'est effectuee avec succes"), "<span class='bold'>"._($obj)."</span>", "<span class='bold'>".$idx."</span>")."<br />";
1159 softime 7996 $message .= sprintf(
1160     '<a class="om-prev-icon" id="action-link--copy-of-%s-%s" href="%s">%s</a><br/><br/>',
1161     $obj,
1162     $idx,
1163     sprintf(
1164     '%s&obj=%s&action=3&idx=%s',
1165     OM_ROUTE_FORM,
1166     $obj,
1167     $clone_obj_id
1168     ),
1169     ("Cliquer ici pour accéder à la copie")
1170     );
1171 mbroquet 3730 // Ajout de l'identifant au tableau des résultat
1172     $resArray[$obj.'_'.$idx] = $clone_obj_id;
1173    
1174     // S'il y a au moins un objet metier associé
1175     if ($objsf != "") {
1176     // Liste des objet métier associés
1177     $list_objsf = explode(",", $objsf);
1178     // Pour chaque objet associé
1179     foreach ($list_objsf as $key => $objsf) {
1180     // Requête SQL permettant de récupérer les informations sur
1181     // l'objet métier associé
1182     $sql = "SELECT *
1183     FROM ".DB_PREFIXE.$objsf."
1184     WHERE ".$obj." = ".$idx;
1185     $res = $this->db->query($sql);
1186     $this->isDatabaseError($res);
1187    
1188     // Pour chaque élément associé
1189     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1190     // Identifiant de l'objet associé à copier
1191     $idxsf = $row[$objsf];
1192    
1193     // Valeurs clonées
1194     $valF = $row;
1195     // Valeurs non clonées
1196     $valF[$obj] = $clone_obj_id;
1197     // Identifiant modifié pour que ça soit un ajout
1198     $valF[$objsf] = "]";
1199     // Instance de l'objet métier associé
1200 softime 7996 $clone_objsf = $this->get_inst__om_dbform(array(
1201     "obj" => $objsf,
1202     "idx" => "]",
1203     ));
1204 mbroquet 3730 // Si dans l'objet métier associé
1205     // la fonction "copier" existe
1206     if (method_exists($clone_objsf, "update_for_copy")) {
1207     // Traitement sur les valeurs du duplicata
1208     $valF = $clone_objsf->update_for_copy($valF, $objsf, DEBUG);
1209     // Recupère les messages retourné par la fonction
1210     $message .= $valF['message'];
1211     // Supprime les messages de la liste des valeurs
1212     unset($valF['message']);
1213     }
1214     // Ajoute le duplicata
1215 softime 8989 $clone_objsf->ajouter($valF);
1216 mbroquet 3730 // Si aucune erreur se produit dans la classe instanciée
1217     if ($clone_objsf->correct === true) {
1218     // Récupère l'identifiant de l'objet créé
1219     $clone_objsf_id = $clone_objsf->valF[$objsf];
1220    
1221     // Message
1222 softime 7996 $message .= sprintf(
1223     _("La copie de l'enregistrement %s avec l'identifiant %s s'est effectuee avec succes"),
1224     "<span class='bold'>"._($objsf)."</span>",
1225     "<span class='bold'>".$idxsf."</span>"
1226     )."<br />";
1227 mbroquet 3730
1228     // Ajout de l'identifant au tableau des résultat
1229     $resArray[$objsf.'_'.$row[$objsf]] = $clone_objsf_id;
1230     } else {
1231    
1232     // Message d'erreur récupéré depuis la classe
1233     $message .= $clone_objsf->msg;
1234     // Type du message
1235     $message_type = "error";
1236     }
1237     }
1238     }
1239     }
1240     //
1241     } else {
1242    
1243     // Message d'erreur récupéré depuis la classe
1244     $message .= $clone_obj->msg;
1245     // Type du message
1246     $message_type = "error";
1247     }
1248    
1249     // Ajout du message au tableau des résultats
1250     $resArray['message'] = $message;
1251     // Ajout du type de message au tableau des résultats
1252     $resArray['message_type'] = $message_type;
1253    
1254     // Retourne le tableau des résultats
1255     return $resArray;
1256     }
1257    
1258     /**
1259     * Cette fonction prend en entrée le ou les paramètres du &contrainte qui sont entre
1260     * parenthèses (un ensemble de paramètres séparés par des points-virgules). Elle
1261     * sépare les paramètres et leurs valeurs puis construit et retourne un tableau
1262     * associatif qui contient pour les groupes et sous-groupes :
1263     * - un tableau de valeurs, avec un nom de groupe ou sous-groupe par ligne
1264     * pour les autres options :
1265     * - la valeur de l'option
1266     *
1267     * @param string $contraintes_param Chaîne contenant tous les paramètres
1268     *
1269     * @return array Tableau associatif avec paramètres et valeurs séparés
1270     */
1271     function explodeConditionContrainte($contraintes_param) {
1272    
1273     // Initialisation des variables
1274     $return = array();
1275     $listGroupes = "";
1276     $listSousgroupes = "";
1277     $service_consulte = "";
1278     $affichage_sans_arborescence = "";
1279    
1280     // Sépare toutes les conditions avec leurs valeurs et les met dans un tableau
1281     $contraintes_params = explode(";", $contraintes_param);
1282    
1283     // Pour chaque paramètre de &contraintes
1284     foreach ($contraintes_params as $value) {
1285     // Récupère le mot-clé "liste_groupe" et les valeurs du paramètre
1286     if (strstr($value, "liste_groupe=")) {
1287     // On enlève le mots-clé "liste_groupe=", on garde les valeurs
1288     $listGroupes = str_replace("liste_groupe=", "", $value);
1289     }
1290     // Récupère le mot-clé "liste_ssgroupe" et les valeurs du paramètre
1291     if (strstr($value, "liste_ssgroupe=")) {
1292     // On enlève le mots-clé "liste_ssgroupe=", on garde les valeurs
1293     $listSousgroupes = str_replace("liste_ssgroupe=", "", $value);
1294     }
1295     // Récupère le mot-clé "service_consulte" et la valeur du paramètre
1296     if (strstr($value, "service_consulte=")) {
1297     // On enlève le mots-clé "service_consulte=", on garde sa valeur
1298     $service_consulte = str_replace("service_consulte=", "", $value);
1299     }
1300     // Récupère le mot-clé "affichage_sans_arborescence" et la valeur du
1301     // paramètre
1302     if (strstr($value, "affichage_sans_arborescence=")) {
1303     // On enlève le mots-clé "affichage_sans_arborescence=", on garde la valeur
1304     $affichage_sans_arborescence = str_replace("affichage_sans_arborescence=", "", $value);
1305     }
1306     }
1307    
1308     // Récupère dans des tableaux la liste des groupes et sous-groupes qui
1309     // doivent être utilisés lors du traitement de la condition
1310     if ($listGroupes != "") {
1311     $listGroupes = array_map('trim', explode(",", $listGroupes));
1312     }
1313     if ($listSousgroupes != "") {
1314     $listSousgroupes = array_map('trim', explode(",", $listSousgroupes));
1315     }
1316    
1317     // Tableau à retourner
1318     $return['groupes'] = $listGroupes;
1319     $return['sousgroupes'] = $listSousgroupes;
1320     $return['service_consulte'] = $service_consulte;
1321     $return['affichage_sans_arborescence'] = $affichage_sans_arborescence;
1322     return $return;
1323     }
1324    
1325     /**
1326     * Méthode qui complète la clause WHERE de la requête SQL de récupération des
1327     * contraintes, selon les paramètres fournis. Elle permet d'ajouter une condition sur
1328     * les groupes, sous-groupes et les services consultés.
1329     *
1330     * @param $string $part Contient tous les paramètres fournis à &contraintes séparés
1331     * par des points-virgules, tel que définis dans l'état.
1332     * array[] $conditions Paramètre optionnel, contient les conditions déjà explosées
1333     * par la fonction explodeConditionContrainte()
1334     *
1335     * @return string Contient les clauses WHERE à ajouter à la requête SQL principale.
1336     */
1337     function traitement_condition_contrainte($part, $conditions = NULL) {
1338    
1339     // Initialisation de la condition
1340     $whereContraintes = "";
1341     // Lorsqu'on a déjà les conditions explosées dans le paramètre $conditions, on
1342     // utilise ces données. Sinon, on appelle la méthode qui explose la chaîne de
1343     // caractères contenant l'ensemble des paramètres.
1344     if (is_array($conditions)){
1345     $explodeConditionContrainte = $conditions;
1346     }
1347     else {
1348     $explodeConditionContrainte = $this->explodeConditionContrainte($part);
1349     }
1350     // Récupère les groupes, sous-groupes et service_consulte pour la condition
1351     $groupes = $explodeConditionContrainte['groupes'];
1352     $sousgroupes = $explodeConditionContrainte['sousgroupes'];
1353     $service_consulte = $explodeConditionContrainte['service_consulte'];
1354    
1355     // Pour chaque groupe
1356     if ($groupes != "") {
1357     foreach ($groupes as $key => $groupe) {
1358     // Si le groupe n'est pas vide
1359     if (!empty($groupe)) {
1360     // Choisit l'opérateur logique
1361     $op_logique = $key > 0 ? 'OR' : 'AND (';
1362     // Ajoute la condition
1363     $whereContraintes .= " ".$op_logique." lower(trim(both E'\n\r\t' from contrainte.groupe)) = lower('"
1364     .pg_escape_string($groupe)."')";
1365     }
1366     }
1367     // S'il y a des valeurs dans groupe
1368 softime 9282 if (count($groupes) > 0) {
1369 mbroquet 3730 // Ferme la parenthèse
1370     $whereContraintes .= " ) ";
1371     }
1372     }
1373    
1374     // Pour chaque sous-groupe
1375     if ($sousgroupes != "") {
1376     foreach ($sousgroupes as $key => $sousgroupe) {
1377     // Si le sous-groupe n'est pas vide
1378     if (!empty($sousgroupe)) {
1379     // Choisit l'opérateur logique
1380     $op_logique = $key > 0 ? 'OR' : 'AND (';
1381     // Ajoute la condition
1382     $whereContraintes .= " ".$op_logique." lower(trim(both E'\n\r\t' from contrainte.sousgroupe)) = lower('"
1383     .pg_escape_string($sousgroupe)."')";
1384     }
1385     }
1386     // S'il y a des valeurs dans sous-groupe
1387     if (count($sousgroupes) > 0) {
1388     // Ferme la parenthèse
1389     $whereContraintes .= " ) ";
1390     }
1391     }
1392    
1393     // Si l'option service_consulte n'est pas vide
1394     if ($service_consulte != "") {
1395     // Ajoute la condition
1396     $whereContraintes .= " AND service_consulte = cast(lower('".$service_consulte."') as boolean) ";
1397     }
1398    
1399     // Condition retournée
1400     return $whereContraintes;
1401     }
1402    
1403     /**
1404     * Calcule une date par l'ajout ou la soustraction de mois ou de jours.
1405     *
1406     * @param date $date Date de base (format dd-mm-yyyy)
1407     * @param integer $delay Délais à ajouter
1408     * @param string $operator Opérateur pour le calcul ("-" ou "+")
1409     * @param string $type Type de calcul (mois ou jour)
1410     *
1411     * @return date Date calculée
1412     */
1413     function mois_date($date, $delay, $operator = "+", $type = "mois") {
1414 softime 9245 // On force le type du paramètre $delay
1415     $delay = intval($delay);
1416 mbroquet 3730
1417     // Si un type n'est pas définit
1418     if ($type != "mois" && $type != "jour") {
1419     //
1420     return null;
1421     }
1422    
1423     // Si aucune date n'a été fournie ou si ce n'est pas une date correctement
1424     // formatée
1425     if ( is_null($date) || $date == "" ||
1426     preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/', $date) == 0 ){
1427     return null;
1428     }
1429    
1430     // Si l'opérateur n'est pas définit
1431     if ($operator != "+" && $operator != "-") {
1432     //
1433     return null;
1434     }
1435    
1436     // Découpage de la date
1437     $temp = explode("-", $date);
1438     $day = (int) $temp[2];
1439     $month = (int) $temp[1];
1440     $year = (int) $temp[0];
1441    
1442     // Si c'est un calcul sur des mois
1443     // Le calcul par mois ne se fait pas comme le calcul par jour car
1444     // les fonctions PHP ne réalisent pas les calculs réglementaires
1445     if ($type == "mois") {
1446    
1447     // Si c'est une addition
1448     if ($operator == '+') {
1449     // Année à ajouter
1450     $year += floor($delay / 12);
1451     // Mois restant
1452     $nb_month = ($delay % 12);
1453     // S'il y a des mois restant
1454     if ($nb_month != 0) {
1455     // Ajout des mois restant
1456     $month += $nb_month;
1457     // Si ça dépasse le mois 12 (décembre)
1458     if ($month > 12) {
1459     // Soustrait 12 au mois
1460     $month -= 12;
1461     // Ajoute 1 à l'année
1462     $year += 1;
1463     }
1464     }
1465     }
1466    
1467     // Si c'est une soustraction
1468     if ($operator == "-") {
1469     // Année à soustraire
1470     $year -= floor($delay / 12);
1471     // Mois restant
1472     $nb_month = ($delay % 12);
1473     // S'il y a des mois restant
1474     if ($nb_month != 0) {
1475     // Soustrait le délais
1476     $month -= $nb_month;
1477     // Si ça dépasse le mois 1 (janvier)
1478     if ($month < 1) {
1479     // Soustrait 12 au mois
1480     $month += 12;
1481     // Ajoute 1 à l'année
1482     $year -= 1;
1483     }
1484     }
1485     }
1486    
1487     // Calcul du nombre de jours dans le mois sélectionné
1488     switch($month) {
1489     // Mois de février
1490     case "2":
1491     if ($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0) {
1492     $day_max = 29;
1493     } else {
1494     $day_max = 28;
1495     }
1496     break;
1497     // Mois d'avril, juin, septembre et novembre
1498     case "4":
1499     case "6":
1500     case "9":
1501     case "11":
1502     $day_max = 30;
1503     break;
1504     // Mois de janvier, mars, mai, juillet, août, octobre et décembre
1505     default:
1506     $day_max = 31;
1507     }
1508    
1509     // Si le jour est supérieur au jour maximum du mois
1510     if ($day > $day_max) {
1511     // Le jour devient le jour maximum
1512     $day = $day_max;
1513     }
1514    
1515     // Compléte le mois et le jour par un 0 à gauche si c'est un chiffre
1516     $month = str_pad($month, 2, "0", STR_PAD_LEFT);
1517     $day = str_pad($day, 2, "0", STR_PAD_LEFT);
1518    
1519     // Résultat du calcul
1520     $date_result = $year."-".$month."-".$day;
1521     }
1522    
1523     // Si c'est un calcul sur des jours
1524     if ($type == "jour") {
1525     //
1526     $datetime = new DateTime($date);
1527     // Si le délai est un numérique
1528     if (is_numeric($delay)) {
1529     // Modifie la date
1530     $datetime->modify($operator.$delay.' days');
1531     }
1532     // Résultat du calcul
1533     $date_result = $datetime->format('Y-m-d');
1534     }
1535    
1536     // Retourne la date calculée
1537     return $date_result;
1538     }
1539    
1540     /**
1541     * Vérifie la valididité d'une date.
1542     *
1543     * @param string $pDate Date à vérifier
1544     *
1545     * @return boolean
1546     */
1547     function check_date($pDate) {
1548    
1549     // Vérifie si c'est une date valide
1550     if (preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $pDate, $date)
1551     && checkdate($date[2], $date[3], $date[1])
1552     && $date[1] >= 1900) {
1553     //
1554     return true;
1555     }
1556    
1557     //
1558     return false;
1559     }
1560    
1561     /**
1562     * Permet de tester le bypass
1563     *
1564     * @param string $obj le nom de l'objet
1565     * @param string $permission_suffix
1566     * @return boolean
1567     */
1568     function can_bypass($obj="", $permission_suffix=""){
1569     //On teste le droit bypass
1570     if ($permission_suffix!=""&&$obj!=""&&
1571     $this->isAccredited($obj."_".$permission_suffix."_bypass")){
1572     return true;
1573     }
1574     return false;
1575     }
1576    
1577    
1578     /**
1579     * Vérifie l'option de numérisation.
1580     *
1581     * @return boolean
1582     */
1583     public function is_option_digitalization_folder_enabled() {
1584     //
1585     if ($this->getParameter("option_digitalization_folder") !== true) {
1586     //
1587     return false;
1588     }
1589     //
1590     return true;
1591     }
1592    
1593 softime 8477 /**
1594     * Vérifie l'option de suppression d'un dossier d'instruction.
1595     *
1596     * @return boolean
1597     */
1598     public function is_option_suppression_dossier_instruction_enabled($om_collectivite=null) {
1599     //
1600     $parameters = $this->getCollectivite($om_collectivite);
1601     //
1602     if (isset($parameters['option_suppression_dossier_instruction']) === true
1603     && $parameters['option_suppression_dossier_instruction'] === 'true') {
1604     //
1605     return true;
1606     }
1607 mbroquet 3730
1608 softime 8477 //
1609     return false;
1610     }
1611    
1612    
1613    
1614 mbroquet 3730 /**
1615     * Vérifie que l'option d'accès au portail citoyen est activée.
1616     *
1617 softime 7366 * @param integer $om_collectivite Identifiant de la collectivité.
1618     *
1619 mbroquet 3730 * @return boolean
1620     */
1621 softime 7366 public function is_option_citizen_access_portal_enabled($om_collectivite=null) {
1622 mbroquet 3730 //
1623 softime 7366 $parameters = $this->getCollectivite($om_collectivite);
1624 mbroquet 3730 //
1625 softime 7366 if (isset($parameters['option_portail_acces_citoyen']) === true
1626     && $parameters['option_portail_acces_citoyen'] === 'true') {
1627 mbroquet 3730 //
1628 softime 7366 return true;
1629 mbroquet 3730 }
1630    
1631     //
1632 softime 7366 return false;
1633 mbroquet 3730 }
1634    
1635 softime 7366
1636 nmeucci 4108 /**
1637 softime 4626 * Vérifie que l'option du SIG est activée.
1638     *
1639     * @return boolean
1640     */
1641 softime 7996 public function is_option_sig_enabled($om_collectivite=null) {
1642 softime 4626 //
1643 softime 7996 $parameters = $this->getCollectivite($om_collectivite);
1644 softime 4626 //
1645 softime 7996 if (isset($parameters['option_sig']) === true
1646     && $parameters['option_sig'] === 'sig_externe') {
1647 softime 4626 //
1648 softime 7996 return true;
1649 softime 4626 }
1650 softime 7996 //
1651     return false;
1652     }
1653 softime 4626
1654 softime 7996 /**
1655     * Vérifie que l'option du SIG est activée.
1656     *
1657     * @return boolean
1658     */
1659     public function is_option_ws_synchro_contrainte_enabled($om_collectivite=null) {
1660 softime 4626 //
1661 softime 7996 $parameters = $this->getCollectivite($om_collectivite);
1662     //
1663     if (isset($parameters['option_ws_synchro_contrainte']) === true
1664     && $parameters['option_ws_synchro_contrainte'] === 'true') {
1665     //
1666     return true;
1667     }
1668     //
1669     return false;
1670 softime 4626 }
1671    
1672 softime 6929
1673 softime 4626 /**
1674 softime 6929 * Vérifie que l'option de simulation des taxes est activée.
1675     *
1676     * @param integer $om_collectivite Identifiant de la collectivité.
1677     *
1678     * @return boolean
1679     */
1680     public function is_option_simulation_taxes_enabled($om_collectivite=null) {
1681     //
1682     $parameters = $this->getCollectivite($om_collectivite);
1683     //
1684     if (isset($parameters['option_simulation_taxes']) === true
1685     && $parameters['option_simulation_taxes'] === 'true') {
1686     //
1687     return true;
1688     }
1689    
1690     //
1691     return false;
1692     }
1693    
1694 softime 7521 /**
1695     * Vérifie que l'option de prévisualisation de l'édition est activée.
1696     *
1697     * @param integer $om_collectivite Identifiant de la collectivité.
1698     *
1699     * @return boolean
1700     */
1701     public function is_option_preview_pdf_enabled($om_collectivite=null) {
1702     //
1703     $parameters = $this->getCollectivite($om_collectivite);
1704     //
1705     if (isset($parameters['option_previsualisation_edition']) === true
1706     && $parameters['option_previsualisation_edition'] === 'true') {
1707     //
1708     return true;
1709     }
1710 softime 6929
1711 softime 7521 //
1712     return false;
1713     }
1714    
1715 softime 8593 /**
1716     * Vérifie que l'option de rédaction libre de l'édition est activée.
1717     *
1718     * @param integer $om_collectivite Identifiant de la collectivité.
1719     *
1720     * @return boolean
1721     */
1722     public function is_option_redaction_libre_enabled($om_collectivite=null) {
1723     //
1724     $parameters = $this->getCollectivite($om_collectivite);
1725     //
1726     if (isset($parameters['option_redaction_libre']) === true
1727     && $parameters['option_redaction_libre'] === 'true') {
1728     //
1729     return true;
1730     }
1731 softime 7685
1732 softime 8593 //
1733     return false;
1734     }
1735    
1736    
1737 softime 6929 /**
1738 softime 7685 * Vérifie que l'option de finalisation automatique des instructions tacites
1739     * et retours est activée..
1740     *
1741     * @param integer $om_collectivite Identifiant de la collectivité.
1742     *
1743     * @return boolean
1744     */
1745     public function is_option_finalisation_auto_enabled($om_collectivite = null) {
1746     //
1747     $parameters = $this->getCollectivite($om_collectivite);
1748     //
1749     if (isset($parameters['option_final_auto_instr_tacite_retour']) === true
1750     && $parameters['option_final_auto_instr_tacite_retour'] === 'true') {
1751     //
1752     return true;
1753     }
1754    
1755     //
1756     return false;
1757     }
1758    
1759 softime 8329 /**
1760     * Vérifie que l'option de trouillotage numérique automatique des
1761     * pièces est activée.
1762     *
1763     * @param integer $om_collectivite Identifiant de la collectivité.
1764     *
1765     * @return boolean
1766     */
1767     public function is_option_trouillotage_numerique_enabled($om_collectivite = null) {
1768     //
1769     $parameters = $this->getCollectivite($om_collectivite);
1770     //
1771     if (isset($parameters['option_trouillotage_numerique']) === true
1772     && $parameters['option_trouillotage_numerique'] === 'true') {
1773     //
1774     return true;
1775     }
1776     //
1777     return false;
1778     }
1779 softime 7685
1780     /**
1781 softime 8989 * Vérifie que l'option de saisie du numéro de dossier est activée.
1782     *
1783     * @param integer $om_collectivite Identifiant de la collectivité.
1784     *
1785     * @return boolean
1786     */
1787     public function is_option_dossier_saisie_numero_enabled($om_collectivite=null) {
1788     //
1789     $parameters = $this->getCollectivite($om_collectivite);
1790     //
1791     if (isset($parameters['option_dossier_saisie_numero']) === true
1792     && $parameters['option_dossier_saisie_numero'] === 'true') {
1793     //
1794     return true;
1795     }
1796    
1797     //
1798     return false;
1799     }
1800    
1801     /**
1802     * Vérifie que l'option de récupération de la division de l'instructeur
1803     * affecté pour la numérotation des dossiers est activée.
1804     *
1805     * @param integer $om_collectivite Identifiant de la collectivité.
1806     *
1807     * @return boolean
1808     */
1809     public function is_option_instructeur_division_numero_dossier_enabled($om_collectivite=null) {
1810     //
1811     $parameters = $this->getCollectivite($om_collectivite);
1812     //
1813     if (isset($parameters['option_instructeur_division_numero_dossier']) === true
1814     && $parameters['option_instructeur_division_numero_dossier'] === 'true') {
1815     //
1816     return true;
1817     }
1818    
1819     //
1820     return false;
1821     }
1822    
1823     /**
1824 softime 9245 * Vérifie que l'option du suivi de numérisation est activée.
1825     * Les utilisateurs de la collectivité de niveau 2 peuvent accéder aux
1826     * fonctionnalités du suivi de numérisation même si l'option est activée seulement
1827     * sur une collectivité de niveau 1.
1828     *
1829     * @param integer $om_collectivite Identifiant de la collectivité.
1830     *
1831     * @return boolean
1832     */
1833     public function is_option_suivi_numerisation_enabled($om_collectivite=null) {
1834     //
1835     $parameters = $this->getCollectivite($om_collectivite);
1836     //
1837     if (isset($parameters['option_suivi_numerisation']) === true
1838     && $parameters['option_suivi_numerisation'] === 'true') {
1839     //
1840     return true;
1841     }
1842    
1843     // Si l'utilisateur fait partie de la collectivité de niveau 2
1844     // et qu'au moins une des communes à l'option de numérisation activée
1845     if ($this->has_collectivite_multi() === true) {
1846     $query = sprintf('
1847     SELECT valeur
1848     FROM %1$som_parametre
1849     WHERE libelle = \'%2$s\'
1850     ',
1851     DB_PREFIXE,
1852     'option_suivi_numerisation'
1853     );
1854     $res = $this->get_one_result_from_db_query(
1855     $query,
1856     true
1857     );
1858     if ($res['code'] === 'OK'
1859     && $res['result'] === 'true') {
1860     //
1861     return true;
1862     }
1863     }
1864    
1865     //
1866     return false;
1867     }
1868    
1869     /**
1870 nmeucci 4108 * Vérifie le niveau de la collectivité de l'utilisateur connecté
1871     *
1872     * @return boolean
1873     */
1874     function has_collectivite_multi() {
1875     $idx_multi = $this->get_idx_collectivite_multi();
1876     if (intval($_SESSION['collectivite']) === intval($idx_multi)) {
1877     return true;
1878     }
1879     return false;
1880     }
1881 mbroquet 3730
1882 nmeucci 4108
1883 softime 3976 /**
1884     * Pour un path absolu donné, retourne le relatif à la racine de
1885     * l'application.
1886     *
1887     * @param string $absolute Chemin absolu.
1888     *
1889     * @return mixed Faux si échec sinon chemin relatif.
1890     */
1891     public function get_relative_path($absolute) {
1892     if ($this->get_path_app() === false) {
1893     return false;
1894     }
1895     $path_app = $this->get_path_app();
1896     return str_replace($path_app, '', $absolute);
1897     }
1898    
1899    
1900     /**
1901     * Retourne le path absolu de la racine de l'application
1902     *
1903     * @return mixed Faux si échec sinon chemin absolu
1904     */
1905     public function get_path_app() {
1906     $match = array();
1907     preg_match( '/(.*)\/[a-zA-Z0-9]+\/\.\.\/core\/$/', PATH_OPENMAIRIE, $match);
1908     // On vérifie qu'il n'y a pas d'erreur
1909     if (isset($match[1]) === false) {
1910     return false;
1911     }
1912     return $match[1];
1913     }
1914    
1915 nmeucci 3981 /**
1916     * Compose un tableau et retourne son code HTML
1917     *
1918     * @param string $id ID CSS du conteneur
1919     * @param array $headers entêtes de colonnes
1920     * @param array $rows lignes
1921     * @return string code HTML
1922     */
1923 nmeucci 3980 public function compose_generate_table($id, $headers, $rows) {
1924 nmeucci 3981 //
1925     $html = '';
1926 nmeucci 3980 // Début conteneur
1927 nmeucci 3981 $html .= '<div id="'.$id.'">';
1928 nmeucci 3980 // Début tableau
1929 nmeucci 3981 $html .= '<table class="tab-tab">';
1930 nmeucci 3980 // Début entête
1931 nmeucci 3981 $html .= '<thead>';
1932     $html .= '<tr class="ui-tabs-nav ui-accordion ui-state-default tab-title">';
1933 nmeucci 3980 // Colonnes
1934     $nb_colonnes = count($headers);
1935     $index_last_col = $nb_colonnes - 1;
1936     foreach ($headers as $i => $header) {
1937     if ($i === 0) {
1938     $col = ' firstcol';
1939     }
1940     if ($i === $index_last_col) {
1941     $col = ' lastcol';
1942     }
1943 nmeucci 3981 $html .= '<th class="title col-'.$i.$col.'">';
1944     $html .= '<span class="name">';
1945     $html .= $header;
1946     $html .= '</span>';
1947     $html .= '</th>';
1948 nmeucci 3980 }
1949     // Fin entête
1950 nmeucci 3981 $html .= '</tr>';
1951     $html .= '</thead>';
1952 nmeucci 3980 // Début corps
1953 nmeucci 3981 $html .= '<tbody>';
1954 nmeucci 3980 // Lignes
1955     foreach ($rows as $cells) {
1956     // Début ligne
1957 nmeucci 3981 $html .= '<tr class="tab-data">';
1958 nmeucci 3980 // Cellules
1959     foreach ($cells as $j => $cell) {
1960     if ($j === 0) {
1961     $col = ' firstcol';
1962     }
1963     if ($j === $index_last_col) {
1964     $col = ' lastcol';
1965     }
1966 nmeucci 3981 $html .= '<td class="title col-'.$j.$col.'">';
1967     $html .= '<span class="name">';
1968     $html .= $cell;
1969     $html .= '</span>';
1970     $html .= '</td>';
1971 nmeucci 3980 }
1972     // Fin ligne
1973 nmeucci 3981 $html .= "</tr>";
1974 nmeucci 3980 }
1975     // Fin corps
1976 nmeucci 3981 $html .= '</tbody>';
1977 nmeucci 3980 // Fin tableau
1978 nmeucci 3981 $html .= '</table>';
1979 nmeucci 3980 // Fin conteneur
1980 nmeucci 3981 $html .= '</div>';
1981     //
1982     return $html;
1983 nmeucci 3980 }
1984 nmeucci 4156
1985     /**
1986     * Retourne le login de l'utilisateur connecté + entre parenthèses son nom
1987     * s'il en a un.
1988     *
1989     * @return string myLogin OU myLogin (myName)
1990     */
1991     public function get_connected_user_login_name() {
1992     // Requête et stockage des informations de l'user connecté
1993     $this->getUserInfos();
1994     // Si le nom existe et est défini on le récupère
1995     $nom = "";
1996     if (isset($this->om_utilisateur["nom"])
1997     && !empty($this->om_utilisateur["nom"])) {
1998     $nom = trim($this->om_utilisateur["nom"]);
1999     }
2000     // Définition de l'émetteur : obligatoirement son login
2001     $emetteur = $_SESSION['login'];
2002     // Définition de l'émetteur : + éventuellement son nom
2003     if ($nom != "") {
2004     $emetteur .= " (".$nom.")";
2005     }
2006     // Retour
2007     return $emetteur;
2008     }
2009 nhaye 4218
2010     /**
2011 fmichon 4708 * Cette méthode permet d'interfacer le module 'Settings'.
2012     */
2013     function view_module_settings() {
2014     //
2015     require_once "../obj/settings.class.php";
2016     $settings = new settings();
2017     $settings->view_main();
2018     }
2019    
2020 softime 7366
2021 fmichon 4708 /**
2022 softime 7366 * Vérifie que l'option référentiel ERP est activée.
2023 fmichon 4708 *
2024 softime 7366 * @param integer $om_collectivite Identifiant de la collectivité.
2025 fmichon 4708 *
2026     * @return boolean
2027     */
2028 softime 7366 public function is_option_referentiel_erp_enabled($om_collectivite=null) {
2029 fmichon 4708 //
2030 softime 7366 $parameters = $this->getCollectivite($om_collectivite);
2031     //
2032     if (isset($parameters['option_referentiel_erp']) === true
2033     && $parameters['option_referentiel_erp'] === 'true') {
2034     //
2035     return true;
2036 fmichon 4708 }
2037 softime 7366
2038 fmichon 4708 //
2039 softime 7366 return false;
2040 fmichon 4708 }
2041    
2042 softime 7366
2043 fmichon 4708 /**
2044     * Interface avec le référentiel ERP.
2045     */
2046     function send_message_to_referentiel_erp($code, $infos) {
2047     //
2048     require_once "../obj/interface_referentiel_erp.class.php";
2049     $interface_referentiel_erp = new interface_referentiel_erp();
2050     $ret = $interface_referentiel_erp->send_message_to_referentiel_erp($code, $infos);
2051     return $ret;
2052     }
2053    
2054     /**
2055 nhaye 4218 * Récupère la liste des identifiants des collectivités
2056     *
2057     * @param string $return_type 'string' ou 'array' selon que l'on retourne
2058     * respectivement une chaîne ou un tableau
2059     * @param string $separator caractère(s) séparateur(s) employé(s) lorsque
2060     * l'on retourne une chaîne, inutilisé si tableau
2061     * @return mixed possibilité de boolean/string/array :
2062     * false si erreur BDD sinon résultat
2063     */
2064     public function get_list_id_collectivites($return_type = 'string', $separator = ',') {
2065     $sql = "
2066     SELECT
2067     array_to_string(
2068     array_agg(om_collectivite),
2069     '".$separator."'
2070     ) as list_id_collectivites
2071     FROM ".DB_PREFIXE."om_collectivite";
2072     $list = $this->db->getone($sql);
2073     $this->addTolog(
2074     __FILE__." - ".__METHOD__." : db->getone(\"".$sql."\");",
2075     VERBOSE_MODE
2076     );
2077     if ($this->isDatabaseError($list, true)) {
2078     return false;
2079     }
2080     if ($return_type === 'array') {
2081     return explode($separator, $list);
2082     }
2083     return $list;
2084     }
2085 nhaye 5254
2086 softime 6565 /**
2087     * Teste si l'utilisateur connecté appartient au groupe indiqué en paramètre
2088     * ou s'il a le goupe bypass.
2089     *
2090     * @param string $groupe Code du groupe : ADS / CTX / CU / RU / ERP.
2091     * @return boolean vrai si utilisateur appartient au groupe fourni
2092     */
2093     public function is_user_in_group($groupe) {
2094     if (isset($_SESSION['groupe']) === true
2095     && (array_key_exists($groupe, $_SESSION['groupe']) === true
2096     || array_key_exists("bypass", $_SESSION['groupe']) === true)) {
2097     return true;
2098     }
2099     return false;
2100     }
2101    
2102     /**
2103     * CONDITION - can_user_access_dossiers_confidentiels_from_groupe
2104     *
2105     * Permet de savoir si le type de dossier d'autorisation du dossier courant est
2106     * considéré comme confidentiel ou si l'utilisateur a le groupe bypass.
2107     *
2108     * @param string $groupe Code du groupe : ADS / CTX / CU / RU / ERP.
2109     * @return boolean true si l'utilisateur à accès aux dossiers confidentiels du groupe
2110     * passé en paramètre, sinon false.
2111     *
2112     */
2113     public function can_user_access_dossiers_confidentiels_from_groupe($groupe) {
2114     if ((isset($_SESSION['groupe'][$groupe]['confidentiel']) === true
2115     AND $_SESSION['groupe'][$groupe]['confidentiel'] === true)
2116     || array_key_exists("bypass", $_SESSION['groupe']) === true) {
2117     return true;
2118     }
2119     return false;
2120     }
2121    
2122     public function starts_with($haystack, $needle) {
2123     $length = strlen($needle);
2124     return (substr($haystack, 0, $length) === $needle);
2125     }
2126    
2127     public function ends_with($haystack, $needle) {
2128     $length = strlen($needle);
2129     if ($length == 0) {
2130     return true;
2131     }
2132     return (substr($haystack, -$length) === $needle);
2133     }
2134    
2135     /**
2136     * Récupère le type définit dans la base de données des champs d'une table
2137     * entière ou d'un champs si celui-ci est précisé.
2138     *
2139     * Liste des types BDD :
2140     * - int4
2141     * - varchar
2142     * - bool
2143     * - numeric
2144     * - text
2145     *
2146     * @param string $table Nom de la table.
2147     * @param string $column Nom de la colonne (facultatif).
2148     *
2149     * @return array
2150     */
2151     public function get_type_from_db($table, $column = null) {
2152     // Composition de la requête
2153     $sql_select = ' SELECT column_name, udt_name ';
2154     $sql_from = ' FROM information_schema.columns ';
2155     $sql_where = ' WHERE table_schema = \''.str_replace('.', '', DB_PREFIXE).'\' AND table_name = \''.$table.'\' ';
2156     $sql_order = ' ORDER BY ordinal_position ';
2157    
2158     // Si une colonne est précisé
2159     if ($column !== null || $column !== '') {
2160     //
2161     $sql_where .= ' AND column_name = \''.$column.'\' ';
2162     }
2163    
2164     // Requête SQL
2165     $sql = $sql_select.$sql_from.$sql_where.$sql_order;
2166     // Exécution de la requête
2167     $res = $this->db->query($sql);
2168     // Log
2169     $this->addToLog(__METHOD__."() : db->query(\"".$sql."\");", VERBOSE_MODE);
2170     // Erreur BDD
2171     $this->isDatabaseError($res);
2172     //
2173     $list_type = array();
2174     while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
2175     $list_type[$row['column_name']] = $row['udt_name'];
2176     }
2177    
2178     // Retourne la liste des codes
2179     return $list_type;
2180     }
2181    
2182 softime 7366
2183     /**
2184     * Cette méthode permet de récupérer le code de division correspondant
2185     * au dossier sur lequel on se trouve.
2186     *
2187     * Méthode identique à la méthode getDivisionFromDossier() de la classe
2188     * om_dbform à l'exception d'un cas de récupération du numéro de dossier par
2189     * la méthode getVal(). Cette exception permet d'utiliser cette méthode dans
2190     * les scripts instanciant seulement la classe utils tel que les *.inc.php.
2191     *
2192     * @param string $dossier Identifiant du dossier d'instruction.
2193     *
2194     * @return string Code de la division du dossier en cours
2195     */
2196     public function get_division_from_dossier_without_inst($dossier = null) {
2197    
2198     // Cette méthode peut être appelée plusieurs fois lors d'une requête.
2199     // Pour éviter de refaire le traitement de recherche de la division
2200     // alors on vérifie si nous ne l'avons pas déjà calculé.
2201     if (isset($this->_division_from_dossier) === true
2202     && $this->_division_from_dossier !== null) {
2203     // Log
2204     $this->addToLog(__METHOD__."() : retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
2205     // On retourne la valeur déjà calculée
2206     return $this->_division_from_dossier;
2207     }
2208    
2209     // Récupère le paramétre retourformulaire présent dans l'URL
2210     $retourformulaire = $this->getParameter("retourformulaire");
2211     // Récupère le paramétre idxformulaire présent dans l'URL
2212     $idxformulaire = $this->getParameter("idxformulaire");
2213    
2214     // Si le dossier n'est pas passé en paramètre de la méthode
2215     if ($dossier === null) {
2216    
2217     // La méthode de récupération du dossier diffère selon le contexte
2218     // du formulaire
2219     if ($retourformulaire === "dossier"
2220     || $retourformulaire === "dossier_instruction"
2221     || $retourformulaire === "dossier_instruction_mes_encours"
2222     || $retourformulaire === "dossier_instruction_tous_encours"
2223     || $retourformulaire === "dossier_instruction_mes_clotures"
2224     || $retourformulaire === "dossier_instruction_tous_clotures"
2225     || $retourformulaire === "dossier_contentieux_mes_infractions"
2226     || $retourformulaire === "dossier_contentieux_toutes_infractions"
2227     || $retourformulaire === "dossier_contentieux_mes_recours"
2228     || $retourformulaire === "dossier_contentieux_tous_recours") {
2229    
2230     // Récupère le numéro du dossier depuis le paramètre
2231     // idxformulaire présent dans l'URL
2232     $dossier = $idxformulaire;
2233     }
2234     //
2235     if ($retourformulaire === "lot") {
2236    
2237     // Requête SQL
2238     $sql = sprintf("SELECT dossier FROM ".DB_PREFIXE."lot WHERE lot = %s", $idxformulaire);
2239     // Récupère l'identifiant du dossier
2240     $dossier = $this->db->getone($sql);
2241     // Log
2242     $this->addToLog(__METHOD__."() : db->query(\"".$dossier."\");", VERBOSE_MODE);
2243     // Erreur BDD
2244     $this->isDatabaseError($dossier);
2245     }
2246     }
2247    
2248     // À cette étape si le dossier n'est toujours pas récupéré alors la
2249     // division ne pourra pas être récupérée
2250     if ($dossier === null) {
2251     //
2252     return null;
2253     }
2254    
2255     // Requête SQL
2256     $sql = sprintf("SELECT division FROM ".DB_PREFIXE."dossier WHERE dossier = '%s'", $dossier);
2257     // Récupère l'identifiant de la division du dossier
2258     $this->_division_from_dossier = $this->db->getOne($sql);
2259     // Log
2260     $this->addToLog(__METHOD__."(): db->getone(\"".$sql."\")", VERBOSE_MODE);
2261     // Erreur BDD
2262     $this->isDatabaseError($this->_division_from_dossier);
2263    
2264     //
2265     return $this->_division_from_dossier;
2266    
2267     }
2268    
2269 softime 8329 /**
2270 softime 8593 *
2271     */
2272     function setDefaultValues() {
2273     $this->addHTMLHeadCss(
2274     array(
2275     "../app/lib/chosen/chosen.min.css",
2276     ),
2277     21
2278     );
2279     $this->addHTMLHeadJs(
2280     array(
2281     "../app/lib/chosen/chosen.jquery.min.js",
2282     ),
2283     21
2284     );
2285     }
2286    
2287     /**
2288 softime 8329 * Permet de définir la configuration des liens du footer.
2289     *
2290     * @return void
2291     */
2292     protected function set_config__footer() {
2293     $footer = array();
2294     // Documentation du site
2295     $footer[] = array(
2296     "title" => __("Documentation"),
2297     "description" => __("Acceder a l'espace documentation de l'application"),
2298 softime 9245 "href" => "http://docs.openmairie.org/?project=openads&version=4.13&format=html&path=manuel_utilisateur",
2299 softime 8329 "target" => "_blank",
2300     "class" => "footer-documentation",
2301     );
2302 softime 7366
2303 softime 8329 // Forum openMairie
2304     $footer[] = array(
2305     "title" => __("Forum"),
2306     "description" => __("Espace d'échange ouvert du projet openMairie"),
2307     "href" => "https://communaute.openmairie.org/c/openads",
2308     "target" => "_blank",
2309     "class" => "footer-forum",
2310     );
2311    
2312     // Portail openMairie
2313     $footer[] = array(
2314     "title" => __("openMairie.org"),
2315     "description" => __("Site officiel du projet openMairie"),
2316     "href" => "http://www.openmairie.org/catalogue/openads",
2317     "target" => "_blank",
2318     "class" => "footer-openmairie",
2319     );
2320     //
2321     $this->config__footer = $footer;
2322     }
2323    
2324     /**
2325     * Surcharge - set_config__menu().
2326     *
2327     * @return void
2328     */
2329     protected function set_config__menu() {
2330     //
2331     $menu = array();
2332    
2333     // {{{ Rubrique AUTORISATION
2334     //
2335     $rubrik = array(
2336     "title" => _("Autorisation"),
2337     "class" => "autorisation",
2338     "right" => "menu_autorisation",
2339     );
2340     //
2341     $links = array();
2342    
2343     $links[] = array(
2344     "href" => "".OM_ROUTE_TAB."&obj=dossier_autorisation",
2345     "class" => "dossier_autorisation",
2346     "title" => _("Dossiers d'autorisation"),
2347     "right" => array("dossier_autorisation", "dossier_autorisation_tab", ),
2348     "open" => array("index.php|dossier_autorisation[module=tab]", "index.php|dossier_autorisation[module=form]", ),
2349     );
2350    
2351     // Lien vers les dossiers d'autorisations qui ont une demande d'avis
2352     $links[] = array(
2353     "href" => "".OM_ROUTE_TAB."&obj=dossier_autorisation_avis",
2354     "class" => "dossier_autorisation",
2355     "title" => _("Dossiers d'autorisation"),
2356     "right" => array(
2357     "dossier_autorisation_avis",
2358     "dossier_autorisation_avis_tab",
2359     ),
2360     "open" => array("index.php|dossier_autorisation_avis[module=tab]", "index.php|dossier_autorisation[module=form]", ),
2361     );
2362    
2363     //
2364     $rubrik['links'] = $links;
2365     //
2366     $menu[] = $rubrik;
2367     // }}}
2368    
2369     // {{{ Rubrique GUICHET UNIQUE
2370     //
2371     $rubrik = array(
2372     "title" => _("Guichet Unique"),
2373     "class" => "guichet_unique",
2374     "right" => "menu_guichet_unique",
2375     );
2376     //
2377     $links = array();
2378     //
2379     $links[] = array(
2380     "href" => OM_ROUTE_DASHBOARD,
2381     "class" => "tableau-de-bord",
2382     "title" => _("tableau de bord"),
2383     "right" => "menu_guichet_unique_dashboard",
2384     "open" => array("index.php|[module=dashboard]",),
2385     );
2386     //
2387     $links[] = array(
2388     "class" => "category",
2389     "title" => _("nouvelle demande"),
2390     "right" => array(
2391     "demande",
2392     "demande_nouveau_dossier_ajouter",
2393     "demande_dossier_encours_ajouter", "demande_dossier_encours_tab",
2394     "demande_autre_dossier_ajouter", "demande_autre_dossier_tab",
2395     "demande_consulter","demande_tab",
2396     ),
2397     );
2398     $links[] = array(
2399     "title" => "<hr/>",
2400     "right" => array(
2401     "demande",
2402     "demande_dossier_encours_ajouter",
2403     "demande_dossier_encours_ajouter", "demande_dossier_encours_tab",
2404     ),
2405     );
2406     $links[] = array(
2407     "href" => "".OM_ROUTE_FORM."&obj=demande_nouveau_dossier&amp;action=0&amp;advs_id=&amp;tricol=&amp;valide=&amp;retour=tab&amp;new=",
2408     "class" => "nouveau-dossier",
2409     "title" => _("nouveau dossier"),
2410     "right" => array(
2411     "demande",
2412     "demande_nouveau_dossier_ajouter",
2413     ),
2414     "open" => array("index.php|demande_nouveau_dossier[module=form]",),
2415     );
2416     $links[] = array(
2417     "href" => "".OM_ROUTE_TAB."&obj=demande_dossier_encours",
2418     "class" => "dossier-existant",
2419     "title" => _("dossier en cours"),
2420     "right" => array(
2421     "demande",
2422     "demande_dossier_encours_ajouter",
2423     "demande_dossier_encours_tab",
2424     ),
2425     "open" => array("index.php|demande_dossier_encours[module=tab]", "index.php|demande_dossier_encours[module=form]"),
2426     );
2427     $links[] = array(
2428     "href" => "".OM_ROUTE_TAB."&obj=demande_autre_dossier",
2429     "class" => "autre-dossier",
2430     "title" => _("autre dossier"),
2431     "right" => array(
2432     "demande",
2433     "demande_autre_dossier_ajouter",
2434     "demande_autre_dossier_tab",
2435     ),
2436     "open" => array("index.php|demande_autre_dossier[module=tab]", "index.php|demande_autre_dossier[module=form]"),
2437     );
2438     $links[] = array(
2439     "title" => "<hr/>",
2440     "right" => array(
2441     "demande",
2442     "demande_consulter",
2443     "demande_tab"
2444     ),
2445     );
2446     $links[] = array(
2447     "href" => "".OM_ROUTE_TAB."&obj=demande",
2448     "class" => "pdf",
2449     "title" => _("recepisse"),
2450     "right" => array(
2451     "demande",
2452     "demande_consulter",
2453     "demande_tab"
2454     ),
2455     "open" => array("index.php|demande[module=tab]","index.php|demande[module=form]"),
2456     );
2457     $links[] = array(
2458     "title" => "<hr/>",
2459     "right" => array(
2460     "petitionnaire_frequent",
2461     "petitionnaire_frequent_consulter",
2462     "petitionnaire_frequent_tab"
2463     ),
2464     );
2465     $links[] = array(
2466     "href" => "".OM_ROUTE_TAB."&obj=petitionnaire_frequent",
2467     "class" => "petitionnaire_frequent",
2468     "title" => _("petitionnaire_frequent"),
2469     "right" => array(
2470     "petitionnaire_frequent",
2471     "petitionnaire_frequent_consulter",
2472     "petitionnaire_frequent_tab"
2473     ),
2474     "open" => array("index.php|petitionnaire_frequent[module=tab]","index.php|petitionnaire_frequent[module=form]"),
2475     );
2476     //
2477     $links[] = array(
2478     "class" => "category",
2479     "title" => _("affichage reglementaire"),
2480     "right" => array(
2481     "affichage_reglementaire_registre",
2482     "affichage_reglementaire_attestation",
2483     ),
2484     );
2485     $links[] = array(
2486     "title" => "<hr/>",
2487     "right" => array(
2488     "affichage_reglementaire_registre",
2489     "affichage_reglementaire_attestation",
2490     ),
2491     );
2492     $links[] = array(
2493     "href" => "".OM_ROUTE_FORM."&obj=demande_affichage_reglementaire_registre&action=110&idx=0",
2494     "class" => "affichage_reglementaire_registre",
2495     "title" => _("registre"),
2496     "right" => array(
2497     "affichage_reglementaire_registre",
2498     ),
2499     "open" => array("index.php|demande_affichage_reglementaire_registre[module=tab]", "index.php|demande_affichage_reglementaire_registre[module=form]"),
2500     );
2501     $links[] = array(
2502     "href" => "".OM_ROUTE_FORM."&obj=demande_affichage_reglementaire_attestation&action=120&idx=0",
2503     "class" => "affichage_reglementaire_attestation",
2504     "title" => _("attestation"),
2505     "right" => array(
2506     "affichage_reglementaire_attestation",
2507     ),
2508     "open" => array("index.php|demande_affichage_reglementaire_attestation[module=tab]", "index.php|demande_affichage_reglementaire_attestation[module=form]"),
2509     );
2510     //
2511     $rubrik['links'] = $links;
2512     //
2513     $menu[] = $rubrik;
2514     // }}}
2515    
2516     // {{{ Rubrique QUALIFICATION
2517     //
2518     $rubrik = array(
2519     "title" => _("Qualification"),
2520     "class" => "qualification",
2521     "right" => "qualification_menu",
2522     );
2523     //
2524     $links = array();
2525     //
2526     $links[] = array(
2527     "href" => OM_ROUTE_DASHBOARD,
2528     "class" => "tableau-de-bord",
2529     "title" => _("tableau de bord"),
2530     "right" => "menu_qualification_dashboard",
2531     "open" => array("index.php|[module=dashboard]",),
2532     );
2533    
2534     //
2535     $links[] = array(
2536     "href" => "".OM_ROUTE_TAB."&obj=dossier_qualifier_qualificateur",
2537     "class" => "dossier_qualifier_qualificateur",
2538     "title" => _("dossiers a qualifier"),
2539     "right" => array(
2540     "dossier_qualifier_qualificateur",
2541     "dossier_qualifier_qualificateur_tab",
2542     ),
2543     "open" => array("index.php|dossier_qualifier_qualificateur[module=tab]", "index.php|dossier_instruction[module=form]", ),
2544     );
2545    
2546     //
2547     $rubrik['links'] = $links;
2548     //
2549     $menu[] = $rubrik;
2550     // }}}
2551    
2552     // {{{ Rubrique INSTRUCTION
2553     //
2554     $rubrik = array(
2555     "title" => _("instruction"),
2556     "class" => "instruction",
2557     "right" => "menu_instruction",
2558     );
2559     //
2560     $links = array();
2561     //
2562     $links[] = array(
2563     "href" => OM_ROUTE_DASHBOARD,
2564     "class" => "tableau-de-bord",
2565     "title" => _("tableau de bord"),
2566     "right" => "menu_instruction_dashboard",
2567     "open" => array("index.php|[module=dashboard]",),
2568     );
2569     // Catégorie DOSSIERS D'INSTRUCTION
2570     $links[] = array(
2571     "class" => "category",
2572     "title" => _("dossiers d'instruction"),
2573     "right" => array(
2574     "dossier_instruction_mes_encours", "dossier_instruction_mes_encours_tab",
2575     "dossier_instruction_tous_encours", "dossier_instruction_tous_encours_tab",
2576     "dossier_instruction_mes_clotures", "dossier_instruction_mes_clotures_tab",
2577     "dossier_instruction_tous_clotures", "dossier_instruction_tous_clotures_tab",
2578     "dossier_instruction", "dossier_instruction_tab",
2579     "PC_modificatif", "PC_modificatif_tab",
2580     ),
2581     );
2582     $links[] = array(
2583     "title" => "<hr/>",
2584     "right" => array(
2585     "dossier_instruction_mes_encours", "dossier_instruction_mes_encours_tab",
2586     "dossier_instruction_tous_encours", "dossier_instruction_tous_encours_tab",
2587     ),
2588     );
2589     //
2590     $links[] = array(
2591     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction_mes_encours",
2592     "class" => "dossier_instruction_mes_encours",
2593     "title" => _("mes encours"),
2594     "right" => array("dossier_instruction_mes_encours", "dossier_instruction_mes_encours_tab", ),
2595     "open" => array("index.php|dossier_instruction_mes_encours[module=tab]", "index.php|dossier_instruction_mes_encours[module=form]", ),
2596     );
2597     //
2598     $links[] = array(
2599     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction_tous_encours",
2600     "class" => "dossier_instruction_tous_encours",
2601     "title" => _("tous les encours"),
2602     "right" => array("dossier_instruction_tous_encours", "dossier_instruction_tous_encours_tab", ),
2603     "open" => array("index.php|dossier_instruction_tous_encours[module=tab]", "index.php|dossier_instruction_tous_encours[module=form]", ),
2604     );
2605     //
2606     $links[] = array(
2607     "title" => "<hr/>",
2608     "right" => array(
2609     "dossier_instruction_mes_clotures", "dossier_instruction_mes_clotures_tab",
2610     "dossier_instruction_tous_clotures", "dossier_instruction_tous_clotures_tab",
2611     ),
2612     );
2613     //
2614     $links[] = array(
2615     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction_mes_clotures",
2616     "class" => "dossier_instruction_mes_clotures",
2617     "title" => _("mes clotures"),
2618     "right" => array("dossier_instruction_mes_clotures", "dossier_instruction_mes_clotures_tab", ),
2619     "open" => array("index.php|dossier_instruction_mes_clotures[module=tab]", "index.php|dossier_instruction_mes_clotures[module=form]", ),
2620     );
2621     //
2622     $links[] = array(
2623     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction_tous_clotures",
2624     "class" => "dossier_instruction_tous_clotures",
2625     "title" => _("tous les clotures"),
2626     "right" => array("dossier_instruction_tous_clotures", "dossier_instruction_tous_clotures_tab", ),
2627     "open" => array("index.php|dossier_instruction_tous_clotures[module=tab]", "index.php|dossier_instruction_tous_clotures[module=form]", ),
2628     );
2629     //
2630     $links[] = array(
2631     "title" => "<hr/>",
2632     "right" => array(
2633     "dossier_instruction", "dossier_instruction_tab",
2634     ),
2635     );
2636     //
2637     $links[] = array(
2638     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction",
2639     "class" => "dossier_instruction_recherche",
2640     "title" => _("recherche"),
2641     "right" => array("dossier_instruction", "dossier_instruction_tab", ),
2642     "open" => array("index.php|dossier_instruction[module=tab]", "index.php|dossier_instruction[module=form]", ),
2643     );
2644    
2645     // Catégorier Qualification
2646     $links[] = array(
2647     "class" => "category",
2648     "title" => _("qualification"),
2649     "right" => array("dossier_qualifier", "architecte_frequent",),
2650     );
2651     //
2652     $links[] = array(
2653     "title" => "<hr/>",
2654     "right" => array("dossier_qualifier", "architecte_frequent", ),
2655     );
2656     //
2657     $links[] = array(
2658     "href" => "".OM_ROUTE_TAB."&obj=dossier_qualifier",
2659     "class" => "dossier_qualifier",
2660     "title" => _("dossiers a qualifier"),
2661     "right" => array("dossier_qualifier", "dossier_qualifier_tab", ),
2662     "open" => array("index.php|dossier_qualifier[module=tab]", "index.php|dossier_qualifier[module=form]", ),
2663     );
2664     //
2665     $links[] = array(
2666     "href" => "".OM_ROUTE_TAB."&obj=architecte_frequent",
2667     "class" => "architecte_frequent",
2668     "title" => _("architecte_frequent"),
2669     "right" => array("architecte_frequent", "architecte_frequent_tab", ),
2670     "open" => array("index.php|architecte_frequent[module=tab]", "index.php|architecte_frequent[module=form]", ),
2671     );
2672     // Catégorie CONSULTATIONS
2673     $links[] = array(
2674     "class" => "category",
2675     "title" => _("consultations"),
2676     "right" => array(
2677     "consultation",
2678     "consultation_mes_retours",
2679     "consultation_retours_ma_division",
2680     "consultation_tous_retours",
2681     ),
2682     );
2683     $links[] = array(
2684     "title" => "<hr/>",
2685     "right" => array(
2686     "consultation",
2687     "consultation_mes_retours",
2688     "consultation_retours_ma_division",
2689     "consultation_tous_retours",
2690     ),
2691     );
2692     $links[] = array(
2693     "href" => "".OM_ROUTE_TAB."&obj=consultation_mes_retours",
2694     "class" => "consultation_mes_retours",
2695     "title" => _("Mes retours"),
2696     "right" => array(
2697     "consultation",
2698     "consultation_mes_retours",
2699     "consultation_mes_retours_tab",
2700     ),
2701     "open" => array("index.php|consultation_mes_retours[module=tab]", "index.php|consultation_mes_retours[module=form]", ),
2702     );
2703     $links[] = array(
2704     "href" => "".OM_ROUTE_TAB."&obj=consultation_retours_ma_division",
2705     "class" => "consultation_retours_ma_division",
2706     "title" => _("Retours de ma division"),
2707     "right" => array(
2708     "consultation",
2709     "consultation_retours_ma_division",
2710     "consultation_retours_ma_division_tab",
2711     ),
2712     "open" => array("index.php|consultation_retours_ma_division[module=tab]", "index.php|consultation_retours_ma_division[module=form]", ),
2713     );
2714     $links[] = array(
2715     "href" => "".OM_ROUTE_TAB."&obj=consultation_tous_retours",
2716     "class" => "consultation_tous_retours",
2717     "title" => _("Tous les retours"),
2718     "right" => array(
2719     "consultation_tous_retours",
2720     "consultation_tous_retours_tab",
2721     ),
2722     "open" => array("index.php|consultation_tous_retours[module=tab]", "index.php|consultation_tous_retours[module=form]", ),
2723     );
2724     // Catégorie MESSAGES
2725     $links[] = array(
2726     "class" => "category",
2727     "title" => _("Messages"),
2728     "right" => array(
2729     "messages",
2730     "messages_mes_retours",
2731     "messages_retours_ma_division",
2732     "messages_tous_retours",
2733     ),
2734     );
2735     //
2736     $links[] = array(
2737     "title" => "<hr/>",
2738     "right" => array(
2739     "messages",
2740     "messages_mes_retours",
2741     "messages_retours_ma_division",
2742     "messages_tous_retours",
2743     ),
2744     );
2745     //
2746     $links[] = array(
2747     "href" => "".OM_ROUTE_TAB."&obj=messages_mes_retours",
2748     "class" => "messages_mes_retours",
2749     "title" => _("Mes messages"),
2750     "right" => array(
2751     "messages",
2752     "messages_mes_retours",
2753     "messages_mes_retours_tab",
2754     ),
2755     "open" => array("index.php|messages_mes_retours[module=tab]", "index.php|messages_mes_retours[module=form]", ),
2756     );
2757     //
2758     $links[] = array(
2759     "href" => "".OM_ROUTE_TAB."&obj=messages_retours_ma_division",
2760     "class" => "messages_retours_ma_division",
2761     "title" => _("Messages de ma division"),
2762     "right" => array(
2763     "messages",
2764     "messages_retours_ma_division",
2765     "messages_retours_ma_division_tab",
2766     ),
2767     "open" => array("index.php|messages_retours_ma_division[module=tab]", "index.php|messages_retours_ma_division[module=form]", ),
2768     );
2769     //
2770     $links[] = array(
2771     "href" => "".OM_ROUTE_TAB."&obj=messages_tous_retours",
2772     "class" => "messages_tous_retours",
2773     "title" => _("Tous les messages"),
2774     "right" => array(
2775     "messages",
2776     "messages_tous_retours",
2777     "messages_tous_retours_tab",
2778     ),
2779     "open" => array("index.php|messages_tous_retours[module=tab]", "index.php|messages_tous_retours[module=form]", ),
2780     );
2781     // Catégorie COMMISSIONS
2782     $links[] = array(
2783     "class" => "category",
2784     "title" => _("commissions"),
2785     "right" => array(
2786     "commission_mes_retours",
2787     "commission_mes_retours_tab",
2788     "commission_retours_ma_division",
2789     "commission_retours_ma_division_tab",
2790     "commission_tous_retours",
2791     "commission_tous_retours_tab",
2792     ),
2793     );
2794     $links[] = array(
2795     "title" => "<hr/>",
2796     "right" => array(
2797     "commission_mes_retours",
2798     "commission_mes_retours_tab",
2799     "commission_retours_ma_division",
2800     "commission_retours_ma_division_tab",
2801     "commission_tous_retours",
2802     "commission_tous_retours_tab",
2803     ),
2804     );
2805     $links[] = array(
2806     "href" => "".OM_ROUTE_TAB."&obj=commission_mes_retours",
2807     "class" => "commission_mes_retours",
2808     "title" => _("Mes retours"),
2809     "right" => array(
2810     "commission_mes_retours",
2811     "commission_mes_retours_tab",
2812     ),
2813     "open" => array("index.php|commission_mes_retours[module=tab]", "index.php|commission_mes_retours[module=form]", ),
2814     );
2815     $links[] = array(
2816     "href" => "".OM_ROUTE_TAB."&obj=commission_retours_ma_division",
2817     "class" => "commission_retours_ma_division",
2818     "title" => _("Retours de ma division"),
2819     "right" => array(
2820     "commission_retours_ma_division",
2821     "commission_retours_ma_division_tab",
2822     ),
2823     "open" => array("index.php|commission_retours_ma_division[module=tab]", "index.php|commission_retours_ma_division[module=form]", ),
2824     );
2825     $links[] = array(
2826     "href" => "".OM_ROUTE_TAB."&obj=commission_tous_retours",
2827     "class" => "commission_tous_retours",
2828     "title" => _("Tous les retours"),
2829     "right" => array(
2830     "commission_tous_retours",
2831     "commission_tous_retours_tab",
2832     ),
2833     "open" => array("index.php|commission_tous_retours[module=tab]", "index.php|commission_tous_retours[module=form]", ),
2834     );
2835    
2836     //
2837     $rubrik['links'] = $links;
2838     //
2839     $menu[] = $rubrik;
2840     // }}}
2841    
2842     // {{{ Rubrique Contentieux
2843     //
2844     $rubrik = array(
2845     "title" => _("Contentieux"),
2846     "class" => "contentieux",
2847     "right" => "menu_contentieux",
2848     );
2849     //
2850     $links = array();
2851     //
2852     $links[] = array(
2853     "href" => OM_ROUTE_DASHBOARD,
2854     "class" => "tableau-de-bord",
2855     "title" => _("tableau de bord"),
2856     "right" => "menu_contentieux_dashboard",
2857     "open" => array("index.php|[module=dashboard]", "index.php|dossier_contentieux_contradictoire[module=tab]", "index.php|dossier_contentieux_ait[module=tab]", "index.php|dossier_contentieux_audience[module=tab]", "index.php|dossier_contentieux_clotures[module=tab]", "index.php|dossier_contentieux_inaffectes[module=tab]", "index.php|dossier_contentieux_alerte_visite[module=tab]", "index.php|dossier_contentieux_alerte_parquet[module=tab]", ),
2858     );
2859     // Catégorie Nouvelle demande
2860     $links[] = array(
2861     "class" => "category",
2862     "title" => _("Nouvelle demande"),
2863     "right" => array(
2864     "demande_nouveau_dossier_contentieux_ajouter",
2865     ),
2866     );
2867     $links[] = array(
2868     "href" => "".OM_ROUTE_FORM."&obj=demande_nouveau_dossier_contentieux&amp;action=0&amp;advs_id=&amp;tricol=&amp;valide=&amp;retour=tab&amp;new=",
2869     "class" => "nouveau-dossier",
2870     "title" => _("nouveau dossier"),
2871     "right" => array(
2872     "demande_nouveau_dossier_contentieux_ajouter",
2873     ),
2874     "open" => array("index.php|demande_nouveau_dossier_contentieux[module=form]",),
2875     );
2876     // Catégorie Recours
2877     $links[] = array(
2878     "class" => "category",
2879     "title" => _("Recours"),
2880     "right" => array(
2881     "dossier_contentieux_mes_recours", "dossier_contentieux_mes_recours_tab",
2882     "dossier_contentieux_tous_recours", "dossier_contentieux_tous_recours_tab",
2883     ),
2884     );
2885     //
2886     $links[] = array(
2887     "href" => "".OM_ROUTE_TAB."&obj=dossier_contentieux_mes_recours",
2888     "class" => "dossier_contentieux_mes_recours",
2889     "title" => _("Mes recours"),
2890     "right" => array("dossier_contentieux_mes_recours", "dossier_contentieux_mes_recours_tab", ),
2891     "open" => array("index.php|dossier_contentieux_mes_recours[module=tab]", "index.php|dossier_contentieux_mes_recours[module=form]", ),
2892     );
2893     $links[] = array(
2894     "href" => "".OM_ROUTE_TAB."&obj=dossier_contentieux_tous_recours",
2895     "class" => "dossier_contentieux_tous_recours",
2896     "title" => _("Tous les recours"),
2897     "right" => array("dossier_contentieux_tous_recours", "dossier_contentieux_tous_recours_tab", ),
2898     "open" => array("index.php|dossier_contentieux_tous_recours[module=tab]", "index.php|dossier_contentieux_tous_recours[module=form]", ),
2899     );
2900     // Catégorie Infractions
2901     $links[] = array(
2902     "class" => "category",
2903     "title" => _("Infractions"),
2904     "right" => array(
2905     "dossier_contentieux_mes_infractions", "dossier_contentieux_mes_infractions_tab",
2906     "dossier_contentieux_toutes_infractions", "dossier_contentieux_toutes_infractions_tab",
2907     ),
2908     );
2909     //
2910     $links[] = array(
2911     "href" => "".OM_ROUTE_TAB."&obj=dossier_contentieux_mes_infractions",
2912     "class" => "dossier_contentieux_mes_infractions",
2913     "title" => _("Mes infractions"),
2914     "right" => array("dossier_contentieux_mes_infractions", "dossier_contentieux_mes_infractions_tab", ),
2915     "open" => array("index.php|dossier_contentieux_mes_infractions[module=tab]", "index.php|dossier_contentieux_mes_infractions[module=form]", ),
2916     );
2917     //
2918     $links[] = array(
2919     "href" => "".OM_ROUTE_TAB."&obj=dossier_contentieux_toutes_infractions",
2920     "class" => "dossier_contentieux_toutes_infractions",
2921     "title" => _("Toutes les infractions"),
2922     "right" => array("dossier_contentieux_toutes_infractions", "dossier_contentieux_toutes_infractions_tab", ),
2923     "open" => array("index.php|dossier_contentieux_toutes_infractions[module=tab]", "index.php|dossier_contentieux_toutes_infractions[module=form]", ),
2924     );
2925     // Catégorie MESSAGES
2926     $links[] = array(
2927     "class" => "category",
2928     "title" => _("Messages"),
2929     "right" => array(
2930     "messages_contentieux",
2931     "messages_contentieux_mes_retours",
2932     "messages_contentieux_retours_ma_division",
2933     "messages_contentieux_tous_retours",
2934     ),
2935     );
2936     //
2937     $links[] = array(
2938     "title" => "<hr/>",
2939     "right" => array(
2940     "messages_contentieux",
2941     "messages_contentieux_mes_retours",
2942     "messages_contentieux_retours_ma_division",
2943     "messages_contentieux_tous_retours",
2944     ),
2945     );
2946     //
2947     $links[] = array(
2948     "href" => "".OM_ROUTE_TAB."&obj=messages_contentieux_mes_retours",
2949     "class" => "messages_contentieux_mes_retours",
2950     "title" => _("Mes messages"),
2951     "right" => array(
2952     "messages_contentieux",
2953     "messages_contentieux_mes_retours",
2954     "messages_contentieux_mes_retours_tab",
2955     ),
2956     "open" => array("index.php|messages_contentieux_mes_retours[module=tab]", "index.php|messages_contentieux_mes_retours[module=form]", ),
2957     );
2958     //
2959     $links[] = array(
2960     "href" => "".OM_ROUTE_TAB."&obj=messages_contentieux_retours_ma_division",
2961     "class" => "messages_contentieux_retours_ma_division",
2962     "title" => _("Messages de ma division"),
2963     "right" => array(
2964     "messages_contentieux",
2965     "messages_contentieux_retours_ma_division",
2966     "messages_contentieux_retours_ma_division_tab",
2967     ),
2968     "open" => array("index.php|messages_contentieux_retours_ma_division[module=tab]", "index.php|messages_contentieux_retours_ma_division[module=form]", ),
2969     );
2970     //
2971     $links[] = array(
2972     "href" => "".OM_ROUTE_TAB."&obj=messages_contentieux_tous_retours",
2973     "class" => "messages_contentieux_tous_retours",
2974     "title" => _("Tous les messages"),
2975     "right" => array(
2976     "messages_contentieux",
2977     "messages_contentieux_tous_retours",
2978     "messages_contentieux_tous_retours_tab",
2979     ),
2980     "open" => array("index.php|messages_contentieux_tous_retours[module=tab]", "index.php|messages_contentieux_tous_retours[module=form]", ),
2981     );
2982    
2983    
2984     //
2985     $rubrik['links'] = $links;
2986     //
2987     $menu[] = $rubrik;
2988     // }}}
2989    
2990     // {{{ Rubrique SUIVI
2991     //
2992     $rubrik = array(
2993     "title" => _("Suivi"),
2994     "class" => "suivi",
2995     "right" => "menu_suivi",
2996     );
2997     //
2998     $links = array();
2999     //
3000     $links[] = array(
3001     "href" => OM_ROUTE_DASHBOARD,
3002     "class" => "tableau-de-bord",
3003     "title" => _("tableau de bord"),
3004     "right" => "menu_suivi_dashboard",
3005     "open" => array("index.php|[module=dashboard]",),
3006     );
3007     $links[] = array(
3008     "class" => "category",
3009     "title" => _("suivi des pieces"),
3010     "right" => array(
3011     "instruction_suivi_retours_de_consultation", "instruction_suivi_mise_a_jour_des_dates",
3012     "instruction_suivi_envoi_lettre_rar", "instruction_suivi_bordereaux",
3013     "instruction_suivi_retours_de_consultation_consulter", "instruction_suivi_mise_a_jour_des_dates_consulter",
3014     "instruction_suivi_envoi_lettre_rar_consulter", "instruction_suivi_bordereaux_consulter",
3015     ),
3016     );
3017     //
3018     $links[] = array(
3019     "title" => "<hr/>",
3020     "right" => array(
3021     "instruction_suivi_retours_de_consultation", "instruction_suivi_mise_a_jour_des_dates",
3022     "instruction_suivi_envoi_lettre_rar", "instruction_suivi_bordereaux",
3023     "instruction_suivi_retours_de_consultation_consulter", "instruction_suivi_mise_a_jour_des_dates_consulter",
3024     "instruction_suivi_envoi_lettre_rar_consulter", "instruction_suivi_bordereaux_consulter",
3025     ),
3026     );
3027     //
3028     $links[] = array(
3029     "title" => "<hr/>",
3030     "right" => array(
3031     "instruction_suivi_mise_a_jour_des_dates", "instruction_suivi_mise_a_jour_des_dates_consulter",
3032     ),
3033     );
3034     //
3035     $links[] = array(
3036     "href" => "".OM_ROUTE_FORM."&obj=instruction_suivi_mise_a_jour_des_dates&action=170&idx=0",
3037     "class" => "suivi_mise_a_jour_des_dates",
3038     "title" => _("Mise a jour des dates"),
3039     "right" => array("instruction_suivi_mise_a_jour_des_dates", "instruction_suivi_mise_a_jour_des_dates_consulter", ),
3040     "open" => array("index.php|instruction_suivi_mise_a_jour_des_dates[module=tab]", "index.php|instruction_suivi_mise_a_jour_des_dates[module=form]"),
3041     );
3042     //
3043     $links[] = array(
3044     "title" => "<hr/>",
3045     "right" => array(
3046     "instruction_suivi_envoi_lettre_rar", "instruction_suivi_envoi_lettre_rar_consulter",
3047     ),
3048     );
3049     //
3050     $links[] = array(
3051     "href" => "".OM_ROUTE_FORM."&obj=instruction_suivi_envoi_lettre_rar&action=160&idx=0",
3052     "class" => "envoi_lettre_rar",
3053 softime 8989 "title" => _("envoi lettre AR"),
3054 softime 8329 "right" => array("instruction_suivi_envoi_lettre_rar", "instruction_suivi_envoi_lettre_rar_consulter", ),
3055     "open" => array("index.php|instruction_suivi_envoi_lettre_rar[module=tab]", "index.php|instruction_suivi_envoi_lettre_rar[module=form]"),
3056     );
3057     //
3058     $links[] = array(
3059     "title" => "<hr/>",
3060     "right" => array(
3061     "instruction_suivi_bordereaux", "instruction_suivi_bordereaux_consulter",
3062     ),
3063     );
3064     //
3065     $links[] = array(
3066     "href" => "".OM_ROUTE_FORM."&obj=instruction_suivi_bordereaux&action=150&idx=0",
3067     "class" => "bordereaux",
3068     "title" => _("Bordereaux"),
3069     "right" => array("instruction_suivi_bordereaux", "instruction_suivi_bordereaux_consulter", ),
3070     "open" => array("index.php|instruction_suivi_bordereaux[module=tab]", "index.php|instruction_suivi_bordereaux[module=form]"),
3071     );
3072     //
3073     $links[] = array(
3074     "href" => "".OM_ROUTE_FORM."&obj=bordereau_envoi_maire&action=190&idx=0",
3075     "class" => "bordereau_envoi_maire",
3076     "title" => _("Bordereau d'envoi au maire"),
3077     "right" => array("instruction_bordereau_envoi_maire","bordereau_envoi_maire"),
3078     "open" => array("index.php|bordereau_envoi_maire[module=form]",),
3079     );
3080     //
3081     $links[] = array(
3082     "class" => "category",
3083     "title" => _("Demandes d'avis"),
3084     "right" => array(
3085     "consultation_suivi_mise_a_jour_des_dates",
3086     "consultation_suivi_retours_de_consultation",
3087     ),
3088     );
3089     //
3090     $links[] = array(
3091     "href" => "".OM_ROUTE_FORM."&obj=consultation&idx=0&action=110",
3092     "class" => "demandes_avis_mise_a_jour_des_dates",
3093     "title" => _("Mise a jour des dates"),
3094     "right" => array("consultation_suivi_mise_a_jour_des_dates", ),
3095     "open" => array("index.php|consultation[module=form][action=110]"),
3096     );
3097     //
3098     $links[] = array(
3099     "href" => "".OM_ROUTE_FORM."&obj=consultation&idx=0&action=120",
3100     "class" => "consultation-retour",
3101     "title" => _("retours de consultation"),
3102     "right" => array("consultation_suivi_retours_de_consultation", ),
3103     "open" => array("index.php|consultation[module=form][action=120]", "index.php|consultation[module=form][action=100]", ),
3104     );
3105     // Catégorie COMMISSIONS
3106     $links[] = array(
3107     "class" => "category",
3108     "title" => _("commissions"),
3109     "right" => array(
3110     "commission",
3111     "commission_tab",
3112     "commission_demandes_passage",
3113     "commission_demandes_passage_tab",
3114     ),
3115     );
3116     //
3117     $links[] = array(
3118     "title" => "<hr/>",
3119     "right" => array(
3120     "commission",
3121     "commission_tab",
3122     "commission_demandes_passage",
3123     "commission_demandes_passage_tab",
3124     ),
3125     );
3126     //
3127     $links[] = array(
3128     "href" => "".OM_ROUTE_TAB."&obj=commission",
3129     "class" => "commissions",
3130     "title" => _("gestion"),
3131     "right" => array(
3132     "commission",
3133     ),
3134     "open" => array("index.php|commission[module=tab]", "index.php|commission[module=form]", ),
3135     );
3136     //
3137     $links[] = array(
3138     "href" => "".OM_ROUTE_TAB."&obj=commission_demandes_passage",
3139     "class" => "commissions-demande-passage",
3140     "title" => _("demandes"),
3141     "right" => array(
3142     "commission",
3143     "commission_demandes_passage",
3144     ),
3145     "open" => array("index.php|commission_demandes_passage[module=tab]", "index.php|commission_demandes_passage[module=form]", ),
3146     );
3147     //
3148     $rubrik['links'] = $links;
3149     //
3150     $menu[] = $rubrik;
3151     // }}}
3152    
3153     // {{{ Rubrique DEMANDES D'AVIS
3154     //
3155     $rubrik = array(
3156     "title" => _("Demandes d'avis"),
3157     "class" => "demande_avis",
3158     "right" => "menu_demande_avis",
3159     );
3160     //
3161     $links = array();
3162     //
3163     $links[] = array(
3164     "href" => OM_ROUTE_DASHBOARD,
3165     "class" => "tableau-de-bord",
3166     "title" => _("tableau de bord"),
3167     "right" => "menu_demande_avis_dashboard",
3168     "open" => array("index.php|[module=dashboard]",),
3169     );
3170     //
3171     $links[] = array(
3172     "title" => "<hr/>",
3173     "right" => array(
3174     "demande_avis_encours", "demande_avis_encours_tab",
3175     "demande_avis_passee", "demande_avis_passee_tab",
3176     "demande_avis", "demande_avis_tab",
3177     ),
3178     );
3179     //
3180     $links[] = array(
3181     "href" => "".OM_ROUTE_TAB."&obj=demande_avis_encours",
3182     "class" => "demande_avis_encours",
3183     "title" => _("Demandes en cours"),
3184     "right" => array("demande_avis_encours", "demande_avis_encours_tab", ),
3185     "open" => array("index.php|demande_avis_encours[module=tab]", "index.php|demande_avis_encours[module=form]", ),
3186     );
3187    
3188     $links[] = array(
3189     "href" => "".OM_ROUTE_TAB."&obj=demande_avis_passee",
3190     "class" => "demande_avis_passee",
3191     "title" => _("Demandes passees"),
3192     "right" => array("demande_avis_passee", "demande_avis_passee_tab", ),
3193     "open" => array("index.php|demande_avis_passee[module=tab]", "index.php|demande_avis_passee[module=form]", ),
3194     );
3195    
3196     $links[] = array(
3197     "href" => "".OM_ROUTE_TAB."&obj=demande_avis",
3198     "class" => "demande_avis",
3199     "title" => _("Exports"),
3200     "right" => array("demande_avis", "demande_avis_tab", ),
3201     "open" => array("index.php|demande_avis[module=tab]", "index.php|demande_avis[module=form]", ),
3202     );
3203    
3204     //
3205     $rubrik['links'] = $links;
3206     //
3207     $menu[] = $rubrik;
3208     // }}}
3209    
3210    
3211 softime 9245 // {{{ Rubrique NUMERISATION
3212     // Condition d'affichage de la rubrique
3213     if (isset($_SESSION['collectivite']) === true
3214     && $this->is_option_suivi_numerisation_enabled() === true) {
3215     //
3216     $rubrik = array(
3217     "title" => __("numerisation"),
3218     "class" => "numerisation",
3219     );
3220     //
3221     $links = array();
3222     //
3223     // --->
3224     $links[] = array(
3225     "class" => "category",
3226     "title" => __("traitement d'un lot"),
3227     "right" => array("num_dossier", "num_dossier_recuperation",
3228     "num_bordereau", "num_bordereau_tab", ) ,
3229     );
3230     //
3231     $links[] = array(
3232     "title" => "<hr/>",
3233     "right" => array("num_dossier_recuperation",
3234     "num_bordereau", "num_bordereau_tab", ) ,
3235     );
3236     //
3237     $links[] = array(
3238     "href" => OM_ROUTE_FORM."&obj=num_dossier_recuperation&idx=0&action=4",
3239     "class" => "num_dossier_recuperation",
3240     "title" => __("récupération du suivi des dossiers"),
3241     "right" => array( "num_dossier_recuperation", ) ,
3242     "open" => array( "index.php|num_dossier_recuperation[module=form]", ),
3243     );
3244     //
3245     $links[] = array(
3246     "title" => "<hr/>",
3247     "right" => array( "num_bordereau", "num_bordereau_tab", ) ,
3248     );
3249     //
3250     $links[] = array(
3251     "href" => OM_ROUTE_TAB."&obj=num_bordereau",
3252     "class" => "num_bordereau",
3253     "title" => __("tous les bordereaux"),
3254     "right" => array( "num_bordereau", "num_bordereau_tab", ),
3255     "open" => array("index.php|num_bordereau[module=tab]", "index.php|num_bordereau[module=form]", ),
3256     );
3257    
3258     //
3259     // --->
3260     $links[] = array(
3261     "class" => "category",
3262     "title" => __("suivi dossier"),
3263     "right" => array("num_dossier_recuperation",
3264     "num_dossier", "num_dossier_tab",
3265     "num_dossier_a_attribuer", "num_dossier_a_attribuer_tab",
3266     "num_dossier_a_numeriser", "num_dossier_a_numeriser_tab",
3267     "num_dossier_traite", "num_dossier_traite_tab",
3268     ) ,
3269     );
3270     //
3271     $links[] = array(
3272     "title" => "<hr/>",
3273     "right" => array("num_dossier_recuperation",
3274     "num_dossier", "num_dossier_tab",
3275     "num_dossier_a_attribuer", "num_dossier_a_attribuer_tab",
3276     "num_dossier_a_numeriser", "num_dossier_a_numeriser_tab",
3277     "num_dossier_traite", "num_dossier_traite_tab",
3278     ) ,
3279     );
3280     //
3281     $links[] = array(
3282     "href" => OM_ROUTE_TAB."&obj=num_dossier_a_attribuer",
3283     "class" => "num_dossier_a_attribuer",
3284     "title" => __("num_dossier_a_attribuer"),
3285     "right" => array("num_dossier", "num_dossier_a_attribuer", "num_dossier_a_attribuer_tab",),
3286     "open" => array("index.php|num_dossier_a_attribuer[module=tab]","index.php|num_dossier_a_attribuer[module=form]", ),
3287     );
3288     //
3289     $links[] = array(
3290     "href" => OM_ROUTE_TAB."&obj=num_dossier_a_numeriser",
3291     "class" => "num_dossier_a_numeriser",
3292     "title" => __("num_dossier_a_numeriser"),
3293     "right" => array("num_dossier", "num_dossier_a_numeriser", "num_dossier_a_numeriser_tab",),
3294     "open" => array("index.php|num_dossier_a_numeriser[module=tab]","index.php|num_dossier_a_numeriser[module=form]", ),
3295     );
3296     //
3297     $links[] = array(
3298     "href" => OM_ROUTE_TAB."&obj=num_dossier_traite",
3299     "class" => "num_dossier_traite",
3300     "title" => __("num_dossier_traite"),
3301     "right" => array("num_dossier", "num_dossier_traite", "num_dossier_traite_tab",),
3302     "open" => array("index.php|num_dossier_traite[module=tab]","index.php|num_dossier_traite[module=form]", ),
3303     );
3304     //
3305     $links[] = array(
3306     "title" => "<hr/>",
3307     "right" => array( "num_dossier", "num_dossier_tab",) ,
3308     );
3309     //
3310     $links[] = array(
3311     "href" => OM_ROUTE_TAB."&obj=num_dossier",
3312     "class" => "num_dossier",
3313     "title" => __("tous les dossiers"),
3314     "right" => array("num_dossier", "num_dossier_tab",),
3315     "open" => array("index.php|num_dossier[module=tab]", "index.php|num_dossier[module=form]", ),
3316     );
3317    
3318     //
3319     $rubrik['links'] = $links;
3320     //
3321     $menu["menu-rubrik-numerisation"] = $rubrik;
3322     // }}}
3323     }
3324    
3325    
3326 softime 8329 // Commentaire de la rubrique EXPORT qui n'est pas prévue d'être opérationnelle
3327     // dans cette version
3328     // {{{ Rubrique EXPORT
3329     //
3330     $rubrik = array(
3331     "title" => _("export / import"),
3332     "class" => "edition",
3333     "right" => "menu_export",
3334     );
3335     //
3336     $links = array();
3337    
3338     //
3339     $links[] = array(
3340     "href" => "".OM_ROUTE_FORM."&obj=sitadel&action=6&idx=0",
3341     "class" => "sitadel",
3342     "title" => _("export sitadel"),
3343     "right" => "export_sitadel",
3344     "open" => "index.php|sitadel[module=form]",
3345     );
3346     //
3347     $links[] = array(
3348     "href" => "../app/versement_archives.php",
3349     "class" => "versement_archives",
3350     "title" => _("versement aux archives"),
3351     "right" => "versement_archives",
3352     "open" => "versement_archives.php|",
3353     );
3354     //
3355     $links[] = array(
3356     "href" => "../app/reqmo_pilot.php",
3357     "class" => "reqmo",
3358     "title" => _("statistiques a la demande"),
3359     "right" => "reqmo_pilot",
3360     "open" => "reqmo_pilot.php|",
3361     );
3362     //
3363 softime 9245 $links[] = array(
3364     "href" => OM_ROUTE_MODULE_REQMO,
3365     "class" => "reqmo",
3366     "title" => __("requetes memorisees"),
3367     "right" => "reqmo",
3368     "open" => array(
3369     "reqmo.php|",
3370     "index.php|[module=reqmo]",
3371     ),
3372     );
3373     //
3374 softime 8329 $rubrik['links'] = $links;
3375     //
3376     $menu[] = $rubrik;
3377     // }}}
3378    
3379    
3380     // {{{ Rubrique PARAMETRAGE
3381     //
3382     $rubrik = array(
3383     "title" => _("parametrage dossiers"),
3384     "class" => "parametrage-dossier",
3385     "right" => "menu_parametrage",
3386     );
3387     //
3388     $links = array();
3389     //
3390     $links[] = array(
3391     "class" => "category",
3392     "title" => _("dossiers"),
3393     "right" => array(
3394     "dossier_autorisation_type", "dossier_autorisation_type_tab",
3395     "dossier_autorisation_type_detaille",
3396     "dossier_autorisation_type_detaille_tab", "dossier_instruction_type",
3397     "dossier_instruction_type_tab", "cerfa", "cerfa_tab",
3398     ),
3399     );
3400     //
3401     $links[] = array(
3402     "title" => "<hr/>",
3403     "right" => array(
3404     "cerfa", "cerfa_tab",
3405     ),
3406     );
3407     //
3408     $links[] = array(
3409     "href" => "".OM_ROUTE_TAB."&obj=cerfa",
3410     "class" => "cerfa",
3411     "title" => _("cerfa"),
3412     "right" => array("cerfa", "cerfa_tab", ),
3413     "open" => array("index.php|cerfa[module=tab]", "index.php|cerfa[module=form]", ),
3414     );
3415     //
3416     $links[] = array(
3417     "title" => "<hr/>",
3418     "right" => array(
3419     "dossier_autorisation_type", "dossier_autorisation_type_tab",
3420     "dossier_autorisation_type_detaille",
3421     "dossier_autorisation_type_detaille_tab", "dossier_instruction_type",
3422     "dossier_instruction_type_tab",
3423     ),
3424     );
3425     //
3426     $links[] = array(
3427     "href" => "".OM_ROUTE_TAB."&obj=dossier_autorisation_type",
3428     "class" => "dossier_autorisation_type",
3429     "title" => _("type DA"),
3430     "right" => array("dossier_autorisation_type", "dossier_autorisation_type_tab", ),
3431     "open" => array("index.php|dossier_autorisation_type[module=tab]", "index.php|dossier_autorisation_type[module=form]", ),
3432     );
3433     //
3434     $links[] = array(
3435     "href" => "".OM_ROUTE_TAB."&obj=dossier_autorisation_type_detaille",
3436     "class" => "dossier_autorisation_type_detaille",
3437     "title" => _("type DA detaille"),
3438     "right" => array("dossier_autorisation_type_detaille", "dossier_autorisation_type_detaille_tab", ),
3439     "open" => array("index.php|dossier_autorisation_type_detaille[module=tab]", "index.php|dossier_autorisation_type_detaille[module=form]", ),
3440     );
3441     //
3442     $links[] = array(
3443     "href" => "".OM_ROUTE_TAB."&obj=dossier_instruction_type",
3444     "class" => "dossier_instruction_type",
3445     "title" => _("type DI"),
3446     "right" => array("dossier_instruction_type", "dossier_instruction_type_tab", ),
3447     "open" => array("index.php|dossier_instruction_type[module=tab]", "index.php|dossier_instruction_type[module=form]", ),
3448     );
3449     //
3450     $links[] = array(
3451     "title" => "<hr/>",
3452     "right" => array(
3453     "contrainte", "contrainte_tab",
3454     "contrainte_souscategorie", "contrainte_souscategorie_tab",
3455     "contrainte_categorie", "contrainte_categorie_tab"
3456     ),
3457     );
3458     //
3459     $links[] = array(
3460     "href" => "".OM_ROUTE_TAB."&obj=contrainte",
3461     "class" => "contrainte",
3462     "title" => _("contrainte"),
3463     "right" => array("contrainte", "contrainte_tab", ),
3464     "open" => array(
3465     "index.php|contrainte[module=tab]",
3466     "index.php|contrainte[module=form][action=0]",
3467     "index.php|contrainte[module=form][action=1]",
3468     "index.php|contrainte[module=form][action=2]",
3469     "index.php|contrainte[module=form][action=3]",
3470     ),
3471     );
3472     //
3473     $links[] = array(
3474     "class" => "category",
3475     "title" => _("demandes"),
3476     "right" => array(
3477     "demande_type",
3478     "demande_type_tab", "demande_nature", "demande_nature_tab",
3479     ),
3480     );
3481     //
3482     $links[] = array(
3483     "title" => "<hr/>",
3484     "right" => array(
3485     "demande_type",
3486     "demande_type_tab", "demande_nature", "demande_nature_tab",
3487     ),
3488     );
3489     //
3490     $links[] = array(
3491     "href" => "".OM_ROUTE_TAB."&obj=demande_nature",
3492     "class" => "demande_nature",
3493     "title" => _("nature"),
3494     "right" => array("demande_nature", "demande_nature_tab", ),
3495     "open" => array("index.php|demande_nature[module=tab]", "index.php|demande_nature[module=form]", ),
3496     );
3497     //
3498     $links[] = array(
3499     "href" => "".OM_ROUTE_TAB."&obj=demande_type",
3500     "class" => "demande_type",
3501     "title" => _("type"),
3502     "right" => array("demande_type", "demande_type_tab",),
3503     "open" => array("index.php|demande_type[module=tab]", "index.php|demande_type[module=form]", ),
3504     );
3505     //
3506     $links[] = array(
3507     "class" => "category",
3508     "title" => _("workflows"),
3509     "right" => array(
3510     "workflows",
3511     "action", "action_tab", "etat",
3512     "etat_tab", "evenement", "evenement_tab", "bible", "bible_tab", "avis_decision",
3513     "avis_decision_tab", "avis_consultation", "avis_consultation_tab",
3514     ),
3515     );
3516     //
3517     $links[] = array(
3518     "title" => "<hr/>",
3519     "right" => array(
3520     "workflows",
3521     "action", "action_tab", "etat",
3522     "etat_tab", "evenement", "evenement_tab", "bible", "bible_tab", "avis_decision",
3523     "avis_decision_tab", "avis_consultation", "avis_consultation_tab",
3524     ),
3525     );
3526     //
3527     $links[] = array(
3528     "href" => "../app/workflows.php",
3529     "class" => "workflows",
3530     "title" => _("workflows"),
3531     "right" => array("workflows", ),
3532     "open" => array("workflows.php|", ),
3533     );
3534     //
3535     $links[] = array(
3536     "title" => "<hr/>",
3537     "right" => array(
3538     "evenement", "evenement_tab",
3539     ),
3540     );
3541     //
3542     $links[] = array(
3543     "href" => "".OM_ROUTE_TAB."&obj=evenement",
3544     "class" => "evenement",
3545     "title" => _("evenement"),
3546     "right" => array("evenement", "evenement_tab", ),
3547     "open" => array("index.php|evenement[module=tab]", "index.php|evenement[module=form]", ),
3548     );
3549     //
3550     $links[] = array(
3551     "title" => "<hr/>",
3552     "right" => array(
3553     "action", "action_tab", "etat",
3554     "etat_tab", "avis_decision",
3555     "avis_decision_tab",
3556     ),
3557     );
3558     //
3559     $links[] = array(
3560     "href" => "".OM_ROUTE_TAB."&obj=etat",
3561     "class" => "workflow-etat",
3562     "title" => _("etat"),
3563     "right" => array("etat", "etat_tab", ),
3564     "open" => array("index.php|etat[module=tab]", "index.php|etat[module=form]", ),
3565     );
3566     //
3567     $links[] = array(
3568     "href" => "".OM_ROUTE_TAB."&obj=avis_decision",
3569     "class" => "avis_decision",
3570     "title" => _("avis decision"),
3571     "right" => array("avis_decision", "avis_decision_tab", ),
3572     "open" => array("index.php|avis_decision[module=tab]", "index.php|avis_decision[module=form]", ),
3573     );
3574     //
3575     $links[] = array(
3576     "href" => "".OM_ROUTE_TAB."&obj=action",
3577     "class" => "action",
3578     "title" => _("action"),
3579     "right" => array("action", "action_tab", ),
3580     "open" => array("index.php|action[module=tab]", "index.php|action[module=form]", ),
3581     );
3582     //
3583     $links[] = array(
3584     "title" => "<hr/>",
3585     "right" => array(
3586     "bible", "bible_tab",
3587     ),
3588     );
3589     //
3590     $links[] = array(
3591     "href" => "".OM_ROUTE_TAB."&obj=bible",
3592     "class" => "bible",
3593     "title" => _("bible"),
3594     "right" => array("bible", "bible_tab", ),
3595     "open" => array("index.php|bible[module=tab]", "index.php|bible[module=form]", ),
3596     );
3597     //
3598     $links[] = array(
3599     "class" => "category",
3600     "title" => _("editions"),
3601     "right" => array(
3602     "om_etat", "om_etat_tab", "om_sousetat", "om_sousetat_tab",
3603     "om_lettretype", "om_lettretype_tab", "om_requete", "om_requete_tab",
3604     "om_logo", "om_logo_tab",
3605     ),
3606     );
3607     //
3608     $links[] = array(
3609     "title" => "<hr/>",
3610     "right" => array(
3611     "om_etat", "om_etat_tab", "om_lettretype", "om_lettretype_tab",
3612     ),
3613     );
3614     //
3615     $links[] = array(
3616     "href" => "".OM_ROUTE_TAB."&obj=om_etat",
3617     "class" => "om_etat",
3618     "title" => _("om_etat"),
3619     "right" => array("om_etat", "om_etat_tab", ),
3620     "open" => array("index.php|om_etat[module=tab]", "index.php|om_etat[module=form]", ),
3621     );
3622     //
3623     $links[] = array(
3624     "href" => "".OM_ROUTE_TAB."&obj=om_lettretype",
3625     "class" => "om_lettretype",
3626     "title" => _("om_lettretype"),
3627     "right" => array("om_lettretype", "om_lettretype_tab"),
3628     "open" => array("index.php|om_lettretype[module=tab]", "index.php|om_lettretype[module=form]", ),
3629     );
3630     //
3631     $links[] = array(
3632     "title" => "<hr/>",
3633     "right" => array(
3634     "om_logo", "om_logo_tab",
3635     ),
3636     );
3637     //
3638     $links[] = array(
3639     "href" => "".OM_ROUTE_TAB."&obj=om_logo",
3640     "class" => "om_logo",
3641     "title" => _("om_logo"),
3642     "right" => array("om_logo", "om_logo_tab", ),
3643     "open" => array("index.php|om_logo[module=tab]", "index.php|om_logo[module=form]", ),
3644     );
3645     //
3646     $rubrik['links'] = $links;
3647     //
3648     $menu[] = $rubrik;
3649     // }}}
3650    
3651     // {{{ Rubrique PARAMETRAGE
3652     //
3653     $rubrik = array(
3654     "title" => _("parametrage"),
3655     "class" => "parametrage",
3656     "right" => "menu_parametrage",
3657     );
3658     //
3659     $links = array();
3660     //
3661     $links[] = array(
3662     "href" => "".OM_ROUTE_TAB."&obj=civilite",
3663     "class" => "civilite",
3664     "title" => _("civilite"),
3665     "right" => array("civilite", "civilite_tab", ),
3666     "open" => array("index.php|civilite[module=tab]", "index.php|civilite[module=form]", ),
3667     );
3668     //
3669     $links[] = array(
3670     "href" => "".OM_ROUTE_TAB."&obj=arrondissement",
3671     "class" => "arrondissement",
3672     "title" => _("arrondissement"),
3673     "right" => array("arrondissement", "arrondissement_tab", ),
3674     "open" => array("index.php|arrondissement[module=tab]", "index.php|arrondissement[module=form]", ),
3675     );
3676     //
3677     $links[] = array(
3678     "href" => "".OM_ROUTE_TAB."&obj=quartier",
3679     "class" => "quartier",
3680     "title" => _("quartier"),
3681     "right" => array("quartier", "quartier_tab", ),
3682     "open" => array("index.php|quartier[module=tab]", "index.php|quartier[module=form]", ),
3683     );
3684     //
3685     $links[] = array(
3686     "class" => "category",
3687     "title" => _("Organisation"),
3688     "right" => array(
3689     "direction", "direction_tab", "division", "division_tab", "instructeur_qualite",
3690     "instructeur_qualite_tab", "instructeur", "instructeur_tab", "groupe",
3691     "groupe_tab", "genre", "genre_tab", "signataire_arrete", "signataire_arrete_tab",
3692     "taxe_amenagement_tab", "taxe_amenagement",
3693     ),
3694     );
3695     $links[] = array(
3696     "title" => "<hr/>",
3697     "right" => array(
3698     "direction", "direction_tab", "division", "division_tab", "instructeur_qualite",
3699     "instructeur_qualite_tab", "instructeur", "instructeur_tab", "groupe",
3700     "groupe_tab", "genre", "genre_tab", "signataire_arrete", "signataire_arrete_tab",
3701     "taxe_amenagement_tab", "taxe_amenagement",
3702     ),
3703     );
3704     //
3705     $links[] = array(
3706     "href" => "".OM_ROUTE_TAB."&obj=genre",
3707     "class" => "genre",
3708     "title" => _("genre"),
3709     "right" => array("genre", "genre_tab", ),
3710     "open" => array("index.php|genre[module=tab]", "index.php|genre[module=form]", ),
3711     );
3712     //
3713     $links[] = array(
3714     "href" => "".OM_ROUTE_TAB."&obj=groupe",
3715     "class" => "groupe",
3716     "title" => _("groupe"),
3717     "right" => array("groupe", "groupe_tab", ),
3718     "open" => array("index.php|groupe[module=tab]", "index.php|groupe[module=form]", ),
3719     );
3720     //
3721     $links[] = array(
3722     "href" => "".OM_ROUTE_TAB."&obj=direction",
3723     "class" => "direction",
3724     "title" => _("direction"),
3725     "right" => array("direction", "direction_tab", ),
3726     "open" => array("index.php|direction[module=tab]", "index.php|direction[module=form]", ),
3727     );
3728     //
3729     $links[] = array(
3730     "href" => "".OM_ROUTE_TAB."&obj=division",
3731     "class" => "division",
3732     "title" => _("division"),
3733     "right" => array("division", "division_tab", ),
3734     "open" => array("index.php|division[module=tab]", "index.php|division[module=form]", ),
3735     );
3736     //
3737     $links[] = array(
3738     "href" => "".OM_ROUTE_TAB."&obj=instructeur_qualite",
3739     "class" => "instructeur_qualite",
3740     "title" => _("instructeur_qualite"),
3741     "right" => array("instructeur_qualite", "instructeur_qualite_tab", ),
3742     "open" => array("index.php|instructeur_qualite[module=tab]", "index.php|instructeur_qualite[module=form]", ),
3743     );
3744     //
3745     $links[] = array(
3746     "href" => "".OM_ROUTE_TAB."&obj=instructeur",
3747     "class" => "instructeur",
3748     "title" => _("instructeur"),
3749     "right" => array("instructeur", "instructeur_tab", ),
3750     "open" => array("index.php|instructeur[module=tab]", "index.php|instructeur[module=form]", ),
3751     );
3752     //
3753     $links[] = array(
3754     "href" => "".OM_ROUTE_TAB."&obj=signataire_arrete",
3755     "class" => "signataire_arrete",
3756     "title" => _("signataire arrete"),
3757     "right" => array("signataire_arrete", "signataire_arrete", ),
3758     "open" => array("index.php|signataire_arrete[module=tab]", "index.php|signataire_arrete[module=form]", ),
3759     );
3760     //
3761     $links[] = array(
3762     "href" => "".OM_ROUTE_TAB."&obj=taxe_amenagement",
3763     "class" => "taxe_amenagement",
3764     "title" => _("taxes"),
3765     "right" => array("taxe_amenagement", "taxe_amenagement_tab", ),
3766     "open" => array("index.php|taxe_amenagement[module=tab]", "index.php|taxe_amenagement[module=form]", ),
3767     );
3768     //
3769     $links[] = array(
3770     "class" => "category",
3771     "title" => _("gestion des commissions"),
3772     "right" => array(
3773     "commission_type", "commission_type_tab",
3774     ),
3775     );
3776     //
3777     $links[] = array(
3778     "title" => "<hr/>",
3779     "right" => array(
3780     "commission_type", "commission_type_tab",
3781     ),
3782     );
3783     //
3784     $links[] = array(
3785     "href" => "".OM_ROUTE_TAB."&obj=commission_type",
3786     "class" => "commission-type",
3787     "title" => _("commission_type"),
3788     "right" => array("commission_type", "commission_type_tab", ),
3789     "open" => array("index.php|commission_type[module=tab]", "index.php|commission_type[module=form]", ),
3790     );
3791     //
3792     $links[] = array(
3793     "class" => "category",
3794     "title" => _("gestion des consultations"),
3795     "right" => array(
3796     "avis_consultation", "avis_consultation_tab", "service", "service_tab",
3797     "service_categorie", "service_categorie_tab",
3798     "lien_service_service_categorie", "lien_service_service_categorie_tab",
3799     ),
3800     );
3801     //
3802     $links[] = array(
3803     "title" => "<hr/>",
3804     "right" => array(
3805     "avis_consultation", "avis_consultation_tab", "service", "service_tab",
3806     "service_categorie", "service_categorie_tab",
3807     "lien_service_service_categorie", "lien_service_service_categorie_tab",
3808     ),
3809     );
3810     //
3811     $links[] = array(
3812     "href" => "".OM_ROUTE_TAB."&obj=avis_consultation",
3813     "class" => "avis_consultation",
3814     "title" => _("avis consultation"),
3815     "right" => array("avis_consultation", "avis_consultation_tab", ),
3816     "open" => array("index.php|avis_consultation[module=tab]", "index.php|avis_consultation[module=form]", ),
3817     );
3818     //
3819     $links[] = array(
3820     "href" => "".OM_ROUTE_TAB."&obj=service",
3821     "class" => "service",
3822     "title" => _("service"),
3823     "right" => array("service", "service_tab", ),
3824     "open" => array("index.php|service[module=tab]", "index.php|service[module=form]", ),
3825     );
3826     $links[] = array(
3827     "href" => "".OM_ROUTE_TAB."&obj=service_categorie",
3828     "class" => "service_categorie",
3829     "title" => _("thematique des services"),
3830     "right" => array("service_categorie", "service_categorie_tab", ),
3831     "open" => array("index.php|service_categorie[module=tab]", "index.php|service_categorie[module=form]", ),
3832     );
3833     //
3834     $links[] = array(
3835     "class" => "category",
3836     "title" => _("Gestion des dossiers"),
3837     "right" => array(
3838     "dossier_autorisation_type", "dossier_autorisation_type_tab",
3839     "dossier_autorisation_type_detaille",
3840     "dossier_autorisation_type_detaille_tab", "dossier_instruction_type",
3841     "dossier_instruction_type_tab",
3842     "autorite_competente", "autorite_competente_tab",
3843     "affectation_automatique", "affectation_automatique_tab",
3844     ),
3845     );
3846     //
3847     $links[] = array(
3848     "title" => "<hr/>",
3849     "right" => array(
3850     "dossier_autorisation_type", "dossier_autorisation_type_tab",
3851     "dossier_autorisation_type_detaille",
3852     "dossier_autorisation_type_detaille_tab", "dossier_instruction_type",
3853     "dossier_instruction_type_tab",
3854     "autorite_competente", "autorite_competente_tab",
3855     "affectation_automatique", "affectation_automatique_tab",
3856    
3857     ),
3858     );
3859     //
3860     $links[] = array(
3861     "href" => "".OM_ROUTE_TAB."&obj=etat_dossier_autorisation",
3862     "class" => "etat_dossier_autorisation",
3863     "title" => _("etat dossiers autorisations"),
3864     "right" => array("etat_dossier_autorisation", "etat_dossier_autorisation_tab", ),
3865     "open" => array("index.php|etat_dossier_autorisation[module=tab]", "index.php|etat_dossier_autorisation[module=form]", ),
3866     );
3867     //
3868     $links[] = array(
3869     "href" => "".OM_ROUTE_TAB."&obj=affectation_automatique",
3870     "class" => "affectation_automatique",
3871     "title" => _("affectation automatique"),
3872     "right" => array("affectation_automatique", "affectation_automatique_tab", ),
3873     "open" => array("index.php|affectation_automatique[module=tab]", "index.php|affectation_automatique[module=form]", ),
3874     );
3875     //
3876     $links[] = array(
3877     "href" => "".OM_ROUTE_TAB."&obj=autorite_competente",
3878     "class" => "autorite_competente",
3879     "title" => _("autorite")." "._("competente"),
3880     "right" => array("autorite_competente", "autorite_competente_tab", ),
3881     "open" => array("index.php|autorite_competente[module=tab]", "index.php|autorite_competente[module=form]", ),
3882     );
3883     //
3884     $links[] = array(
3885     "href" => "".OM_ROUTE_TAB."&obj=phase",
3886     "class" => "phase",
3887     "title" => _("phase"),
3888     "right" => array("phase", "phase_tab", ),
3889     "open" => array("index.php|phase[module=tab]", "index.php|phase[module=form]", ),
3890     );
3891    
3892     //Gestion des pièces
3893     $links[] = array(
3894     "class" => "category",
3895     "title" => _("Gestion des pièces"),
3896     "right" => array(
3897     "document_numerise_type_categorie", "document_numerise_type_categorie_tab",
3898     "document_numerise_type",
3899     "document_numerise_type_tab", "document_numerise_traitement_metadonnees",
3900     "document_numerise_traitement_metadonnees_executer",
3901     ),
3902     );
3903     //
3904     $links[] = array(
3905     "title" => "<hr/>",
3906     "right" => array(
3907     "document_numerise_type_categorie", "document_numerise_type_categorie_tab",
3908     "document_numerise_type",
3909     "document_numerise_type_tab", "document_numerise_traitement_metadonnees",
3910     "document_numerise_traitement_metadonnees_executer",
3911     ),
3912     );
3913     //
3914     $links[] = array(
3915     "href" => "".OM_ROUTE_TAB."&obj=document_numerise_type_categorie",
3916     "class" => "document_numerise_type_categorie",
3917     "title" => _("Catégorie des pièces"),
3918     "right" => array(
3919     "document_numerise_type_categorie",
3920     "document_numerise_type_categorie_tab",
3921     ),
3922     "open" => array(
3923     "index.php|document_numerise_type_categorie[module=tab]",
3924     "index.php|document_numerise_type_categorie[module=form]",
3925     ),
3926     );
3927     //
3928     $links[] = array(
3929     "href" => "".OM_ROUTE_TAB."&obj=document_numerise_type",
3930     "class" => "document_numerise_type",
3931     "title" => _("Type des pièces"),
3932     "right" => array(
3933     "document_numerise_type",
3934     "document_numerise_type_tab",
3935     ),
3936     "open" => array(
3937     "index.php|document_numerise_type[module=tab]",
3938     "index.php|document_numerise_type[module=form][action=0]",
3939     "index.php|document_numerise_type[module=form][action=1]",
3940     "index.php|document_numerise_type[module=form][action=2]",
3941     "index.php|document_numerise_type[module=form][action=3]",
3942     ),
3943     );
3944     //
3945     $links[] = array(
3946     "href" => "".OM_ROUTE_FORM."&obj=document_numerise_traitement_metadonnees&action=100&idx=0",
3947     "class" => "document_numerise_traitement_metadonnees",
3948     "title" => _("Mise à jour des métadonnées"),
3949     "description" => _("Mettre à jour les métadonnées de tous les documents numérisés."),
3950     "right" => array(
3951     "document_numerise_traitement_metadonnees",
3952     "document_numerise_traitement_metadonnees_executer",
3953     ),
3954     "open" => array("index.php|document_numerise_traitement_metadonnees[module=form]", ),
3955     );
3956    
3957     // Gestion des contentieux
3958     $links[] = array(
3959     "class" => "category",
3960     "title" => _("Gestion des contentieux"),
3961     "right" => array(
3962     "objet_recours", "objet_recours_tab", "moyen_souleve", "moyen_souleve_tab",
3963     "moyen_retenu_juge", "moyen_retenu_juge_tab",
3964     ),
3965     );
3966     //
3967     $links[] = array(
3968     "title" => "<hr/>",
3969     "right" => array(
3970     "objet_recours", "objet_recours_tab", "moyen_souleve", "moyen_souleve_tab",
3971     "moyen_retenu_juge", "moyen_retenu_juge_tab",
3972     ),
3973     );
3974     //
3975     $links[] = array(
3976     "href" => "".OM_ROUTE_TAB."&obj=objet_recours",
3977     "class" => "objet_recours",
3978     "title" => _("objet_recours"),
3979     "right" => array(
3980     "objet_recours", "objet_recours_tab",
3981     ),
3982     "open" => array(
3983     "index.php|objet_recours[module=tab]", "index.php|objet_recours[module=form]",
3984     ),
3985     );
3986     //
3987     $links[] = array(
3988     "href" => "".OM_ROUTE_TAB."&obj=moyen_souleve",
3989     "class" => "moyen_souleve",
3990     "title" => _("moyen_souleve"),
3991     "right" => array(
3992     "moyen_souleve", "moyen_souleve_tab",
3993     ),
3994     "open" => array(
3995     "index.php|moyen_souleve[module=tab]", "index.php|moyen_souleve[module=form]",
3996     ),
3997     );
3998     //
3999     $links[] = array(
4000     "href" => "".OM_ROUTE_TAB."&obj=moyen_retenu_juge",
4001     "class" => "moyen_retenu_juge",
4002     "title" => _("moyen_retenu_juge"),
4003     "right" => array(
4004     "moyen_retenu_juge", "moyen_retenu_juge_tab",
4005     ),
4006     "open" => array(
4007     "index.php|moyen_retenu_juge[module=tab]", "index.php|moyen_retenu_juge[module=form]",
4008     ),
4009     );
4010    
4011     //
4012     $rubrik['links'] = $links;
4013     //
4014     $menu[] = $rubrik;
4015     // }}}
4016    
4017     // {{{ Rubrique ADMINISTRATION
4018     //
4019     $rubrik = array(
4020     "title" => _("administration"),
4021     "class" => "administration",
4022     "right" => "menu_administration",
4023     );
4024     //
4025     $links = array();
4026     //
4027     $links[] = array(
4028     "href" => "".OM_ROUTE_TAB."&obj=om_collectivite",
4029     "class" => "collectivite",
4030     "title" => _("om_collectivite"),
4031     "right" => array("om_collectivite", "om_collectivite_tab", ),
4032     "open" => array("index.php|om_collectivite[module=tab]", "index.php|om_collectivite[module=form]", ),
4033     );
4034     //
4035     $links[] = array(
4036     "href" => "".OM_ROUTE_TAB."&obj=om_parametre",
4037     "class" => "parametre",
4038     "title" => _("om_parametre"),
4039     "right" => array("om_parametre", "om_parametre_tab", ),
4040     "open" => array("index.php|om_parametre[module=tab]", "index.php|om_parametre[module=form]", ),
4041     );
4042     //
4043     $links[] = array(
4044     "class" => "category",
4045     "title" => _("gestion des utilisateurs"),
4046     "right" => array(
4047     "om_utilisateur", "om_utilisateur_tab", "om_profil", "om_profil_tab",
4048     "om_droit", "om_droit_tab", "directory",
4049     ),
4050     );
4051     //
4052     $links[] = array(
4053     "title" => "<hr/>",
4054     "right" => array(
4055     "om_utilisateur", "om_utilisateur_tab", "om_profil", "om_profil_tab",
4056     "om_droit", "om_droit_tab",
4057     ),
4058     );
4059     //
4060     $links[] = array(
4061     "href" => "".OM_ROUTE_TAB."&obj=om_profil",
4062     "class" => "profil",
4063     "title" => _("om_profil"),
4064     "right" => array("om_profil", "om_profil_tab", ),
4065     "open" => array("index.php|om_profil[module=tab]", "index.php|om_profil[module=form]", ),
4066     );
4067     //
4068     $links[] = array(
4069     "href" => "".OM_ROUTE_TAB."&obj=om_droit",
4070     "class" => "droit",
4071     "title" => _("om_droit"),
4072     "right" => array("om_droit", "om_droit_tab", ),
4073     "open" => array("index.php|om_droit[module=tab]", "index.php|om_droit[module=form]", ),
4074     );
4075     //
4076     $links[] = array(
4077     "href" => "".OM_ROUTE_TAB."&obj=om_utilisateur",
4078     "class" => "utilisateur",
4079     "title" => _("om_utilisateur"),
4080     "right" => array("om_utilisateur", "om_utilisateur_tab", ),
4081     "open" => array(
4082     "index.php|om_utilisateur[module=tab]",
4083     "index.php|om_utilisateur[module=form][action=0]",
4084     "index.php|om_utilisateur[module=form][action=1]",
4085     "index.php|om_utilisateur[module=form][action=2]",
4086     "index.php|om_utilisateur[module=form][action=3]",
4087     ),
4088     );
4089     //
4090     $links[] = array(
4091     "title" => "<hr/>",
4092     "right" => array("om_utilisateur", "om_utilisateur_synchroniser", ),
4093     "parameters" => array("isDirectoryOptionEnabled" => true, ),
4094     );
4095     //
4096     $links[] = array(
4097     "href" => "".OM_ROUTE_FORM."&obj=om_utilisateur&idx=0&action=11",
4098     "class" => "annuaire",
4099     "title" => _("annuaire"),
4100     "right" => array("om_utilisateur", "om_utilisateur_synchroniser", ),
4101     "open" => array("index.php|om_utilisateur[module=form][action=11]", ),
4102     "parameters" => array("isDirectoryOptionEnabled" => true, ),
4103     );
4104     //
4105     $links[] = array(
4106     "class" => "category",
4107     "title" => _("tableaux de bord"),
4108     "right" => array(
4109     "om_widget", "om_widget_tab", "om_dashboard",
4110     ),
4111     );
4112     //
4113     $links[] = array(
4114     "title" => "<hr/>",
4115     "right" => array(
4116     "om_widget", "om_widget_tab", "om_dashboard",
4117     ),
4118     );
4119     //
4120     $links[] = array(
4121     "href" => "".OM_ROUTE_TAB."&obj=om_widget",
4122     "class" => "om_widget",
4123     "title" => _("om_widget"),
4124     "right" => array("om_widget", "om_widget_tab", ),
4125     "open" => array("index.php|om_widget[module=tab]", "index.php|om_widget[module=form]", ),
4126     );
4127     //
4128     $links[] = array(
4129     "href" => "".OM_ROUTE_FORM."&obj=om_dashboard&amp;idx=0&amp;action=4",
4130     "class" => "om_dashboard",
4131     "title" => _("composition"),
4132     "right" => array("om_dashboard", ),
4133     "open" => array("index.php|om_dashboard[module=form][action=4]", ),
4134     );
4135     //
4136     $links[] = array(
4137     "class" => "category",
4138     "title" => _("sig"),
4139     "right" => array(
4140     "om_sig_map", "om_sig_map_tab", "om_sig_flux", "om_sig_flux_tab", "om_sig_extent", "om_sig_extent_tab",
4141     ),
4142     "parameters" => array("option_localisation" => "sig_interne", ),
4143     );
4144     //
4145     $links[] = array(
4146     "title" => "<hr/>",
4147     "right" => array(
4148     "om_sig_map", "om_sig_map_tab", "om_sig_flux", "om_sig_flux_tab", "om_sig_extent", "om_sig_extent_tab",
4149     ),
4150     "parameters" => array("option_localisation" => "sig_interne", ),
4151     );
4152     //
4153     $links[] = array(
4154     "href" => "".OM_ROUTE_TAB."&obj=om_sig_extent",
4155     "class" => "om_sig_extent",
4156     "title" => _("om_sig_extent"),
4157     "right" => array("om_sig_extent", "om_sig_extent_tab", ),
4158     "open" => array("index.php|om_sig_extent[module=tab]", "index.php|om_sig_extent[module=form]", ),
4159     "parameters" => array("option_localisation" => "sig_interne", ),
4160     );
4161     //
4162     $links[] = array(
4163     "href" => "".OM_ROUTE_TAB."&obj=om_sig_map",
4164     "class" => "om_sig_map",
4165     "title" => _("om_sig_map"),
4166     "right" => array("om_sig_map", "om_sig_map_tab", ),
4167     "open" => array("index.php|om_sig_map[module=tab]", "index.php|om_sig_map[module=form]", ),
4168     "parameters" => array("option_localisation" => "sig_interne", ),
4169     );
4170     //
4171     $links[] = array(
4172     "href" => "".OM_ROUTE_TAB."&obj=om_sig_flux",
4173     "class" => "om_sig_flux",
4174     "title" => _("om_sig_flux"),
4175     "right" => array("om_sig_flux", "om_sig_flux_tab", ),
4176     "open" => array("index.php|om_sig_flux[module=tab]", "index.php|om_sig_flux[module=form]", ),
4177     "parameters" => array("option_localisation" => "sig_interne", ),
4178     );
4179     //
4180     $links[] = array(
4181     "class" => "category",
4182     "title" => _("options avancees"),
4183     "right" => array("import", "gen", "om_requete", "om_requete_tab",
4184     "om_sousetat", "om_sousetat_tab",),
4185     );
4186     //
4187     $links[] = array(
4188     "title" => "<hr/>",
4189     "right" => array(
4190     "interface_referentiel_erp",
4191     ),
4192     );
4193     //
4194     $links[] = array(
4195     "href" => "../app/settings.php?controlpanel=interface_referentiel_erp",
4196     "class" => "interface_referentiel_erp",
4197     "title" => _("interface_referentiel_erp"),
4198     "right" => array("interface_referentiel_erp", ),
4199     "open" => array("settings.php|[controlpanel=interface_referentiel_erp]", ),
4200     );
4201     //
4202     $links[] = array(
4203     "title" => "<hr/>",
4204     "right" => array(
4205     "om_sousetat", "om_sousetat_tab",
4206     ),
4207     );
4208     //
4209     $links[] = array(
4210     "href" => "".OM_ROUTE_TAB."&obj=om_sousetat",
4211     "class" => "om_sousetat",
4212     "title" => _("om_sousetat"),
4213     "right" => array("om_sousetat", "om_sousetat_tab", ),
4214     "open" => array("index.php|om_sousetat[module=tab]", "index.php|om_sousetat[module=form]", ),
4215     );
4216     //
4217     $links[] = array(
4218     "title" => "<hr/>",
4219     "right" => array("om_requete", "om_requete_tab", ),
4220     );
4221     //
4222     $links[] = array(
4223     "href" => "".OM_ROUTE_TAB."&obj=om_requete",
4224     "class" => "om_requete",
4225     "title" => _("om_requete"),
4226     "right" => array("om_requete", "om_requete_tab", ),
4227     "open" => array("index.php|om_requete[module=tab]", "index.php|om_requete[module=form]", ),
4228     );
4229     //
4230     $links[] = array(
4231     "title" => "<hr/>",
4232     "right" => array("import", ),
4233     );
4234     //
4235     $links[] = array(
4236     "href" => OM_ROUTE_MODULE_IMPORT,
4237     "class" => "import",
4238 softime 9245 "title" => __("Import"),
4239     "description" => __("Ce module permet l'intégration de données dans l'application depuis des fichiers CSV."),
4240 softime 8329 "right" => array("import", ),
4241 softime 9245 "open" => array(
4242     "import.php|",
4243     "index.php|[module=import]",
4244     ),
4245 softime 8329 );
4246     //
4247     $links[] = array(
4248     "href" => "../app/import_specific.php",
4249     "class" => "import_specific",
4250     "title" => _("Import specifique"),
4251     "right" => array("import", ),
4252     "open" => array("import_specific.php|", ),
4253     );
4254     //
4255     $links[] = array(
4256     "title" => "<hr/>",
4257     "right" => array("gen", ),
4258     );
4259     //
4260     $links[] = array(
4261     "title" => _("Generateur"),
4262     "href" => OM_ROUTE_MODULE_GEN,
4263     "class" => "generator",
4264     "right" => array("gen", ),
4265     "open" => array(
4266     "gen.php|","genauto.php|", "gensup.php|", "genfull.php|",
4267     "genetat.php|", "gensousetat.php|", "genlettretype.php|",
4268     "genimport.php|",
4269     ),
4270     );
4271     //
4272     $links[] = array(
4273     "href" => "".OM_ROUTE_FORM."&obj=contrainte&action=100&idx=0",
4274     "class" => "contrainte",
4275     "title" => _("synchronisation des contraintes"),
4276     "right" => array("contrainte", "contrainte_synchronisation", ),
4277     "open" => array("index.php|contrainte[module=form][action=100]", ),
4278     "parameters" => array(
4279     "option_sig" => "sig_externe",
4280     ),
4281     );
4282     //
4283     $links[] = array(
4284     "href" => "".OM_ROUTE_FORM."&obj=dossier_instruction&action=126&idx=0",
4285     "class" => "geocoder",
4286     "title" => _("Géolocalisation des dossiers"),
4287     "right" => array("dossier_instruction_geocoder", ),
4288     "open" => array("index.php|dossier_instruction[module=form][action=126]", ),
4289     "parameters" => array(
4290     "option_sig" => "sig_externe",
4291     ),
4292     );
4293     //
4294     $rubrik['links'] = $links;
4295     //
4296     $menu[] = $rubrik;
4297     $this->config__menu = $menu;
4298     }
4299 softime 8640
4300     /**
4301     * Récupère tous les résultats d'une requête SQL.
4302     *
4303     * @param string $query Requête SQL
4304     * @param boolean $force_return Force le retour d'un boolean en cas d'erreur
4305     *
4306 softime 8989 * @return array
4307 softime 8640 */
4308     function get_all_results_from_db_query($query = "", $force_return = false) {
4309     $res = $this->db->query($query);
4310     $this->addToLog(
4311     __METHOD__."(): db->query(\"".$query."\");",
4312     VERBOSE_MODE
4313     );
4314     $result = array(
4315     'code' => '',
4316     'message' => '',
4317     'result' => array(),
4318     );
4319     if ($this->isDatabaseError($res, $force_return) !== false) {
4320     $result['code'] = 'KO';
4321     $result['message'] = __("Erreur de base de donnees. Contactez votre administrateur.");
4322     return $result;
4323     }
4324     $result['code'] = 'OK';
4325     while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
4326     array_push($result['result'], $row);
4327     }
4328     $res->free();
4329     return $result;
4330     }
4331 mbroquet 3730
4332 softime 8989 /**
4333     * Récupère un résultat d'une requête SQL.
4334     *
4335     * @param string $query Requête SQL
4336     * @param boolean $force_return Force le retour d'un boolean en cas d'erreur
4337     *
4338     * @return array
4339     */
4340     function get_one_result_from_db_query($query = "", $force_return = false) {
4341     $res = $this->db->getone($query);
4342     $this->addToLog(
4343     __METHOD__."(): db->getone(\"".$query."\");",
4344     VERBOSE_MODE
4345     );
4346     $result = array(
4347     'code' => '',
4348     'message' => '',
4349     'result' => array(),
4350     );
4351     if ($this->isDatabaseError($res, $force_return) !== false) {
4352     $result['code'] = 'KO';
4353     $result['message'] = __("Erreur de base de donnees. Contactez votre administrateur.");
4354     return $result;
4355     }
4356     $result['code'] = 'OK';
4357     $result['result'] = $res;
4358     return $result;
4359     }
4360 softime 7996
4361 softime 8989 /**
4362     * Instanciation de la classe 'edition'.
4363     * (surcharge de la fonction pour ajouter la prise en compte
4364     * de la surcharge locale de la classe om_edition).
4365     *
4366     * @param array $args Arguments à passer au constructeur.
4367     * @return edition
4368     */
4369     function get_inst__om_edition($args = array()) {
4370     if (file_exists("../obj/om_edition.class.php")) {
4371     require_once "../obj/om_edition.class.php";
4372     $class_name = "om_edition";
4373     } else {
4374     require_once PATH_OPENMAIRIE."om_edition.class.php";
4375     $class_name = "edition";
4376     }
4377     return new $class_name();
4378     }
4379    
4380     /**
4381 softime 9245 * Instanciation de la classe 'reqmo'.
4382     * (surcharge de la fonction pour ajouter la prise en compte
4383     * de la surcharge locale de la classe om_edition).
4384     *
4385     * @param array $args Arguments à passer au constructeur.
4386     * @return edition
4387     */
4388     function get_inst__om_reqmo($args = array()) {
4389     if (file_exists("../obj/om_reqmo.class.php")) {
4390     require_once "../obj/om_reqmo.class.php";
4391     $class_name = "om_reqmo";
4392     } else {
4393     require_once PATH_OPENMAIRIE."om_reqmo.class.php";
4394     $class_name = "reqmo";
4395     }
4396     return new $class_name();
4397     }
4398    
4399     /**
4400 softime 8989 * Permet d'enregistrer un fichier dans la table 'storage'.
4401     *
4402     * @return mixed Identifiant du fichier dans la table storage ou false.
4403     */
4404     function store_file($filecontent, $filemetadata, $type, $info = null, $collectivite = null) {
4405     if ($collectivite === null) {
4406     $get_collectivite = $this->getCollectivite();
4407     $collectivite = $get_collectivite['om_collectivite_idx'];
4408     }
4409     $uid = $this->storage->create($filecontent, $filemetadata);
4410     if ($uid == 'OP_FAILURE') {
4411     return false;
4412     }
4413     $inst_storage = $this->get_inst__om_dbform(array(
4414     "obj" => "storage",
4415     "idx" => "]",
4416     ));
4417     $val = array(
4418     "storage" => '',
4419     "file" => "NEW",
4420     "creation_date" => date("Y-m-d"),
4421     "creation_time" => date("G:i:s"),
4422     "uid" => $uid,
4423     "filename" => $filemetadata["filename"],
4424     "size" => $filemetadata["size"],
4425     "mimetype" => $filemetadata["mimetype"],
4426     "type" => $type,
4427     "info" => $info,
4428     "om_collectivite" => $collectivite,
4429     );
4430     $ret = $inst_storage->ajouter($val);
4431     if ($ret !== true) {
4432     return false;
4433     }
4434     // Récupère l'identifiant dans le storage
4435     $id = $inst_storage->get_storage_id_by_uid($uid);
4436     //
4437     return $id;
4438     }
4439    
4440     /**
4441     * Surcharge de la fonction d'affichage pour ajouter
4442     * un détecteur de bloqueur de pub (cassant l'application).
4443     *
4444     * @return void
4445     */
4446     function displayHTMLFooter() {
4447     parent::displayHTMLFooter();
4448 softime 9511 if (in_array($this->flag, array("login_and_nohtml", "nohtml", "login", "logout", "anonym")) !== true) {
4449 softime 8989 $this->ad_blocker_detector();
4450     }
4451     }
4452    
4453     /**
4454     * Affiche un bloc de code Javascript
4455     * responsable de détecter les bloqueurs de pub
4456     * et d'afficher un message le cas échéant.
4457     */
4458     protected function ad_blocker_detector() {
4459    
4460     printf(
4461     '<script type="text/javascript">
4462     var blocked = [];
4463     // jquery has not loaded
4464     if(typeof($) == "undefined" && typeof(jQuery) == "undefined") {
4465     blocked.push("jquery");
4466     }
4467     // tinyMCE has not loaded
4468     if(typeof(tinyMCE) == "undefined") {
4469     blocked.push("tinyMCE");
4470     }
4471     // locale has not loaded
4472     if(typeof(locale) == "undefined") {
4473     blocked.push("locale");
4474     }
4475     // om_layout has not loaded
4476     if(typeof(om_initialize_content) == "undefined") {
4477     blocked.push("om_layout");
4478     }
4479     // app script has not loaded
4480     if(typeof(app_script_t4Fv4a59uSU7MwpJ59Qp) == "undefined") {
4481     blocked.push("app_script");
4482     }
4483    
4484     // something was blocked
4485     if(blocked.length > 0) {
4486    
4487     // removing every node in the body
4488     while(document.body.firstChild) { document.body.removeChild(document.body.firstChild); }
4489    
4490     // creating the message (node) and its style
4491     var msgNode = document.createElement("p");
4492     msgNode.id = "adblocker-detected";
4493     msgNode.style.position = "relative";
4494     msgNode.style.width = "calc(100%% - 60px)";
4495     msgNode.style.margin = "20px auto";
4496     msgNode.style.padding = "20px";
4497     msgNode.style.background = "#FEF8F6";
4498     msgNode.style.color = "#cd0a0a";
4499     msgNode.style.border = "1px solid #cd0a0a";
4500     msgNode.style.borderRadius = "4px";
4501     msgNode.innerHTML = "%s";
4502    
4503     // appending the message (node) to the body
4504     document.body.insertBefore(msgNode, document.body.firstChild);
4505     }
4506     </script>',
4507     sprintf(
4508     '<span>%s</span><br/><br/><span>%s</span><br/><br/><span>%s</span>',
4509     __("Un bloqueur de publicité a été détecté, et ceci empêche l'application de fonctionner normalement."),
4510     __("Afin de rétablir le bon fonctionnement, il vous est nécessaire d'ajouter l'application à la liste blanche des applications autorisées (<small>pour cela, référez-vous à la documentation de votre extension bloqueuse de publicité</small>)."),
4511 softime 9245 __("<em>Pour information, ceci se produit parce que l'application se nomme openADS, or les bloqueurs de publicité ont tendance à bloquer tout ce qui contient la chaîne de caractères 'ads' (<small>publicité</small> en anglais) comme c'est le cas dans le nom open<strong>ADS</strong>.</em>")
4512 softime 8989 )
4513     );
4514     }
4515    
4516     }

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26