| Line 52... |
Line 52... |
| 52 |
}
|
52 |
}
|
| 53 |
}
|
53 |
}
|
| Line 54... |
Line 54... |
| 54 |
|
54 |
|
| 55 |
private function getEvolImgLieesParMois($param) {
|
55 |
private function getEvolImgLieesParMois($param) {
|
| 56 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : null;
|
56 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : null;
|
| 57 |
|
57 |
|
| 58 |
// Récupération des données
|
58 |
// Récupération des données
|
| 59 |
$requete = "SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(ci.id_image) AS nbre ".
|
59 |
$requete = "SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(ci.id_image) AS nbre ".
|
| 60 |
"FROM cel_obs_images coi LEFT JOIN cel_images ci ON (coi.id_image = ci.id_image) ".
|
60 |
"FROM cel_obs_images coi LEFT JOIN cel_images ci ON (coi.id_image = ci.id_image) ".
|
| 61 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
61 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
| 62 |
((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
|
62 |
((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
|
| 63 |
'GROUP BY periode '.
|
63 |
'GROUP BY periode '.
|
| Line 64... |
Line 64... |
| 64 |
'ORDER BY periode ';
|
64 |
'ORDER BY periode ';
|
| Line 65... |
Line 65... |
| 65 |
|
65 |
|
| 66 |
$resulats = Cel::db()->executerRequete($requete);
|
66 |
$resulats = Cel::db()->requeter($requete);
|
| 67 |
|
67 |
|
| 68 |
$img_totale = array();
|
68 |
$img_totale = array();
|
| Line 123... |
Line 123... |
| 123 |
return $graph;
|
123 |
return $graph;
|
| 124 |
}
|
124 |
}
|
| Line 125... |
Line 125... |
| 125 |
|
125 |
|
| 126 |
private function getEvolImgParMois($param) {
|
126 |
private function getEvolImgParMois($param) {
|
| 127 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : null;
|
127 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : null;
|
| 128 |
|
128 |
|
| 129 |
// Récupération des données
|
129 |
// Récupération des données
|
| 130 |
$requete = "SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(id_image) AS nbre ".
|
130 |
$requete = "SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(id_image) AS nbre ".
|
| 131 |
"FROM cel_images ".
|
131 |
"FROM cel_images ".
|
| 132 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
132 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
| 133 |
((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
|
133 |
((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
|
| 134 |
'GROUP BY periode '.
|
134 |
'GROUP BY periode '.
|
| Line 135... |
Line 135... |
| 135 |
'ORDER BY periode ';
|
135 |
'ORDER BY periode ';
|
| Line 136... |
Line 136... |
| 136 |
|
136 |
|
| 137 |
$resulats = Cel::db()->executerRequete($requete);
|
137 |
$resulats = Cel::db()->requeter($requete);
|
| 138 |
|
138 |
|
| 139 |
$img_totale = array();
|
139 |
$img_totale = array();
|
| Line 202... |
Line 202... |
| 202 |
'FROM cel_obs '.
|
202 |
'FROM cel_obs '.
|
| 203 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
203 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
| 204 |
" AND courriel_utilisateur LIKE '%@%' ".
|
204 |
" AND courriel_utilisateur LIKE '%@%' ".
|
| 205 |
'GROUP BY courriel_utilisateur '.
|
205 |
'GROUP BY courriel_utilisateur '.
|
| 206 |
'ORDER BY date_min ASC ';
|
206 |
'ORDER BY date_min ASC ';
|
| 207 |
$resultats = Cel::db()->executerRequete($requete);
|
207 |
$resultats = Cel::db()->requeter($requete);
|
| Line 208... |
Line 208... |
| 208 |
|
208 |
|
| 209 |
// Trie des données et des dates pour les étiquettes des axes
|
209 |
// Trie des données et des dates pour les étiquettes des axes
|
| 210 |
$dates = array();
|
210 |
$dates = array();
|
| 211 |
$annees = array();
|
211 |
$annees = array();
|
| Line 258... |
Line 258... |
| 258 |
private function getEvolObsParMoisGlissant($param) {
|
258 |
private function getEvolObsParMoisGlissant($param) {
|
| 259 |
// Récupération des données
|
259 |
// Récupération des données
|
| 260 |
$format_date = '%Y%m%d';
|
260 |
$format_date = '%Y%m%d';
|
| 261 |
$where = 'date_creation > DATE_SUB(NOW(), INTERVAL 31 DAY)';
|
261 |
$where = 'date_creation > DATE_SUB(NOW(), INTERVAL 31 DAY)';
|
| 262 |
$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation', $format_date, $where);
|
262 |
$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation', $format_date, $where);
|
| 263 |
|
263 |
|
| 264 |
// Tri des dates pour les étiquettes des axes
|
264 |
// Tri des dates pour les étiquettes des axes
|
| 265 |
$dates = array();
|
265 |
$dates = array();
|
| 266 |
$annees = array();
|
266 |
$annees = array();
|
| 267 |
$annees_mois = array();
|
267 |
$annees_mois = array();
|
| 268 |
$jours = array();
|
268 |
$jours = array();
|
| 269 |
foreach ($obs_totale as $annee_mois_jours => $nbre) {
|
269 |
foreach ($obs_totale as $annee_mois_jours => $nbre) {
|
| 270 |
$annee = substr($annee_mois_jours, 0, 4);
|
270 |
$annee = substr($annee_mois_jours, 0, 4);
|
| 271 |
$mois = substr($annee_mois_jours, 4, 2);
|
271 |
$mois = substr($annee_mois_jours, 4, 2);
|
| 272 |
$jour = substr($annee_mois_jours, 6, 2);
|
272 |
$jour = substr($annee_mois_jours, 6, 2);
|
| 273 |
$annee_mois_fmt_B = strftime('%B %Y', mktime(0, 0, 0, $mois, 1, $annee));
|
273 |
$annee_mois_fmt_B = strftime('%B %Y', mktime(0, 0, 0, $mois, 1, $annee));
|
| 274 |
|
274 |
|
| 275 |
if (!isset($dates[$annee][$mois][$jour])) {
|
275 |
if (!isset($dates[$annee][$mois][$jour])) {
|
| 276 |
$annees_mois[] = (!isset($dates[$annee][$mois]) ? $annee_mois_fmt_B : '');
|
276 |
$annees_mois[] = (!isset($dates[$annee][$mois]) ? $annee_mois_fmt_B : '');
|
| 277 |
$jours[] = $jour;
|
277 |
$jours[] = $jour;
|
| 278 |
// Ajouter au tableau dates tjrs à la fin
|
278 |
// Ajouter au tableau dates tjrs à la fin
|
| 279 |
$dates[$annee][$mois][$jour] = 1;
|
279 |
$dates[$annee][$mois][$jour] = 1;
|
| 280 |
}
|
280 |
}
|
| 281 |
}
|
281 |
}
|
| 282 |
|
282 |
|
| 283 |
// Post traitement des données
|
283 |
// Post traitement des données
|
| 284 |
$titre = 'Évolution des observations sur un mois glissant';
|
284 |
$titre = 'Évolution des observations sur un mois glissant';
|
| 285 |
$valeurs_max = max($obs_totale);
|
285 |
$valeurs_max = max($obs_totale);
|
| 286 |
$valeurs = implode(',', $obs_totale);
|
286 |
$valeurs = implode(',', $obs_totale);
|
| 287 |
$y_val_fin = $valeurs_max;
|
287 |
$y_val_fin = $valeurs_max;
|
| Line 301... |
Line 301... |
| 301 |
'chxl' => '1:|'.$etiquettes_y2.'|2:|'.$etiquettes_x1.'|3:|'.$etiquettes_x2,
|
301 |
'chxl' => '1:|'.$etiquettes_y2.'|2:|'.$etiquettes_x1.'|3:|'.$etiquettes_x2,
|
| 302 |
'chxp' => '0,0|1,50',
|
302 |
'chxp' => '0,0|1,50',
|
| 303 |
'chxr' => "0,0,$y_val_fin,$y_pas",
|
303 |
'chxr' => "0,0,$y_val_fin,$y_pas",
|
| 304 |
'chm' => 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
|
304 |
'chm' => 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
|
| 305 |
'chxs' => '0,822013|1,822013');
|
305 |
'chxs' => '0,822013|1,822013');
|
| 306 |
|
306 |
|
| 307 |
return $graph;
|
307 |
return $graph;
|
| 308 |
}
|
308 |
}
|
| Line 309... |
Line 309... |
| 309 |
|
309 |
|
| 310 |
private function getEvolObsParMois($param) {
|
310 |
private function getEvolObsParMois($param) {
|
| Line 563... |
Line 563... |
| 563 |
'chxl' => "0:|$etiquettes",
|
563 |
'chxl' => "0:|$etiquettes",
|
| 564 |
//'chxp' => '1,0,20,40,60,80,100',// Grille sous forme de cible
|
564 |
//'chxp' => '1,0,20,40,60,80,100',// Grille sous forme de cible
|
| 565 |
'chm' => 'B,FF000080,0,1.0,5.0');
|
565 |
'chm' => 'B,FF000080,0,1.0,5.0');
|
| 566 |
return $graph;
|
566 |
return $graph;
|
| 567 |
}
|
567 |
}
|
| 568 |
|
568 |
|
| 569 |
private function creerWhereIndicationGeo($champ) {
|
569 |
private function creerWhereIndicationGeo($champ) {
|
| 570 |
$where = null;
|
570 |
$where = null;
|
| 571 |
if (isset($champ)) {
|
571 |
if (isset($champ)) {
|
| 572 |
$where = "$champ != '000null' ".
|
572 |
$where = "$champ != '000null' ".
|
| 573 |
"AND $champ != '' ".
|
573 |
"AND $champ != '' ".
|
| Line 594... |
Line 594... |
| 594 |
"date_transmission NOT LIKE '$aujourdhui%' ", 'date_transmission');
|
594 |
"date_transmission NOT LIKE '$aujourdhui%' ", 'date_transmission');
|
| 595 |
$obs_aujourdhui = $this->executerRequeteNombre('cel_obs', 'id_observation',
|
595 |
$obs_aujourdhui = $this->executerRequeteNombre('cel_obs', 'id_observation',
|
| 596 |
"(date_creation LIKE '$aujourdhui%'
|
596 |
"(date_creation LIKE '$aujourdhui%'
|
| 597 |
OR date_modification LIKE '$aujourdhui%'
|
597 |
OR date_modification LIKE '$aujourdhui%'
|
| 598 |
OR date_transmission LIKE '$aujourdhui%') ");
|
598 |
OR date_transmission LIKE '$aujourdhui%') ");
|
| 599 |
|
599 |
|
| 600 |
// Cummul des obs crées, modifiées, transmises par jour
|
600 |
// Cummul des obs crées, modifiées, transmises par jour
|
| 601 |
$donnees = array();
|
601 |
$donnees = array();
|
| 602 |
foreach ($max_obs as $obs_par_jour) {
|
602 |
foreach ($max_obs as $obs_par_jour) {
|
| 603 |
foreach ($obs_par_jour as $annee_mois_jour => $nbre) {
|
603 |
foreach ($obs_par_jour as $annee_mois_jour => $nbre) {
|
| 604 |
if (!isset($donnees[$annee_mois_jour])) {
|
604 |
if (!isset($donnees[$annee_mois_jour])) {
|
| Line 641... |
Line 641... |
| 641 |
private function getNbreObsParUtilisateur($param) {
|
641 |
private function getNbreObsParUtilisateur($param) {
|
| 642 |
// Récupération des données
|
642 |
// Récupération des données
|
| 643 |
$requete = 'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
|
643 |
$requete = 'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
|
| 644 |
'FROM cel_obs '.
|
644 |
'FROM cel_obs '.
|
| 645 |
'GROUP BY courriel_utilisateur ';
|
645 |
'GROUP BY courriel_utilisateur ';
|
| 646 |
$utilisateurs = Cel::db()->executerRequete($requete);
|
646 |
$utilisateurs = Cel::db()->requeter($requete);
|
| Line 647... |
Line 647... |
| 647 |
|
647 |
|
| 648 |
// Création des classes d'utilisateurs
|
648 |
// Création des classes d'utilisateurs
|
| 649 |
$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
|
649 |
$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
|
| 650 |
$donnees['Utilisateurs'] = $classes;
|
650 |
$donnees['Utilisateurs'] = $classes;
|
| Line 708... |
Line 708... |
| 708 |
private function getNbreObsParUtilisateurEtTest($param) {
|
708 |
private function getNbreObsParUtilisateurEtTest($param) {
|
| 709 |
// Récupération des données
|
709 |
// Récupération des données
|
| 710 |
$requete = 'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
|
710 |
$requete = 'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
|
| 711 |
'FROM cel_obs '.
|
711 |
'FROM cel_obs '.
|
| 712 |
'GROUP BY courriel_utilisateur ';
|
712 |
'GROUP BY courriel_utilisateur ';
|
| 713 |
$utilisateurs = Cel::db()->executerRequete($requete);
|
713 |
$utilisateurs = Cel::db()->requeter($requete);
|
| Line 714... |
Line 714... |
| 714 |
|
714 |
|
| 715 |
// Création des classes d'utilisateurs
|
715 |
// Création des classes d'utilisateurs
|
| 716 |
$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
|
716 |
$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
|
| 717 |
$donnees['Utilisateurs'] = $classes;
|
717 |
$donnees['Utilisateurs'] = $classes;
|
| Line 778... |
Line 778... |
| 778 |
return $graph;
|
778 |
return $graph;
|
| 779 |
}
|
779 |
}
|
| Line 780... |
Line 780... |
| 780 |
|
780 |
|
| 781 |
private function getNuagePointsObsParHeureEtJourSemaine($param) {
|
781 |
private function getNuagePointsObsParHeureEtJourSemaine($param) {
|
| 782 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : false;
|
782 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : false;
|
| 783 |
|
783 |
|
| 784 |
// Récupération des données de la base
|
784 |
// Récupération des données de la base
|
| 785 |
$requete = 'SELECT courriel_utilisateur, DATE_FORMAT(date_creation, "%w-%H") AS periode, (ROUND(LOG10(COUNT(id_observation))) + 1) AS nbre '.
|
785 |
$requete = 'SELECT courriel_utilisateur, DATE_FORMAT(date_creation, "%w-%H") AS periode, (ROUND(LOG10(COUNT(id_observation))) + 1) AS nbre '.
|
| 786 |
'FROM cel_obs '.
|
786 |
'FROM cel_obs '.
|
| 787 |
'WHERE date_creation != "0000-00-00 00:00:00" '.
|
787 |
'WHERE date_creation != "0000-00-00 00:00:00" '.
|
| 788 |
' AND courriel_utilisateur '.($utilisateur ? "= $utilisateur " : 'LIKE "%@%" ').
|
788 |
' AND courriel_utilisateur '.($utilisateur ? "= $utilisateur " : 'LIKE "%@%" ').
|
| 789 |
'GROUP BY periode, courriel_utilisateur ';
|
789 |
'GROUP BY periode, courriel_utilisateur ';
|
| 790 |
$infos = Cel::db()->executerRequete($requete);
|
790 |
$infos = Cel::db()->requeter($requete);
|
| 791 |
|
791 |
|
| 792 |
// Traitement résulat requête
|
792 |
// Traitement résulat requête
|
| 793 |
$observations = array();
|
793 |
$observations = array();
|
| 794 |
foreach ($infos as $info) {
|
794 |
foreach ($infos as $info) {
|
| 795 |
if (isset($observations[$info['periode']])) {
|
795 |
if (isset($observations[$info['periode']])) {
|
| 796 |
$observations[$info['periode']] += $info['nbre'];
|
796 |
$observations[$info['periode']] += $info['nbre'];
|
| 797 |
} else {
|
797 |
} else {
|
| 798 |
$observations[$info['periode']] = $info['nbre'];
|
798 |
$observations[$info['periode']] = $info['nbre'];
|
| 799 |
}
|
799 |
}
|
| 800 |
}
|
800 |
}
|
| 801 |
|
801 |
|
| 802 |
// Postraitement des données
|
802 |
// Postraitement des données
|
| 803 |
// Jour de la semaine
|
803 |
// Jour de la semaine
|
| 804 |
$donnees['joursSemaine'] = array();
|
804 |
$donnees['joursSemaine'] = array();
|
| 805 |
for ($njs = 0; $njs < 7; $njs++) {
|
805 |
for ($njs = 0; $njs < 7; $njs++) {
|
| Line 859... |
Line 859... |
| 859 |
'FROM cel_obs '.
|
859 |
'FROM cel_obs '.
|
| 860 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
860 |
"WHERE date_creation != '0000-00-00 00:00:00' ".
|
| 861 |
" AND courriel_utilisateur LIKE '%@%' ".
|
861 |
" AND courriel_utilisateur LIKE '%@%' ".
|
| 862 |
'GROUP BY courriel_utilisateur '.
|
862 |
'GROUP BY courriel_utilisateur '.
|
| 863 |
'ORDER BY date_min ASC ';
|
863 |
'ORDER BY date_min ASC ';
|
| 864 |
$resultats = Cel::db()->executerRequete($requete);
|
864 |
$resultats = Cel::db()->requeter($requete);
|
| Line 865... |
Line 865... |
| 865 |
|
865 |
|
| 866 |
// Trie des données
|
866 |
// Trie des données
|
| 867 |
$max_obs = 0;
|
867 |
$max_obs = 0;
|
| 868 |
$max_obs_log = 0;
|
868 |
$max_obs_log = 0;
|
| Line 926... |
Line 926... |
| 926 |
return $graph;
|
926 |
return $graph;
|
| 927 |
}
|
927 |
}
|
| Line 928... |
Line 928... |
| 928 |
|
928 |
|
| 929 |
private function executerRequeteEvol($table, $champ, $format_date = '%Y%m', $where = null, $champ_date = 'date_creation', $order_by = null, $limit = null) {
|
929 |
private function executerRequeteEvol($table, $champ, $format_date = '%Y%m', $where = null, $champ_date = 'date_creation', $order_by = null, $limit = null) {
|
| 930 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : false;
|
930 |
$utilisateur = isset($_GET['utilisateur']) ? Cel::db()->quote($_GET['utilisateur']) : false;
|
| 931 |
|
931 |
|
| 932 |
$requete = "SELECT DATE_FORMAT($champ_date, '$format_date') AS periode, COUNT($champ) AS nbre ".
|
932 |
$requete = "SELECT DATE_FORMAT($champ_date, '$format_date') AS periode, COUNT($champ) AS nbre ".
|
| 933 |
"FROM $table ".
|
933 |
"FROM $table ".
|
| 934 |
"WHERE $champ_date != '0000-00-00 00:00:00' ".
|
934 |
"WHERE $champ_date != '0000-00-00 00:00:00' ".
|
| 935 |
(($utilisateur != false) ? " AND courriel_utilisateur = $utilisateur " : '').
|
935 |
(($utilisateur != false) ? " AND courriel_utilisateur = $utilisateur " : '').
|
| 936 |
((is_null($where)) ? '' : " AND $where ").
|
936 |
((is_null($where)) ? '' : " AND $where ").
|
| 937 |
'GROUP BY periode '.
|
937 |
'GROUP BY periode '.
|
| 938 |
((is_null($order_by)) ? '' : "ORDER BY $order_by ");
|
938 |
((is_null($order_by)) ? '' : "ORDER BY $order_by ");
|
| Line 939... |
Line 939... |
| 939 |
((is_null($limit)) ? '' : "LIMIT $limit ");
|
939 |
((is_null($limit)) ? '' : "LIMIT $limit ");
|
| Line 940... |
Line 940... |
| 940 |
|
940 |
|
| 941 |
$evolution = Cel::db()->executerRequete($requete);
|
941 |
$evolution = Cel::db()->requeter($requete);
|
| 942 |
|
942 |
|
| 943 |
// Traitement du tableau
|
943 |
// Traitement du tableau
|
| Line 954... |
Line 954... |
| 954 |
if (isset($_GET['utilisateur'])) {
|
954 |
if (isset($_GET['utilisateur'])) {
|
| 955 |
$utilisateur = Cel::db()->quote($_GET['utilisateur']);
|
955 |
$utilisateur = Cel::db()->quote($_GET['utilisateur']);
|
| 956 |
$where = isset($where) ? $where.' AND ' : '';
|
956 |
$where = isset($where) ? $where.' AND ' : '';
|
| 957 |
$where .= "courriel_utilisateur = $utilisateur ";
|
957 |
$where .= "courriel_utilisateur = $utilisateur ";
|
| 958 |
}
|
958 |
}
|
| 959 |
|
959 |
|
| 960 |
$requete = "SELECT COUNT($champ) AS nbre ".
|
960 |
$requete = "SELECT COUNT($champ) AS nbre ".
|
| 961 |
"FROM $table ".
|
961 |
"FROM $table ".
|
| 962 |
((isset($where)) ? "WHERE $where " : '');
|
962 |
((isset($where)) ? "WHERE $where " : '');
|
| Line 963... |
Line 963... |
| 963 |
|
963 |
|
| 964 |
$nbre = Cel::db()->executerRequete($requete, 'Column');
|
964 |
$nbre = Cel::db()->requeterValeurUnique($requete);
|
| 965 |
return $nbre;
|
965 |
return $nbre;
|
| 966 |
}
|
966 |
}
|
| 967 |
}
|
967 |
}
|
| 968 |
?>
|
968 |
?>
|