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 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 |
} |