172,21 → 172,25 |
$this->evenements_obs = array(); |
|
foreach($evenements as &$evenement) { |
$this->affecterTypeEvenement($evenement, $id_utilisateur); |
$this->evenementsObs[$evenement['id_observation']][] = $evenement['type']; |
$this->affecterTypeEvenement($evenement, $id_utilisateur, $evenement['id_observation']); |
} |
} |
|
private function affecterTypeEvenement(&$evenement, $id_utilisateur) { |
|
private function affecterTypeEvenement(&$evenement, $id_utilisateur, $id_observation) { |
|
$type = ""; |
$infos = ""; |
|
// 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'; |
$type = 'nouvelle_proposition'; |
$infos = $evenement['proposition_commentaire_nom_sel']; |
} else { |
$type = 'nouveau_commentaire'; |
$type = 'nouveau_commentaire'; |
$infos = $evenement['proposition_commentaire_texte']; |
} |
|
// J'ai commenté ou fait une proposition |
203,7 → 207,8 |
$type = 'nouvelle_reponse_autre_sur_proposition_vous'; |
} else { |
$type = 'nouvelle_reponse_autre_sur_commentaire_vous'; |
} |
} |
$infos = $evenement['proposition_commentaire_texte_commente']; |
break; |
// Quelqu'un a fait un nouveau vote |
case $evenement['date_vote']: |
214,19 → 219,32 |
} else { |
// Sur une proposition qui est à moi sur une observation (à moi ou non) |
$type .= "_autre_sur_com_vous"; |
} |
} |
$infos = $evenement['proposition_commentaire_nom_sel_votee']; |
break; |
|
// Quelqu'un a validé une proposition |
case $evenement['date_validation']: |
$type = "nouvelle_validation_autre_sur_prop_vous"; |
$type = "nouvelle_validation_autre_sur_prop_vous"; |
$infos = $evenement['proposition_validee_nom_sel']; |
// $type = "nouvelle_validation_vous_a_prop_autre"; |
break; |
// Cas qui ne devrait jamais arriver |
default: |
$type = 'inconnu'; |
$type = 'inconnu'; |
$infos = ""; |
} |
$evenement['type'] = $type; |
|
$infos_evts = array('type' => $type, 'infos_complementaires' => $infos); |
// La requête est un peu trop complexe et certains évènements sortent en doublons |
// donc on dédoublonne ici (mais ça n'est pas une solution pérenne) |
// TODO: optimiser et simplifier ceci |
if(empty($this->evenementsObs[$id_observation])) { |
$this->evenementsObs[$id_observation] = array(); |
} |
if(array_search($infos_evts, $this->evenementsObs[$id_observation]) === false) { |
$this->evenementsObs[$id_observation][] = $infos_evts; |
} |
} |
|
/** |