Subversion Repositories eFlore/Applications.del

Rev

Rev 2095 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2095 Rev 2138
Line 71... Line 71...
71
			$this->infosObsOrdonnees = $this->formaterObservations();
71
			$this->infosObsOrdonnees = $this->formaterObservations();
72
			// 4) Ajouter commentaires + votes à $this->infosObsOrdonnees
72
			// 4) Ajouter commentaires + votes à $this->infosObsOrdonnees
73
			$this->chargerDeterminations();
73
			$this->chargerDeterminations();
Line 74... Line 74...
74
 
74
 
75
			$resultat->corps = array(
75
			$resultat->corps = array(
76
				'entete' => $this->navigation->getEntete(),	
76
				'entete' => $this->navigation->getEntete(),	
77
				// 5) Applatissage du tableau afin de garder l'ordre de tri
77
				// 5) Applatissage du tableau afin de garder l'ordre de tri
78
				// (qui n'est pas garanti dans un objet json)
78
				// (qui n'est pas garanti dans un objet json)
79
				'resultats' => array_values($this->infosObsOrdonnees));
79
				'resultats' => array_values($this->infosObsOrdonnees));
80
		}
80
		}
Line 105... Line 105...
105
		}
105
		}
106
		return $idObs;
106
		return $idObs;
107
	}
107
	}
Line 108... Line 108...
108
	
108
	
109
	private function renvoyerRequeteSelonType() {
109
	private function renvoyerRequeteSelonType() {
110
		if($this->monActiviteEstDemandee()) {
110
		if($this->monActiviteEstDemandee()) {
111
			$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
111
			$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
112
			$utilisateur = $gestion_utilisateur->getUtilisateur();
112
			$utilisateur = $gestion_utilisateur->getUtilisateur();
113
			if ($utilisateur['connecte'] === true) {
113
			if ($utilisateur['connecte'] === true) {
114
				$id_utilisateur = $utilisateur['id_utilisateur'];
114
				$id_utilisateur = $utilisateur['id_utilisateur'];
115
				$requete = $this->sql->getRequeteIdObsMonactiviteTout($id_utilisateur, $this->sql->getLimit()).' -- '.__FILE__.':'.__LINE__;
115
				$requete = $this->sql->getRequeteIdObsMonactiviteTout($id_utilisateur, $this->sql->getLimit()).' -- '.__FILE__.':'.__LINE__;
116
				// Enregistrement de la date de consultation pour ne pas réafficher des événements déjà consultés
116
				// Enregistrement de la date de consultation pour ne pas réafficher des événements déjà consultés
117
				$gestion_utilisateur->setDerniereDateConsultationEvenements($id_utilisateur, date('Y-m-d H:i:s'));
117
				$gestion_utilisateur->setDerniereDateConsultationEvenements($id_utilisateur, date('Y-m-d H:i:s'));
118
			} else {
118
			} else {
119
				//TODO: que faire si l'on n'est pas connecté ?
119
				//TODO: que faire si l'on n'est pas connecté ?
120
			}
120
			}
121
		} else {
121
		} else {
122
			$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '.
122
			$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '.
123
					'FROM del_observation AS do '.
123
					'FROM del_observation AS do '.
124
					$this->sql->getJoin().
124
					$this->sql->getJoin().
125
					'WHERE '.$this->sql->getWhere().
125
					'WHERE '.$this->sql->getWhere().
126
					$this->sql->getGroupBy().
126
					$this->sql->getGroupBy().
127
					$this->sql->getOrderBy().
127
					$this->sql->getOrderBy().
128
					$this->sql->getLimit().
128
					$this->sql->getLimit().
129
					' -- '.__FILE__.':'.__LINE__;
129
					' -- '.__FILE__.':'.__LINE__;
-
 
130
		}
130
		}
131
		/*echo "REQ: "; var_dump($requete);
131
		
132
		exit;*/
132
		return $requete;
133
		return $requete;
Line 133... Line 134...
133
	}
134
	}
134
	
135
	
Line 153... Line 154...
153
			'FROM del_observation AS do '.
154
			'FROM del_observation AS do '.
154
			'	LEFT JOIN del_image AS di ON (do.id_observation = di.ce_observation) '.
155
			'	LEFT JOIN del_image AS di ON (do.id_observation = di.ce_observation) '.
155
			"WHERE id_observation IN ($idsObsConcat) ".
156
			"WHERE id_observation IN ($idsObsConcat) ".
