Subversion Repositories eFlore/Applications.coel

Rev

Rev 1540 | Rev 1560 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1540 Rev 1548
Line 22... Line 22...
22
	
22
	
23
	/**
23
	/**
24
	 * Méthode appelée avec une requête de type GET.
24
	 * Méthode appelée avec une requête de type GET.
25
	 */
25
	 */
26
	public function getElement($param) {
26
	public function getElement($param) {
Line 27... Line 27...
27
		$info = null;
27
		$html = null;
28
		
28
		
29
		if (isset($param[0])) {
29
		if (isset($param[0])) {
30
			$service_demande = array_shift($param);
30
			$service_demande = array_shift($param);
31
			$this->parametres = $param;
31
			$this->parametres = $param;
32
			$methode = 'get'.$service_demande;
32
			$methode = 'get'.$service_demande;
33
			if (method_exists($this, $methode)) {
33
			if (method_exists($this, $methode)) {
34
				$info = $this->$methode();
34
				$html = $this->$methode();
35
			}
35
			}
36
		} else {
36
		} else {
Line 37... Line 37...
37
			$this->messages[] = "Le service COEL Statistique nécessite un paramètre.";
37
			$this->messages[] = "Le service COEL Statistique nécessite un paramètre.";
38
		}
38
		}
Line 39... Line 39...
39
		
39
		
40
		print $info;
40
		$this->envoyerHTML($html);
41
	}
41
	}
42
	
42
	
43
	private function getAccueil() {
43
	private function getAccueil() {
Line 44... Line 44...
44
		$html = '<h2>Bienvenue</h2>'.
44
		$html = '<h2>Bienvenue</h2>'.
45
			'<p>Vous utilisez Coel</p>';
45
			'<p>Vous utilisez Coel</p>';
46
		return $html;
46
		return $html;
47
	}
47
	}
48
	
48
	
49
	private function getNombreDonnees() {
49
	private function getNombreDonnees() {
50
		// Récupération des données
50
		// Récupération des données
51
		$types = array(	array('Commentaires', 'coel_commentaire', 'ccm_id_commentaire'),
51
		$types = array(	array('Commentaires', 'commentaire', 'ccm'),
52
						array('Publications', 'coel_publication', 'cpu_id_publication'),
52
						array('Publications', 'publication', 'cpu'),
53
						array('Personnes', 'coel_personne', 'cp_id_personne'),
53
						array('Personnes', 'personne', 'cp'),
54
						array('Collections', 'coel_collection', 'cc_id_collection'),
54
						array('Collections', 'collection', 'cc'),
55
						array('Structures', 'coel_structure', 'cs_id_structure'));
55
						array('Structures', 'structure', 'cs'));
Line 75... Line 75...
75
			'&chds=0,'.max($donnees).
75
			'&chds=0,'.max($donnees).
76
			'&chxt=y'.
76
			'&chxt=y'.
77
			'&chxl='.'0	:|'.$etiquettes.'|'.
77
			'&chxl='.'0	:|'.$etiquettes.'|'.
78
			'&chm=N ** ,000000,0,-1,10'.
78
			'&chm=N ** ,000000,0,-1,10'.
79
			'&chtt='.$titre;
79
			'&chtt='.$titre;
-
 
80
		
-
 
81
		// Retour du html contenant l'image
80
		return '<img src="'.$url.'"/>';
82
		$sortie = '<img src="'.$url.'"/>';
-
 
83
		return $sortie;
-
 
84
	}
-
 
85
	
-
 
86
	private function executerRequeteNombre($entite, $abr) {
-
 
87
		$table = 'coel_'.$entite;
-
 
88
		$champ_id = $abr.'_id_'.$entite;
-
 
89
		$champ_projet = $abr.'_ce_projet';
-
 
90
		$projet_id = (isset($this->parametres[0]) ? $this->bdd->quote($this->parametres[0]) : null);
-
 
91
		
-
 
92
		$requete = "SELECT COUNT($champ_id) AS nbre ".
-
 
93
			"FROM $table ".
-
 
94
			(is_null($projet_id) ? '' : "WHERE $champ_projet = $projet_id ");
-
 
95
		try {
-
 
96
			$nbre = $this->bdd->query($requete)->fetchColumn();
-
 
97
			if ($nbre === false) {
-
 
98
				$this->messages[] = "La requête a retourné aucun résultat.";
-
 
99
			}
-
 
100
		} catch (PDOException $e) {
-
 
101
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
102
		}
-
 
103
		return $nbre;
81
	}
104
	}
Line 82... Line 105...
82
 
105
 
