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

Contents of /trunk/obj/virtual_dbform.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 684 - (show annotations)
Wed Nov 14 11:24:22 2012 UTC (12 years, 2 months ago) by nhaye
File size: 4767 byte(s)
Correction du parrent de virtual_dbform,
la méthode canAccess est maintenant appellée dans la méthode formulaire.

1 <?php
2 /**
3 * Ce fichier est destine a permettre la surcharge de certaines methodes de
4 * la classe om_dbform pour des besoins specifiques de l'application,
5 * elle permet de requeter pour l'affichage en visualisation sur plusieurs table
6 * car inclue le script .form.php correspondant a la classe
7 *
8 * @package openmairie_exemple
9 * @version SVN : $Id: om_dbform.class.php 516 2012-10-17 17:13:43Z mlimic $
10 */
11
12 /**
13 *
14 */
15 require_once ("../obj/om_dbform.class.php");
16 /**
17 *
18 */
19 require_once "om_formulaire.class.php";
20
21 /**
22 *
23 */
24 class virtual_dbform extends om_dbForm {
25
26 /**
27 *
28 */
29 var $om_formulaire = "om_formulaire";
30
31
32
33 /**
34 * Constructeur
35 *
36 * @param string $id
37 * @param object $db Objet de connexion DB
38 * @param boolean $DEBUG Mode debug (@deprecated)
39 */
40 function constructeur($id, &$db, $DEBUG = false) {
41 if (isset($GLOBALS["f"])) {
42 $this->f = $GLOBALS["f"];
43 }
44 // Affectation de l'identifiant de base de donnees dans l'attribut db
45 // de l'objet
46 $this->db = $db;
47 // Inclusion du fichier de parametre de la table pour recuperer les
48 // trois parametres permettant de construire la requete de selection
49 // $champs - clause select
50 // $tableSelect - clause from
51 // $selection - clause where
52 $fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc.php";
53 if (file_exists($fichier)) {
54 include $fichier;
55 } else {
56 $fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc";
57 if (file_exists($fichier)) {
58 include $fichier;
59 }
60 }
61 // Sauvegarde des actions contextuelles supplementaires
62 if (isset($portlet_actions)) {
63 $this->actions_sup = $portlet_actions;
64 }
65 //Si le flag $archivable est posé
66 //if(isset($archivable) and $archivable){
67 // $this->archivable=TRUE;
68 //} else {
69 // $this->archivable=FALSE;
70 //}
71 // Concatenation des champs pour constitution de la clause select
72 $listeChamp = "";
73 foreach ($champs as $elem) {
74 $listeChamp .= $elem.",";
75 }
76 // Suppresion de la derniere virgule
77 $listeChamp = substr($listeChamp, 0, strlen($listeChamp)-1);
78 // Initialisation de la variable selection
79 if (!isset($selection)) {
80 $selection = "";
81 }
82 // Concatenation de la requete de selection
83 $sql = " select ".$listeChamp." from ".$tableSelect." ";
84 $sql .= " where ".$this->real_table.".".$this->clePrimaire." = ".$id." ";
85 $sql .= " ".$selection." ";
86 //print '$sql:'.$sql.' ';
87 // Execution de la requete
88 $res = $db->limitquery($sql, 0, 1);
89 // Logger
90 $this->addToLog("constructeur(): db->limitquery(\"".str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
91 // Si une erreur survient
92 if (database::isError($res, true)) {
93 // Appel de la methode de recuperation des erreurs
94 $this->erreur_db($res->getDebugInfo(), $res->getMessage(), $tableSelect);
95 } else {
96 // Recuperation des informations sur la structure de la table
97 // ??? compatibilite POSTGRESQL (len = -1, type vide, flags vide)
98 $info = $res->tableInfo();
99 // Initialisation de la cle a 0
100 $i = 0;
101 // Recuperation du nom de chaque champ dans l'attribut 'champs'
102 foreach ($info as $elem) {
103 $this->champs[$i++] = $elem['name'];
104 }
105 // ??? Le $i devrait etre initialises a 0 pour chaque attribut suivant
106 // Recuperation de la taille de chaque champ dans l'attibut 'longueurMax'
107 foreach ($info as $elem) {
108 $this->longueurMax[$i++] = $elem['len'];
109 }
110 // Recuperation du type de chaque champ dans l'attribut 'type'
111 // ??? Non utilise
112 foreach ($info as $elem) {
113 $this->type[$i++] = $elem['type'];
114 }
115 // Recuperation du flag de chaque champ dans l'attribut 'flags'
116 // ??? Non utilise
117 foreach ($info as $elem) {
118 $this->flags[$i++] = $elem['flags'];
119 }
120 // Recuperation de l'enregistrement resultat de la requete
121 while ($row =& $res->fetchRow()) {
122 // Initialisation de la cle a 0
123 $i = 0;
124 // Recuperation de la valeur de chaque champ dans l'attribut 'val'
125 foreach ($row as $elem) {
126 $this->val[$i++] = $elem;
127 }
128 }
129 }
130 }
131 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26