156
			' -- '.__FILE__.':'.__LINE__;
157
			' -- '.__FILE__.':'.__LINE__;
Line 157... Line 158...
157
		
158
		
158
		if ($this->monActiviteEstDemandee()) {
159
		if ($this->monActiviteEstDemandee()) {
159
			$this->stockerEvenementsObs($idsObsConcat);
160
			$this->stockerEvenementsObs($idsObsConcat);
Line 160... Line 161...
160
		}		
161
		}		
161
		
162
		
162
		//Debug::printr($requete);
163
		//Debug::printr($requete);
Line 163... Line 164...
163
		return $this->bdd->recupererTous($requete);
164
		return $this->bdd->recupererTous($requete);
164
	}
165
	}
165
	
166
	
166
	private function stockerEvenementsObs($idsObsConcat) {
167
	private function stockerEvenementsObs($idsObsConcat) {
167
			$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
168
			$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
168
			$utilisateur = $gestion_utilisateur->getUtilisateur();
169
			$utilisateur = $gestion_utilisateur->getUtilisateur();
169
			$id_utilisateur = $utilisateur['id_utilisateur'];
170
			$id_utilisateur = $utilisateur['id_utilisateur'];
Line 170... Line 171...
170
			
171
			
171
			$evenements = $this->sql->getEvenementsObs($idsObsConcat, $id_utilisateur);			
172
			$evenements = $this->sql->getEvenementsObs($idsObsConcat, $id_utilisateur);			
Line 179... Line 180...
179
	private function affecterTypeEvenement(&$evenement, $id_utilisateur, $id_observation) {
180
	private function affecterTypeEvenement(&$evenement, $id_utilisateur, $id_observation) {
Line 180... Line 181...
180
 
181
 
181
		$type = "";
182
		$type = "";
Line 182... Line 183...
182
		$infos = "";
183
		$infos = "";
183
		
184
		
184
		// La date maximale détermine le type d'évènement
185
		// La date maximale détermine le type d'évènement
185
		switch($evenement['date_max']) {
186
		switch($evenement['date_max']) {
186
			// Quelqu'un a fait un nouveau commentaire ou proposition
187
			// Quelqu'un a fait un nouveau commentaire ou proposition
187
			case $evenement['date_com']:
188
			case $evenement['date_com']:
188
				if(!empty($evenement['nom_sel_com'])) {
189
				if(!empty($evenement['nom_sel_com'])) {
189
					$type = 'nouvelle_proposition';
190
					$type = 'nouvelle_proposition';
190
					$infos = $evenement['proposition_commentaire_nom_sel'];
191
					$infos = $evenement['proposition_commentaire_nom_sel'];
191
				} else {
192
				} else {
192
					$type = 'nouveau_commentaire';
193
					$type = 'nouveau_commentaire';
Line 193... Line 194...
193
					$infos = $evenement['proposition_commentaire_texte'];
194
					$infos = $evenement['proposition_commentaire_texte'];
194
				}
195
				}
195
				
196
				
196
				// J'ai commenté ou fait une proposition
197
				// J'ai commenté ou fait une proposition
197
				if($evenement['utilisateur_commentaire'] == $id_utilisateur) {
198
				if($evenement['utilisateur_commentaire'] == $id_utilisateur) {
198
					$type .= "_vous_a_obs_autre";
199
					$type .= "_vous_a_obs_autre";
199
				} else {
200
				} else {
Line 200... Line 201...
200
					$type .= "_autre_sur_obs_vous";
201
					$type .= "_autre_sur_obs_vous";
201
				}
202
				}
202
				break;
203
				break;
203
 
204
 
204
			// Quelqu'un a répondu à un de mes commentaires ou une de mes propositions
205
			// Quelqu'un a répondu à un de mes commentaires ou une de mes propositions
205
			case $evenement['date_com_reponse']:
206
			case $evenement['date_com_reponse']:
206
					if(!empty($evenement['nom_sel_com_parent'])) {
207
					if(!empty($evenement['nom_sel_com_parent'])) {
207
						$type = 'nouvelle_reponse_autre_sur_proposition_vous';
208
						$type = 'nouvelle_reponse_autre_sur_proposition_vous';
208
					} else {
209
					} else {
209
						$type = 'nouvelle_reponse_autre_sur_commentaire_vous';
210
						$type = 'nouvelle_reponse_autre_sur_commentaire_vous';
210
					}
211
					}
211
					$infos = $evenement['proposition_commentaire_texte_commente'];
212
					$infos = $evenement['proposition_commentaire_texte_commente'];
212
				break;
213
				break;
213
				// Quelqu'un a fait un nouveau vote
214
				// Quelqu'un a fait un nouveau vote
214
			case $evenement['date_vote']:
215
			case $evenement['date_vote']:
215
				$type = 'nouveau_vote';
216
				$type = 'nouveau_vote';
216
				// Sur une proposition qui n'est pas à moi sur une observation à moi
217
				// Sur une proposition qui n'est pas à moi sur une observation à moi
217
				if($evenement['utilisateur_commentaire_vote'] != $evenement['utilisateur_observation'] && $evenement['utilisateur_commentaire_vote'] != $id_utilisateur) {
218
				if($evenement['utilisateur_commentaire_vote'] != $evenement['utilisateur_observation'] && $evenement['utilisateur_commentaire_vote'] != $id_utilisateur) {
218
					$type .= "_autre_sur_com_autre_obs_vous";
219
					$type .= "_autre_sur_com_autre_obs_vous";
219
				} else {
220
				} else {
220
					// Sur une proposition qui est à moi sur une observation (à moi ou non)
221
					// Sur une proposition qui est à moi sur une observation (à moi ou non)
221
					$type .= "_autre_sur_com_vous";
222
					$type .= "_autre_sur_com_vous";
222
				}	
223
				}	
223
				$infos = $evenement['proposition_commentaire_nom_sel_votee'];	
224
				$infos = $evenement['proposition_commentaire_nom_sel_votee'];	
224
				break;
225
				break;
225
		
226
		
226
				// Quelqu'un a validé une proposition
227
				// Quelqu'un a validé une proposition
227
			case $evenement['date_validation']:
228
			case $evenement['date_validation']:
228
				$type = "nouvelle_validation_autre_sur_prop_vous";
229
				$type = "nouvelle_validation_autre_sur_prop_vous";
229
				$infos = $evenement['proposition_validee_nom_sel'];
230
				$infos = $evenement['proposition_validee_nom_sel'];
230
				// $type = "nouvelle_validation_vous_a_prop_autre";
231
				// $type = "nouvelle_validation_vous_a_prop_autre";
231
				break;
232
				break;
232
				// Cas qui ne devrait jamais arriver
233
				// Cas qui ne devrait jamais arriver
Line 233... Line 234...
233
			default:
234
			default:
234
				$type = 'inconnu';
235
				$type = 'inconnu';
235
				$infos = "";
236
				$infos = "";
Line 355... Line 356...
355
		}
356
		}
356
		return $voteFormate;
357
		return $voteFormate;
357
	}
358
	}
Line 358... Line 359...
358
	
359
	
359
	private function chargerNombreCommentaireObs() {
360
	private function chargerNombreCommentaireObs() {
360
		$idObsConcat = implode(',', $this->idsObsOrdonnees);	
361
		$idObsConcat = implode(',', $this->idsObsOrdonnees);	
361
		$requete = 'SELECT ce_observation, COUNT( id_commentaire ) AS nb '.
362
		$requete = 'SELECT ce_observation, COUNT( id_commentaire ) AS nb '.
362
				'FROM del_commentaire '.
363
				'FROM del_commentaire '.
363
				"WHERE ce_observation IN ($idObsConcat) ".
364
				"WHERE ce_observation IN ($idObsConcat) ".
364
				'GROUP BY ce_observation '.
365
				'GROUP BY ce_observation '.
365
				'-- '.__FILE__.':'.__LINE__;
366
				'-- '.__FILE__.':'.__LINE__;
Line 366... Line 367...
366
		$commentaires = $this->bdd->recupererTous($requete);
367
		$commentaires = $this->bdd->recupererTous($requete);
367
		
368
		
368
		$commentaires_par_obs = array();
369
		$commentaires_par_obs = array();
369
		foreach($commentaires as $commentaire) {
370
		foreach($commentaires as $commentaire) {
370
			$commentaires_par_obs[$commentaire['ce_observation']] = $commentaire['nb'];
371
			$commentaires_par_obs[$commentaire['ce_observation']] = $commentaire['nb'];
371
		}
372
		}
372
		
373
		
Line 373... Line 374...
373
		return $commentaires_par_obs;
374
		return $commentaires_par_obs;
374
	}
375
	}
375
 
376