83
	private function getMesDonnees() {
106
	private function getMesDonnees() {
84
		$personne_id = (isset($this->parametres[0]) ? $this->parametres[0] : null);
107
		$personne_id = (isset($this->parametres[0]) ? $this->parametres[0] : null);
85
		// Récupération des données
108
		// Récupération des données
86
		$types = array(	'Commentaires' => '107',
109
		$types = array(	'Commentaires' => '107',
87
						'Publications' => '118, 119',
110
						'Publications' => '118, 119',
88
						'Personnes' => '113, 114',
111
						'Personnes' => '113, 114',
89
						'Collections' => '101, 102, 103, 104, 105, 106',
112
						'Collections' => '101, 102, 103, 104, 105, 106',
90
						'Structures' => '120, 121, 122, 123');
113
						'Structures' => '120, 121, 122, 123');
91
		$etats = array(	1 => 'Ajouts',
114
		$etats = array(1 => 'Ajouts',
92
						2 => 'Modifications',
115
						2 => 'Modifications',
93
						3 => 'Suppressions');
116
						3 => 'Suppressions');
94
		$donnees = array();
117
		$donnees = array();
95
		foreach ($types as $type => $table_identifiants) {
118
		foreach ($types as $type => $table_identifiants) {
96
			foreach ($etats as $etat_id => $etat_type) {
119
			foreach ($etats as $etat_id => $etat_type) {
97
				$donnees[$etat_type][$type] = $this->executerRequeteNombreDansHistorique($table_identifiants, $etat_id, $personne_id);
120
				$donnees[$etat_type][$type] = $this->executerRequeteNombreDansHistorique($table_identifiants, $etat_id, $personne_id);
98
			}
121
			}
Line 99... Line 122...
99
		}
122
		}
100
		
123
		
101
		// Post traitement des données de la base de données
124
		// Post traitement des données de la base de données
102
		$titre = str_replace(' ', '+', 'Ma participation');
125
		$titre = str_replace(' ', '+', 'Ma participation tous projets confondus');
103
		$max_global = array();
126
		$max_global = array();
104
		$ensembles_donnees = array();
127
		$ensembles_donnees = array();
Line 121... Line 144...
121
		$etiquettes_x = "0|$moitier|$maximum";
144
		$etiquettes_x = "0|$moitier|$maximum";
Line 122... Line 145...
122
		
145
		
123
		// Construire de l'url de l'image
146
		// Construire de l'url de l'image
124
		$url = 'http://chart.apis.google.com/chart?'.
147
		$url = 'http://chart.apis.google.com/chart?'.
125
			'cht=bhs'.
148
			'cht=bhs'.
126
			'&chs=300x180'.
149
			'&chs=320x180'.
127
			'&chbh=a,2,4'.
150
			'&chbh=a,2,4'.
128
			'&chco=66B032,FABC02,FE2712'.
151
			'&chco=66B032,FABC02,FE2712'.
129
			'&chdl='.$legende.
152
			'&chdl='.$legende.
130
			'&chdlp=b'.
153
			'&chdlp=b'.
131
			'&chd=t:'.$valeurs.
154
			'&chd=t:'.$valeurs.
132
			'&chds=0,'.$maximum.
155
			'&chds=0,'.$maximum.
133
			'&chxt=y,x'.
156
			'&chxt=y,x'.
134
			'&chxl='.'0:|'.$etiquettes.'|1:|'.$etiquettes_x.
157
			'&chxl='.'0:|'.$etiquettes.'|1:|'.$etiquettes_x.
135
			'&chm=N,000000,0,-1,10,1|N,000000,1,-1,10,1|N,000000,2,-1,10,1'.
158
			'&chm=N,000000,0,-1,10,1|N,000000,1,-1,10,1|N,000000,2,-1,10,1'.
-
 
159
			'&chtt='.$titre;
-
 
160
		
136
			'&chtt='.$titre;
161
		// Retour du html contenant l'image
-
 
162
		$sortie = '<img src="'.$url.'"/>';
-
 
163
		return $sortie;
-
 
164
	}
-
 
165
	
-
 
166
	private function executerRequeteNombreDansHistorique($table_identifiants, $etat, $personne_id = null) {
-
 
167
		$requete = 	"SELECT COUNT(cmhl_date_modification) AS nbre ".
-
 
168
					"FROM coel_meta_historique_ligne ".
-
 
169
					"WHERE cmhl_ce_table IN ($table_identifiants) ".
-
 
170
					"	AND cmhl_ce_etat = $etat ".
-
 
171
					(isset($personne_id) ? "	AND cmhl_ce_modifier_par = $personne_id " : '');
-
 
172
		try {
-
 
173
			$nbre = $this->bdd->query($requete)->fetchColumn();
-
 
174
			if ($nbre === false) {
-
 
175
				$this->messages[] = "La requête a retourné aucun résultat.";
-
 
176
			}
-
 
177
		} catch (PDOException $e) {
-
 
178
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
179
		}
137
		return '<img src="'.$url.'"/>';
180
		return $nbre;
Line 138... Line 181...
138
	}
181
	}
