1 |
<?php |
2 |
/** |
3 |
* Ce script permet ... |
4 |
* |
5 |
* @package openmairie_exemple |
6 |
* @version SVN : $Id$ |
7 |
*/ |
8 |
|
9 |
require_once "../obj/utils.class.php"; |
10 |
if (!isset($f)) { |
11 |
$f = new utils("nohtml"); |
12 |
header("Content-type: text/html; charset=".CHARSET.""); |
13 |
} |
14 |
|
15 |
/** |
16 |
* |
17 |
*/ |
18 |
function widgetView($id = NULL, |
19 |
$title = NULL, |
20 |
$content = NULL, |
21 |
$footer = NULL, |
22 |
$mode_edit = false) { |
23 |
|
24 |
// Ouverture du conteneur du widget |
25 |
echo "<div"; |
26 |
echo " class=\"widget ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\""; |
27 |
echo " id=\"widget_".$id."\""; |
28 |
echo ">\n"; |
29 |
|
30 |
// Titre du widget |
31 |
echo "<div class=\"widget-header "; |
32 |
if ($mode_edit == true) { |
33 |
echo "widget-header-edit widget-header-move "; |
34 |
} |
35 |
echo "ui-widget-header ui-corner-all\">"; |
36 |
echo "<h3>"; |
37 |
echo $title; |
38 |
echo "</h3>"; |
39 |
echo "</div>\n"; |
40 |
|
41 |
// Ouverture du wrapper : Contenu + Footer |
42 |
echo "<div class=\"widget-content-wrapper\">\n"; |
43 |
|
44 |
// Contenu du widget |
45 |
echo "<!-- Start Widget Content -->\n"; |
46 |
echo "<div class=\"widget-content\">\n\n"; |
47 |
echo $content; |
48 |
echo "\n\n</div>\n"; |
49 |
echo "<!-- End Widget Content -->\n"; |
50 |
|
51 |
// Footer du widget |
52 |
if ($footer != "#" && $footer != "" && $footer != NULL) { |
53 |
echo "<div class=\"widget-footer\">\n"; |
54 |
echo "<a href='".$footer."' >"._("Acceder au lien")."</a>\n"; |
55 |
echo "</div>\n"; |
56 |
} |
57 |
|
58 |
// Fermeture du wrapper : Contenu + Footer |
59 |
echo "</div>\n"; |
60 |
|
61 |
// Fermeture du conteneur du widget |
62 |
echo "</div>\n"; |
63 |
|
64 |
} |
65 |
|
66 |
/** |
67 |
* UPDATE |
68 |
*/ |
69 |
if (isset($_GET['action']) && $_GET['action'] == "update") { |
70 |
// |
71 |
$alldata = array(); |
72 |
foreach($_GET as $key => $values) { |
73 |
// Dans le tableau associatif $_GET il y a la cle 'action' necessaire |
74 |
// au fonctionnement du script, donc si c'est le cas on passe a |
75 |
// l'iteration suivante |
76 |
if ($key == "action") { |
77 |
continue; |
78 |
} |
79 |
// |
80 |
$bloc = "C".str_replace("column_", "", $key); |
81 |
// |
82 |
$widgets = explode("x", $values); |
83 |
// |
84 |
foreach($widgets as $i => $widget) { |
85 |
// |
86 |
$position = $i+1; |
87 |
// |
88 |
$widget = str_replace("widget_", "", $widget); |
89 |
// Lorsqu'une colonne est vide, il y a une valeur vide dans le |
90 |
// tableau widget, donc si c'est le cas on passe a l'iteration |
91 |
// suivante |
92 |
if ($widget == "") { |
93 |
continue; |
94 |
} |
95 |
// |
96 |
array_push($alldata, array($position, $bloc, $widget)); |
97 |
} |
98 |
} |
99 |
|
100 |
// |
101 |
$sql = "update ".DB_PREFIXE."om_tdb set "; |
102 |
$sql .= " position=?, "; |
103 |
$sql .= " bloc=? "; |
104 |
$sql .= " where om_tdb=? and login='".$_SESSION['login']."'"; |
105 |
// |
106 |
$sth = $f->db->prepare($sql); |
107 |
$f->isDatabaseError($sth); |
108 |
// |
109 |
$res =& $f->db->executeMultiple($sth, $alldata); |
110 |
$f->isDatabaseError($res); |
111 |
} |
112 |
|
113 |
/** |
114 |
* DELETE |
115 |
*/ |
116 |
if (isset($_GET['action']) && $_GET['action'] == "delete") { |
117 |
// |
118 |
if (isset($_GET['widget']) && $_GET['widget'] != "") { |
119 |
// |
120 |
$widget = str_replace("widget_", "", $_GET['widget']); |
121 |
// Suppression du widget |
122 |
$sql = "delete from ".DB_PREFIXE."om_tdb where om_tdb =".$widget; |
123 |
$res = $f->db->query($sql); |
124 |
$f->isDatabaseError($res); |
125 |
} |
126 |
} |
127 |
|
128 |
/** |
129 |
* INSERT |
130 |
*/ |
131 |
if (isset($_GET['action']) && $_GET['action'] == "insert") { |
132 |
// |
133 |
$bloc = "C1"; |
134 |
// Sur la validation du formulaire |
135 |
if (isset($_POST['widget_add_form_valid'])) { |
136 |
// Ajout du widget dans la base et affichage de ce dernier |
137 |
// |
138 |
(isset($_POST['widget']) && is_numeric($_POST['widget']) ? $widget = $_POST['widget'] : $widget = 0); |
139 |
// |
140 |
$valF = array(); |
141 |
$valF['om_tdb'] = $f->db->nextId(DB_PREFIXE."om_tdb"); |
142 |
$valF['login'] = $_SESSION['login']; |
143 |
$valF['om_widget'] = $widget; |
144 |
$valF['bloc'] = $bloc; |
145 |
$valF['position'] = 1; |
146 |
// |
147 |
$sql = "update ".DB_PREFIXE."om_tdb set position=position+1 where login = '".$_SESSION['login']."' and bloc ='".$bloc."'"; |
148 |
$position = $f->db->query($sql); |
149 |
$f->isDatabaseError($position); |
150 |
// |
151 |
$res = $f->db->autoExecute(DB_PREFIXE."om_tdb", $valF, DB_AUTOQUERY_INSERT); |
152 |
$f->isDatabaseError($res); |
153 |
// On retourne l'id du widget dans le tableau de bord de l'utilisateur |
154 |
// pour l'afficher |
155 |
echo $valF['om_tdb']; |
156 |
} else { |
157 |
// Composition du formulaire |
158 |
$content = ""; |
159 |
// Description du formulaire |
160 |
$content .= _("Selectionner le widget a inserer puis cliquer sur ". |
161 |
"le bouton 'Valider' pour valider votre selection."); |
162 |
// Ouverture du formulaire |
163 |
$content .= "<form"; |
164 |
$content .= " method=\"post\""; |
165 |
$content .= " id=\"widget_add_form\""; |
166 |
$content .= " action=\"../tdb/ajouter.php?bloc=".$bloc."\""; |
167 |
$content .= ">\n"; |
168 |
// On recupere la liste des widgets que l'utilisateur peut inserer en |
169 |
// fonction de son profil |
170 |
$sql = "select om_widget as widget, libelle from ".DB_PREFIXE."om_widget "; |
171 |
$sql .= " where om_profil <= '".$_SESSION['profil']."' order by libelle"; |
172 |
$res = $f->db->query($sql); |
173 |
$f->isDatabaseError($res); |
174 |
// Liste des widgets que l'utilisateur peut inserer en fonction de son |
175 |
// profil |
176 |
$content .= "<select name=\"widget\">"; |
177 |
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
178 |
$content .= "<option value='".$row['widget']."' >".$row['libelle']."</option>"; |
179 |
} |
180 |
$content .= "</select>\n"; |
181 |
// Bouton Valider |
182 |
$content .= "<input type=\"button\" value=\""._("Valider")."\" name=\"widget.add.form.valid\" onclick=\"widget_add_form_post()\" />\n"; |
183 |
// Fermeture du formulaire |
184 |
$content .= "</form>\n"; |
185 |
|
186 |
// Affichage du widget |
187 |
widgetView("", |
188 |
_("Ajouter un nouveau widget"), |
189 |
$content, |
190 |
"", |
191 |
true); |
192 |
|
193 |
} |
194 |
} |
195 |
|
196 |
/** |
197 |
* VIEW |
198 |
*/ |
199 |
if (isset($_GET['action']) && $_GET['action'] == "view") { |
200 |
// |
201 |
$sql = "select om_tdb, om_widget.om_widget as widget, "; |
202 |
$sql .= "om_widget.libelle as libelle, om_widget.lien as lien, "; |
203 |
$sql .= "om_widget.texte as texte from om_tdb "; |
204 |
$sql .= "inner join om_widget on om_widget.om_widget=om_tdb.om_widget "; |
205 |
$sql .= "where om_tdb=".$_GET['widget']." and "; |
206 |
$sql .= "login = '".$_SESSION['login']."'"; |
207 |
// |
208 |
$res = $f->db->query($sql); |
209 |
$f->isDatabaseError($res); |
210 |
// |
211 |
$row =& $res->fetchRow(DB_FETCHMODE_ASSOC); |
212 |
// |
213 |
widgetView($row['om_tdb'], |
214 |
$row['libelle'], |
215 |
$row['texte'], |
216 |
$row['lien'], |
217 |
true); |
218 |
} |
219 |
|
220 |
?> |