Subversion Repositories eFlore/Applications.del

Rev

Rev 2048 | Rev 2056 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2048 Rev 2049
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
}