-
 
182
	
-
 
183
	private function getTypeDepot() {
-
 
184
		// Récupération des paramêtres
139
	
185
		$projet_id = (isset($this->parametres[0]) ? $this->bdd->quote($this->parametres[0]) : null);
140
	private function getTypeDepot() {
186
		
141
		// Récupération des données
187
		// Récupération des données
142
		$requete = 	'SELECT cmlv_nom AS type, COUNT(cc_ce_type_depot) AS nbre '.
188
		$requete = 	'SELECT cmlv_nom AS type, COUNT(cc_ce_type_depot) AS nbre '.
-
 
189
					'FROM coel_collection '.
143
					'FROM coel_collection '.
190
					'	LEFT JOIN coel_meta_liste_valeur ON (cc_ce_type_depot = cmlv_id_valeur) '.
144
					'	LEFT JOIN coel_meta_liste_valeur ON (cc_ce_type_depot = cmlv_id_valeur) '.
191
					( is_null($projet_id) ? '' : "WHERE cc_ce_projet = $projet_id ").
145
					'GROUP BY cc_ce_type_depot';
192
					'GROUP BY cc_ce_type_depot';
146
		try {
193
		try {
147
			$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
194
			$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
Line 154... Line 201...
154
		
201
		
155
		// Post traitement des données de la base de données
202
		// Post traitement des données de la base de données
156
		$titre = str_replace(' ', '+', 'Type de dépôt|des collections');
203
		$titre = str_replace(' ', '+', 'Type de dépôt|des collections');
157
		$donnees = array();
204
		$donnees = array();
-
 
205
		foreach ($infos as $info) {
-
 
206
			if ($info['type'] != '') {
-
 
207
				$cle = $info['type'];
-
 
208
			} else {
-
 
209
				$cle = 'Non renseigné';
158
		foreach ($infos as $info) {
210
			}
159
			$donnees[$info['type']] = $info['nbre'];
211
			$donnees[$cle] = $info['nbre'];
160
		}
212
		}
161
		asort($donnees);
213
		asort($donnees);
162
		$valeurs = implode(',', $donnees);
214
		$valeurs = implode(',', $donnees);
163
		arsort($donnees);
215
		arsort($donnees);
Line 175... Line 227...
175
			'&chm=N *,000000,0,-1,10'.
227
			'&chm=N *,000000,0,-1,10'.
176
			'&chtt='.$titre.
228
			'&chtt='.$titre.
177
			'&chts=000000,12';
229
			'&chts=000000,12';
Line 178... Line 230...
178
		
230
		
179
		// Retour du html contenant l'image
231
		// Retour du html contenant l'image
-
 
232
		$sortie = '<img src="'.$url.'"/>';
180
		return '<img src="'.$url.'"/>';
233
		return $sortie;
Line 181... Line 234...
181
	}
234
	}
182
	
235
	
183
	private function getNombreCollectionParStructure() {
236
	private function getNombreCollectionParStructure() {
Line 246... Line 299...
246
			'&chtt='.$titre.
299
			'&chtt='.$titre.
247
			'&chts=000000,12';
300
			'&chts=000000,12';
Line 248... Line 301...
248
		
301
		
249
		// Retour du html contenant l'image
302
		// Retour du html contenant l'image
250
		$sortie = '<img src="'.$url.'"/>';
303
		$sortie = '<img src="'.$url.'"/>';
251
		$this->envoyerHTML($sortie);
304
		return $sortie;
Line 252... Line 305...
252
	}
305
	}
253
	
306
	
254
	private function getNombrePartParStructure() {
307
	private function getNombrePartParStructure() {
Line 328... Line 381...
328
			'&chts=000000,11.5'.
381
			'&chts=000000,11.5'.
329
			'&chts=000000,12';
382
			'&chts=000000,12';
Line 330... Line 383...
330
		
383
		
331
		// Retour du html contenant l'image
384
		// Retour du html contenant l'image
332
		$sortie = '<img src="'.$url.'"/>';
385
		$sortie = '<img src="'.$url.'"/>';
333
		$this->envoyerHTML($sortie);
386
		return $sortie;
Line 334... Line 387...
334
	}
387
	}
335
	
388
	
336
	private function getNombrePartParCollection() {
389
	private function getNombrePartParCollection() {
Line 414... Line 467...
414
				'&chts=000000,12';
467
				'&chts=000000,12';
Line 415... Line 468...
415
			
468
			
416
			// Retour du html contenant l'image
469
			// Retour du html contenant l'image
417
			$sortie = '<img src="'.$url.'"/>';
470
			$sortie = '<img src="'.$url.'"/>';
418
		}
471
		}
419
		$this->envoyerHTML($sortie);
472
		return $sortie;
Line 420... Line 473...
420
	}
473
	}
