Line 741... |
Line 741... |
741 |
|
741 |
|
742 |
public function getTotalLignesTrouvees() {
|
742 |
public function getTotalLignesTrouvees() {
|
743 |
$resultat = $this->bdd->recuperer('SELECT FOUND_ROWS() AS nbre -- '.__FILE__.':'.__LINE__);
|
743 |
$resultat = $this->bdd->recuperer('SELECT FOUND_ROWS() AS nbre -- '.__FILE__.':'.__LINE__);
|
744 |
return intval($resultat['nbre']);
|
744 |
return intval($resultat['nbre']);
|
- |
|
745 |
}
|
- |
|
746 |
|
- |
|
747 |
public function getRequeteIdObsMonactiviteTout($id_utilisateur, $limite = "") {
|
- |
|
748 |
/*
|
- |
|
749 |
- Faire apparaitre un chiffre sur la maison lorsque certains évènement se sont produits
|
- |
|
750 |
- Les actions des autres sur mes observations ou sur mes proposition ou commentaires
|
- |
|
751 |
- Les observations à venir valider
|
- |
|
752 |
- Mes observations validées
|
- |
|
753 |
|
- |
|
754 |
|
- |
|
755 |
Une action c'est :
|
- |
|
756 |
- Quelqu'un commente mon observation
|
- |
|
757 |
- Quelqu'un fait une proposition sur mon observation
|
- |
|
758 |
|
- |
|
759 |
- Quelqu'un vote pour ma proposition
|
- |
|
760 |
- Quelqu'un commente ma proposition ou mon commentaire
|
- |
|
761 |
|
- |
|
762 |
- Quelqu'un vote pour une proposition sur mon observation
|
- |
|
763 |
- Quelqu'un commente une proposition ou un commentaire sur mon observation
|
- |
|
764 |
*/
|
- |
|
765 |
|
- |
|
766 |
$requete = "SELECT SQL_CALC_FOUND_ROWS id_observation FROM del_observation do ".
|
- |
|
767 |
$this->getJointureMonActivite($id_utilisateur).
|
- |
|
768 |
$this->getConditionMonActivite($id_utilisateur).
|
- |
|
769 |
"ORDER BY ".$this->getCombinaisonChampsDateMax()." DESC ".
|
- |
|
770 |
$limite;
|
- |
|
771 |
|
- |
|
772 |
return $requete;
|
- |
|
773 |
}
|
- |
|
774 |
|
- |
|
775 |
public function getRequeteNbEvenementsDepuisDate($id_utilisateur, $date) {
|
- |
|
776 |
$requete = "SELECT COUNT(DISTINCT id_observation) as nb_evenements FROM del_observation do ".
|
- |
|
777 |
$this->getJointureMonActivite($id_utilisateur).
|
- |
|
778 |
$this->getConditionMonActivite($id_utilisateur).
|
- |
|
779 |
"AND ".$this->getCombinaisonChampsDateMax()." > '".$date."' ".
|
- |
|
780 |
"ORDER BY ".$this->getCombinaisonChampsDateMax()." DESC ";
|
- |
|
781 |
|
- |
|
782 |
return $requete;
|
- |
|
783 |
}
|
- |
|
784 |
|
- |
|
785 |
public function getEvenementsObs($idsObsConcat, $id_utilisateur) {
|
- |
|
786 |
$sous_champ_date_max = $this->getCombinaisonChampsDateMax()." as date_max";
|
- |
|
787 |
$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";
|
- |
|
788 |
$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";
|
- |
|
789 |
|
- |
|
790 |
$requete = "SELECT DISTINCT id_observation, ".$sous_champs_utilisateurs.", ".$sous_champ_date_max.", ".$sous_champ_date." ".
|
- |
|
791 |
"FROM del_observation do ".
|
- |
|
792 |
$this->getJointureMonActivite($id_utilisateur).
|
- |
|
793 |
$this->getConditionMonActivite($id_utilisateur).
|
- |
|
794 |
"AND id_observation IN ($idsObsConcat) ORDER BY date_max DESC";
|
- |
|
795 |
|
- |
|
796 |
$evenements = $this->bdd->recupererTous($requete);
|
- |
|
797 |
|
- |
|
798 |
return $evenements;
|
- |
|
799 |
}
|
- |
|
800 |
|
- |
|
801 |
public function getJointureMonActivite($id_utilisateur) {
|
- |
|
802 |
return // quelqu'un commente mon observation ou fait une proposition
|
- |
|
803 |
"LEFT JOIN del_commentaire dc ON do.id_observation = dc.ce_observation ".
|
- |
|
804 |
" AND do.ce_utilisateur = ".$id_utilisateur." ".
|
- |
|
805 |
" AND dc.ce_utilisateur != ".$id_utilisateur." ".
|
- |
|
806 |
// quelqu'un valide ma proposition (et ce n'est pas moi qui l'ai validée)
|
- |
|
807 |
"LEFT JOIN del_commentaire dcp ON do.id_observation = dcp.ce_observation ".
|
- |
|
808 |
" AND dcp.nom_sel IS NOT NULL AND dcp.ce_validateur != ".$id_utilisateur." ".
|
- |
|
809 |
" AND dcp.ce_validateur != 0 ".
|
- |
|
810 |
" AND dcp.date_validation IS NOT NULL ".
|
- |
|
811 |
" AND dcp.ce_utilisateur = ".$id_utilisateur." ".
|
- |
|
812 |
// quelqu'un vote pour ma proposition (que ce soit mon observation ou pas)
|
- |
|
813 |
"LEFT JOIN del_commentaire dcvp ON do.id_observation = dcvp.ce_observation ".
|
- |
|
814 |
"LEFT JOIN del_commentaire_vote dcv ON dcv.ce_proposition = dcvp.id_commentaire ".
|
- |
|
815 |
"AND (dcvp.ce_utilisateur = $id_utilisateur OR do.ce_utilisateur = $id_utilisateur) ".
|
- |
|
816 |
"AND dcv.ce_utilisateur != dcvp.ce_utilisateur ";
|
- |
|
817 |
}
|
- |
|
818 |
|
- |
|
819 |
public function getConditionMonActivite($id_utilisateur, $type = "autres") {
|
- |
|
820 |
//TODO: gérer les cas suivants :
|
- |
|
821 |
// demander les activités des autres sur mes obs ou propositions (c'est dejà le cas)
|
- |
|
822 |
// demander mes activités
|
- |
|
823 |
// demander toutes les activités (combinaisons des deux cas ci dessus)
|
- |
|
824 |
return // Vérification que l'évènement me concerne (de près ou ou de loin)
|
- |
|
825 |
"WHERE (do.ce_utilisateur = $id_utilisateur OR dc.ce_utilisateur = $id_utilisateur ".
|
- |
|
826 |
"OR dcp.ce_utilisateur = $id_utilisateur OR dcv.ce_utilisateur = $id_utilisateur) AND ".
|
- |
|
827 |
// mais qu'il y a au moins eu une action de la part d'une autre personne
|
- |
|
828 |
"(dc.ce_utilisateur IS NOT NULL OR dcp.ce_utilisateur IS NOT NULL OR dcv.ce_utilisateur IS NOT NULL) ";
|
- |
|
829 |
}
|
- |
|
830 |
|
- |
|
831 |
private function getCombinaisonChampsDateMax() {
|
- |
|
832 |
return "GREATEST(IFNULL(dc.date,0), IFNULL(dcv.date,0), IFNULL(do.date_observation,0), IFNULL(dcp.date_validation,0))";
|
745 |
}
|
833 |
}
|
746 |
}
|
834 |
}
|