1 |
fmichon |
656 |
<?php |
2 |
|
|
/** |
3 |
fmichon |
1515 |
* Ce fichier est une surcharge/adaptation du tableau d'openmairie_exemple. |
4 |
|
|
* Le principe est que le tableau de bord soit fixé par l'administrateur |
5 |
|
|
* et qu'il ne soit plus modifiable par l'utilisateur lui-même. Ce |
6 |
|
|
* tableau de bord ajoute également la notion de widget de type file qui |
7 |
|
|
* permet l'inclusion de script php en lieu et place du widget sur le tableau |
8 |
|
|
* de bord. |
9 |
fmichon |
656 |
* |
10 |
fmichon |
1515 |
* @package openfoncier |
11 |
fmichon |
1184 |
* @version SVN : $Id$ |
12 |
fmichon |
656 |
*/ |
13 |
|
|
|
14 |
|
|
require_once "../obj/utils.class.php"; |
15 |
|
|
if (!isset($f)) { |
16 |
|
|
$f = new utils(NULL, NULL, _("Tableau de bord")); |
17 |
|
|
} |
18 |
|
|
|
19 |
|
|
|
20 |
|
|
/** |
21 |
|
|
* |
22 |
|
|
*/ |
23 |
|
|
function widgetView($f = NULL, |
24 |
|
|
$id = NULL, |
25 |
|
|
$title = NULL, |
26 |
|
|
$content = NULL, |
27 |
|
|
$footer = NULL, |
28 |
|
|
$type = NULL, |
29 |
|
|
$mode_edit = false) { |
30 |
|
|
|
31 |
|
|
// Ouverture du conteneur du widget |
32 |
|
|
echo "<div"; |
33 |
|
|
echo " class=\"widget ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\""; |
34 |
|
|
echo " id=\"widget_".$id."\""; |
35 |
|
|
echo ">\n"; |
36 |
|
|
|
37 |
|
|
// Titre du widget |
38 |
|
|
echo "<div class=\"widget-header "; |
39 |
|
|
if ($mode_edit == true) { |
40 |
|
|
echo "widget-header-edit widget-header-move "; |
41 |
|
|
} |
42 |
|
|
echo "ui-widget-header ui-corner-all\">"; |
43 |
|
|
echo "<h3>"; |
44 |
|
|
echo $title; |
45 |
|
|
echo "</h3>"; |
46 |
|
|
echo "</div>\n"; |
47 |
|
|
|
48 |
|
|
// Ouverture du wrapper : Contenu + Footer |
49 |
|
|
echo "<div class=\"widget-content-wrapper\">\n"; |
50 |
|
|
|
51 |
|
|
// Contenu du widget |
52 |
|
|
echo "<!-- Start Widget Content -->\n"; |
53 |
|
|
echo "<div class=\"widget-content\">\n\n"; |
54 |
|
|
// |
55 |
|
|
if ($type == "file") { |
56 |
|
|
// |
57 |
|
|
$file = "../app/widget_".$footer.".php"; |
58 |
|
|
$footer = "#"; |
59 |
|
|
include $file; |
60 |
|
|
} else { |
61 |
|
|
// |
62 |
|
|
echo $content; |
63 |
|
|
} |
64 |
|
|
echo "\n\n</div>\n"; |
65 |
|
|
echo "<!-- End Widget Content -->\n"; |
66 |
|
|
|
67 |
|
|
// Footer du widget |
68 |
|
|
if ($footer != "#" && $footer != "" && $footer != NULL) { |
69 |
|
|
echo "<div class=\"widget-footer\">\n"; |
70 |
|
|
echo "<a href='".$footer."' >"; |
71 |
|
|
if (isset($footer_title)) { |
72 |
|
|
echo $footer_title; |
73 |
|
|
} else { |
74 |
|
|
echo _("Acceder au lien"); |
75 |
|
|
} |
76 |
|
|
echo "</a>\n"; |
77 |
|
|
echo "</div>\n"; |
78 |
|
|
} |
79 |
|
|
|
80 |
|
|
// Fermeture du wrapper : Contenu + Footer |
81 |
|
|
echo "</div>\n"; |
82 |
|
|
|
83 |
|
|
// Fermeture du conteneur du widget |
84 |
|
|
echo "</div>\n"; |
85 |
|
|
|
86 |
|
|
} |
87 |
|
|
|
88 |
|
|
/** |
89 |
|
|
* Tableau de bord |
90 |
|
|
*/ |
91 |
|
|
// Ouverture du conteneur #dashboard |
92 |
|
|
echo "<div id=\"dashboard\">\n"; |
93 |
|
|
// Conteneur permettant de recevoir d'eventuels messages d'erreur des requetes |
94 |
|
|
// Ajax |
95 |
|
|
echo "<div id=\"info\"></div>\n"; |
96 |
|
|
// Ouverture du conteneur de colonnes |
97 |
|
|
echo "<div class=\"col".$f->config['dashboard_nb_column']."\">\n"; |
98 |
|
|
// On boucle sur chacune des colonnes |
99 |
|
|
for ($i = 1; $i <= $f->config['dashboard_nb_column']; $i++) { |
100 |
|
|
// Ouverture du conteneur .column |
101 |
|
|
echo "<div class=\"column\" id=\"column_".$i."\">\n"; |
102 |
|
|
// Requete de selection de tous les widgets de la colonne |
103 |
|
|
$sql = "select om_dashboard.om_dashboard, om_widget.om_widget as widget, "; |
104 |
|
|
$sql .= "om_widget.libelle as libelle, om_widget.lien as lien, "; |
105 |
|
|
$sql .= "om_widget.texte as texte, om_widget.type as type, om_dashboard.position "; |
106 |
|
|
$sql .= "from ".DB_PREFIXE."om_dashboard "; |
107 |
|
|
$sql .= "inner join ".DB_PREFIXE."om_widget on om_dashboard.om_widget=om_widget.om_widget "; |
108 |
|
|
$sql .= "inner join ".DB_PREFIXE."om_utilisateur on om_dashboard.om_profil=om_utilisateur.om_profil "; |
109 |
|
|
$sql .= "where om_dashboard.bloc ='C".$i."' and om_utilisateur.login = '".$_SESSION['login']."' "; |
110 |
|
|
$sql .= "order by position"; |
111 |
|
|
// Execution de la requete |
112 |
|
|
$res = $f->db->query($sql); |
113 |
|
|
// Logger |
114 |
|
|
$f->addToLog("scr/dashboard.php: db->query(\"".$sql."\");", VERBOSE_MODE); |
115 |
|
|
// |
116 |
|
|
$f->isDatabaseError($res); |
117 |
|
|
// On boucle sur chacun des widgets |
118 |
|
|
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
119 |
|
|
// Affichage du widget |
120 |
|
|
widgetView($f, $row['om_dashboard'], $row['libelle'], $row['texte'], |
121 |
fmichon |
662 |
$row['lien'], $row["type"]); |
122 |
fmichon |
656 |
} |
123 |
|
|
// Fermeture du conteneur .column |
124 |
|
|
echo "</div>\n"; |
125 |
|
|
} |
126 |
|
|
// On affiche un conteneur vide pour avec la propriete clear a both pour |
127 |
|
|
// reinitialiser le positionnement des blocs |
128 |
|
|
echo "<div class=\"both\"><!-- --></div>\n"; |
129 |
|
|
// Fermeture du conteneur de colonnes |
130 |
|
|
echo "</div>\n"; |
131 |
|
|
// Fermeture du conteneur #dashboard |
132 |
|
|
echo "</div>\n"; |
133 |
|
|
|
134 |
|
|
?> |