421
	
474
	
422
	private function getNombreCollectionParDepartement() {
475
	private function getNombreCollectionParDepartement() {
Line 483... Line 536...
483
				$sortie = '<img src="'.$url.'"/>';
536
				$sortie = '<img src="'.$url.'"/>';
484
			}
537
			}
485
		} else {
538
		} else {
486
			$this->messages[] = "Veuillez sélectionner un projet pour voir le graphique.";
539
			$this->messages[] = "Veuillez sélectionner un projet pour voir le graphique.";
487
		}
540
		}
488
		$this->envoyerHTML($sortie);
541
		return $sortie;
489
	}
542
	}
Line 490... Line 543...
490
	
543
	
491
	private function getNombreCollectionParTypeStructure() {
544
	private function getNombreCollectionParTypeStructure() {
492
		// Récupération des paramêtres
545
		// Récupération des paramêtres
Line 555... Line 608...
555
				'&chts=000000,12';
608
				'&chts=000000,12';
Line 556... Line 609...
556
			
609
			
557
			// Retour du html contenant l'image
610
			// Retour du html contenant l'image
558
			$sortie = '<img src="'.$url.'"/>';
611
			$sortie = '<img src="'.$url.'"/>';
559
		}
612
		}
560
		$this->envoyerHTML($sortie);
613
		return $sortie;
Line 561... Line 614...
561
	}
614
	}
562
	
615
	
563
	private function getNombreCollectionParPeriode() {
616
	private function getNombreCollectionParPeriode() {
Line 649... Line 702...
649
				'&chts=000000,12';
702
				'&chts=000000,12';
Line 650... Line 703...
650
			
703
			
651
			// Retour du html contenant l'image
704
			// Retour du html contenant l'image
652
			$sortie = '<img src="'.$url.'"/>';
705
			$sortie = '<img src="'.$url.'"/>';
653
		}
706
		}
654
		$this->envoyerHTML($sortie);
707
		return $sortie;
Line 655... Line 708...
655
	}
708
	}
656
	
709
	
657
	private function getNombreHerbierParType() {
710
	private function getNombreHerbierParType() {
Line 735... Line 788...
735
				'&chts=000000,12';
788
				'&chts=000000,12';
Line 736... Line 789...
736
			
789
			
737
			// Retour du html contenant l'image
790
			// Retour du html contenant l'image
738
			$sortie = '<img src="'.$url.'"/>';
791
			$sortie = '<img src="'.$url.'"/>';
739
		}
-
 
740
		$this->envoyerHTML($sortie);
-
 
741
	}
-
 
742
		
-
 
743
	private function executerRequeteNombreDansHistorique($table_identifiants, $etat, $personne_id = null) {
-
 
744
		$requete = 	"SELECT COUNT(cmhl_date_modification) AS nbre ".
-
 
745
					"FROM coel_meta_historique_ligne ".
-
 
746
					"WHERE cmhl_ce_table IN ($table_identifiants) ".
-
 
747
					"	AND cmhl_ce_etat = $etat ".
-
 
748
					(isset($personne_id) ? "	AND cmhl_ce_modifier_par = $personne_id " : '');
-
 
749
		try {
-
 
750
			$nbre = $this->bdd->query($requete)->fetchColumn();
-
 
751
			if ($nbre === false) {
-
 
752
				$this->messages[] = "La requête a retourné aucun résultat.";
-
 
753
			}
-
 
754
		} catch (PDOException $e) {
-
 
755
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
756
		}
792
		}
757
		return $nbre;
-
 
758
	}
-
 
759
	
-
 
760
	private function executerRequeteNombre($table, $champ) {
-
 
761
		$requete = "SELECT COUNT($champ) AS nbre FROM $table";
-
 
762
		try {
-
 
763
			$nbre = $this->bdd->query($requete)->fetchColumn();
-
 
764
			if ($nbre === false) {
-
 
765
				$this->messages[] = "La requête a retourné aucun résultat.";
-
 
766
			}
-
 
767
		} catch (PDOException $e) {
-
 
768
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
-
 
769
		}
-
 
770
		return $nbre;
793
		return $sortie;
771
	}
794
	}
772
}
795
}