32,6 → 32,8 |
private $idsObsOrdonnees = array(); |
private $infosObs = array(); |
private $infosObsOrdonnee = array(); |
|
private $evenementsObs = array(); |
|
|
public function __construct(Conteneur $conteneur) { |
89,14 → 91,9 |
* @param db: l'instance de db |
*/ |
private function getIdObs() { |
$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '. |
'FROM del_observation AS do '. |
$this->sql->getJoin(). |
'WHERE '.$this->sql->getWhere(). |
$this->sql->getGroupBy(). |
$this->sql->getOrderBy(). |
$this->sql->getLimit(). |
' -- '.__FILE__.':'.__LINE__; |
|
$requete = $this->renvoyerRequeteSelonType(); |
|
//Debug::printr($requete); |
$resultats = $this->bdd->recupererTous($requete); |
|
108,6 → 105,35 |
} |
return $idObs; |
} |
|
private function renvoyerRequeteSelonType() { |
//TODO: interdire l'appel si l'on est pas connecté ? |
if($this->monActiviteEstDemandee()) { |
$gestion_utilisateur = new GestionUtilisateur($this->conteneur); |
$utilisateur = $gestion_utilisateur->getUtilisateurIdentifie(); |
$id_utilisateur = $utilisateur['id_utilisateur']; |
|
$requete = $this->sql->getRequeteIdObsMonactiviteTout($id_utilisateur, $this->sql->getLimit()).' -- '.__FILE__.':'.__LINE__; |
|
// Enregistrement de la date de consultation pour ne pas réafficher des évènements déjà consultés |
setcookie('del_date_derniere_consultation_evenements_'+$id_utilisateur, date('Y-m-d H:i:s'), time() + (60*60*24*100),'/'); |
} else { |
$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '. |
'FROM del_observation AS do '. |
$this->sql->getJoin(). |
'WHERE '.$this->sql->getWhere(). |
$this->sql->getGroupBy(). |
$this->sql->getOrderBy(). |
$this->sql->getLimit(). |
' -- '.__FILE__.':'.__LINE__; |
} |
|
return $requete; |
} |
|
private function monActiviteEstDemandee() { |
return isset($this->paramsFiltres['masque.type']) && in_array('monactivite',$this->paramsFiltres['masque.type']); |
} |
|
/** |
* Après avoir récupérer seulement les ids dans une première requête, nous récupérons maintenant les infos. |
127,10 → 153,70 |
' LEFT JOIN del_image AS di ON (do.id_observation = di.ce_observation) '. |
"WHERE id_observation IN ($idsObsConcat) ". |
' -- '.__FILE__.':'.__LINE__; |
|
if ($this->monActiviteEstDemandee()) { |
$this->stockerEvenementsObs($idsObsConcat); |
} |
|
//Debug::printr($requete); |
return $this->bdd->recupererTous($requete); |
} |
|
private function stockerEvenementsObs($idsObsConcat) { |
|
$gestion_utilisateur = new GestionUtilisateur($this->conteneur); |
$utilisateur = $gestion_utilisateur->getUtilisateurIdentifie(); |
$id_utilisateur = $utilisateur['id_utilisateur']; |
|
$evenements = $this->sql->getEvenementsObs($idsObsConcat, $id_utilisateur); |
|
$this->evenements_obs = array(); |
|
foreach($evenements as &$evenement) { |
$this->affecterTypeEvenement($evenement, $id_utilisateur); |
$this->evenementsObs[$evenement['id_observation']][] = $evenement['type']; |
} |
} |
|
private function affecterTypeEvenement(&$evenement, $id_utilisateur) { |
|
// La date maximale détermine le type d'évènement |
switch($evenement['date_max']) { |
// Quelqu'un a fait un nouveau commentaire ou proposition |
case $evenement['date_com']: |
if(!empty($evenement['nom_sel_com'])) { |
$type = 'nouvelle_proposition'; |
} else { |
$type = 'nouveau_commentaire'; |
} |
|
// J'ai commenté ou fait une proposition |
if($evenement['utilisateur_commentaire'] == $id_utilisateur) { |
$type .= "_vous_a_obs_autre"; |
} else { |
$type .= "_autre_sur_obs_vous"; |
} |
break; |
|
// Quelqu'un a fait un nouveau vote |
case $evenement['date_vote']: |
$type = 'nouveau vote'; |
// $type = "nouveau_vote_vous_a_com_autre"; |
$type = "nouveau_vote_autre_sur_com_vous"; |
break; |
|
// Quelqu'un a validé une proposition |
case $evenement['date_validation']: |
$type = "nouvelle_validation_autre_sur_prop_vous"; |
// $type = "nouvelle_validation_vous_a_prop_autre"; |
break; |
// Cas qui ne devrait jamais arriver |
default: |
$type = 'inconnu'; |
} |
$evenement['type'] = $type; |
} |
|
/** |
* Les informations étant extraites d'une vue dont les infos des obs sont dupliquées pour chaque image, |
* il nous faut maintenant récupérer qu'une seule fois les données d'observations et y intégrer les données |
148,6 → 234,10 |
$obsFormatees[$id] = $obs; |
} |
$obsFormatees[$id]['images'][] = $this->extraireInfosImage($obs); |
|
if(isset($this->evenementsObs[$id])) { |
$obsFormatees[$id]['evenements'] = $this->evenementsObs[$id]; |
} |
} |
return $obsFormatees; |
} |