743,4 → 743,92 |
$resultat = $this->bdd->recuperer('SELECT FOUND_ROWS() AS nbre -- '.__FILE__.':'.__LINE__); |
return intval($resultat['nbre']); |
} |
|
public function getRequeteIdObsMonactiviteTout($id_utilisateur, $limite = "") { |
/* |
- Faire apparaitre un chiffre sur la maison lorsque certains évènement se sont produits |
- Les actions des autres sur mes observations ou sur mes proposition ou commentaires |
- Les observations à venir valider |
- Mes observations validées |
|
|
Une action c'est : |
- Quelqu'un commente mon observation |
- Quelqu'un fait une proposition sur mon observation |
|
- Quelqu'un vote pour ma proposition |
- Quelqu'un commente ma proposition ou mon commentaire |
|
- Quelqu'un vote pour une proposition sur mon observation |
- Quelqu'un commente une proposition ou un commentaire sur mon observation |
*/ |
|
$requete = "SELECT SQL_CALC_FOUND_ROWS id_observation FROM del_observation do ". |
$this->getJointureMonActivite($id_utilisateur). |
$this->getConditionMonActivite($id_utilisateur). |
"ORDER BY ".$this->getCombinaisonChampsDateMax()." DESC ". |
$limite; |
|
return $requete; |
} |
|
public function getRequeteNbEvenementsDepuisDate($id_utilisateur, $date) { |
$requete = "SELECT COUNT(DISTINCT id_observation) as nb_evenements FROM del_observation do ". |
$this->getJointureMonActivite($id_utilisateur). |
$this->getConditionMonActivite($id_utilisateur). |
"AND ".$this->getCombinaisonChampsDateMax()." > '".$date."' ". |
"ORDER BY ".$this->getCombinaisonChampsDateMax()." DESC "; |
|
return $requete; |
} |
|
public function getEvenementsObs($idsObsConcat, $id_utilisateur) { |
$sous_champ_date_max = $this->getCombinaisonChampsDateMax()." as date_max"; |
$sous_champ_date = "dc.date as date_com, dc.nom_sel as nom_sel_com, dc.ce_commentaire_parent as parent_com, dcv.date as date_vote, do.date_observation as date_obs, dcp.date_validation as date_validation"; |
$sous_champs_utilisateurs = "dc.ce_utilisateur as utilisateur_commentaire, dcp.ce_utilisateur as utilisateur_commentaire_valide, dcv.ce_utilisateur as utilisateur_vote_commentaire, do.ce_utilisateur as utilisateur_observation, dcp.ce_validateur as utilisateur_validation"; |
|
$requete = "SELECT DISTINCT id_observation, ".$sous_champs_utilisateurs.", ".$sous_champ_date_max.", ".$sous_champ_date." ". |
"FROM del_observation do ". |
$this->getJointureMonActivite($id_utilisateur). |
$this->getConditionMonActivite($id_utilisateur). |
"AND id_observation IN ($idsObsConcat) ORDER BY date_max DESC"; |
|
$evenements = $this->bdd->recupererTous($requete); |
|
return $evenements; |
} |
|
public function getJointureMonActivite($id_utilisateur) { |
return // quelqu'un commente mon observation ou fait une proposition |
"LEFT JOIN del_commentaire dc ON do.id_observation = dc.ce_observation ". |
" AND do.ce_utilisateur = ".$id_utilisateur." ". |
" AND dc.ce_utilisateur != ".$id_utilisateur." ". |
// quelqu'un valide ma proposition (et ce n'est pas moi qui l'ai validée) |
"LEFT JOIN del_commentaire dcp ON do.id_observation = dcp.ce_observation ". |
" AND dcp.nom_sel IS NOT NULL AND dcp.ce_validateur != ".$id_utilisateur." ". |
" AND dcp.ce_validateur != 0 ". |
" AND dcp.date_validation IS NOT NULL ". |
" AND dcp.ce_utilisateur = ".$id_utilisateur." ". |
// quelqu'un vote pour ma proposition (que ce soit mon observation ou pas) |
"LEFT JOIN del_commentaire dcvp ON do.id_observation = dcvp.ce_observation ". |
"LEFT JOIN del_commentaire_vote dcv ON dcv.ce_proposition = dcvp.id_commentaire ". |
"AND (dcvp.ce_utilisateur = $id_utilisateur OR do.ce_utilisateur = $id_utilisateur) ". |
"AND dcv.ce_utilisateur != dcvp.ce_utilisateur "; |
} |
|
public function getConditionMonActivite($id_utilisateur, $type = "autres") { |
//TODO: gérer les cas suivants : |
// demander les activités des autres sur mes obs ou propositions (c'est dejà le cas) |
// demander mes activités |
// demander toutes les activités (combinaisons des deux cas ci dessus) |
return // Vérification que l'évènement me concerne (de près ou ou de loin) |
"WHERE (do.ce_utilisateur = $id_utilisateur OR dc.ce_utilisateur = $id_utilisateur ". |
"OR dcp.ce_utilisateur = $id_utilisateur OR dcv.ce_utilisateur = $id_utilisateur) AND ". |
// mais qu'il y a au moins eu une action de la part d'une autre personne |
"(dc.ce_utilisateur IS NOT NULL OR dcp.ce_utilisateur IS NOT NULL OR dcv.ce_utilisateur IS NOT NULL) "; |
} |
|
private function getCombinaisonChampsDateMax() { |
return "GREATEST(IFNULL(dc.date,0), IFNULL(dcv.date,0), IFNULL(do.date_observation,0), IFNULL(dcp.date_validation,0))"; |
} |
} |