Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1962 Rev 1968
Line 433... Line 433...
433
				// A CONFIRMER : toutes les observations moins les validées et à confirmer
433
				// A CONFIRMER : toutes les observations moins les validées et à confirmer
434
				// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
434
				// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
435
				// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
435
				// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
436
				// ne possédant pas de proposition officiellement retenue 
436
				// ne possédant pas de proposition officiellement retenue 
437
				// et ayant une proposition initiale totalisant un score de moins de 4 
437
				// et ayant une proposition initiale totalisant un score de moins de 4 
438
				$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
438
				$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
439
				$this->addWhere('masque.type', 
439
				$this->addWhere('masque.type', 
440
						'('.
440
						'('.
441
							'do.id_observation IN ('.
441
							'do.id_observation IN ('.
442
								'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
442
								'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
443
								' AND ( '.
443
								' AND ( '.
444
									'dc.proposition_initiale = 1 '.
444
									'dc.proposition_initiale = 1 '.
445
									'AND dc.nom_sel_nn != 0 '.
445
									'AND dc.nom_sel_nn != 0 '.
446
									'AND dc.nom_sel_nn IS NOT NULL '.
446
									'AND dc.nom_sel_nn IS NOT NULL '.
447
									'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
447
									'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
448
								') '.
448
								') '.
449
							') AND do.id_observation NOT IN ('.
449
							') AND do.id_observation NOT IN ('.
450
								'SELECT dc.ce_observation FROM del_commentaire dc '.
450
								'SELECT dc.ce_observation FROM del_commentaire dc '.
451
								'WHERE '.
451
								'WHERE '.
452
								' dc.proposition_retenue = 1'.
452
								' dc.proposition_retenue = 1'.
453
							') '.
453
							') '.
454
							'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
454
							'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
455
							'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
455
							'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
456
							'AND do.nom_sel_nn != 0 '.
456
							'AND do.nom_sel_nn != 0 '.
457
							'AND do.nom_sel_nn IS NOT NULL'.
457
							'AND do.nom_sel_nn IS NOT NULL'.
458
						') '	
458
						') '	
459
					);
459
					);
460
			}	
460
			}	
Line 465... Line 465...
465
		}
465
		}
466
	}
466
	}
Line 467... Line 467...
467
	
467
	
468
	private function getSousRequeteSommeVotesPropositions() {
468
	private function getSousRequeteSommeVotesPropositions() {
469
		// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
469
		// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
470
		return  'SELECT ce_proposition '.
470
		return  'SELECT ce_proposition '.
471
				'FROM del_commentaire_vote dcv '.
471
				'FROM del_commentaire_vote dcv '.
472
				'GROUP BY ce_proposition HAVING '.
472
				'GROUP BY ce_proposition HAVING '.
473
				'SUM(CASE '.
473
				'SUM(CASE '.
474
				'	WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
474
				'	WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
475
				'	WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
475
				'	WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
476
				'	WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
476
				'	WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
477
				'	WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
477
				'	WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
478
				'END '.
478
				'END '.
479
			') ';
479
			') ';
Line 480... Line 480...
480
	}
480
	}
481
 
481
 
Line 597... Line 597...
597
	 * Attention : si le critère de tri n'est pas suffisant, les résultats affichés peuvent varier à chaque appel
597
	 * Attention : si le critère de tri n'est pas suffisant, les résultats affichés peuvent varier à chaque appel
598
	 * de la même page de résultat de PictoFlora.
598
	 * de la même page de résultat de PictoFlora.
599
	 */
599
	 */
600
	public function definirOrdreSqlAppliImg() {
600
	public function definirOrdreSqlAppliImg() {
601
		$ordre = $this->parametres['ordre'];
601
		$ordre = $this->parametres['ordre'];
602
 
602
		
-
 
603
		$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
603
		switch ($this->parametres['tri']) {
604
		switch ($tri) {
604
			case 'moyenne-arithmetique' :
605
			case 'moyenne-arithmetique' :
605
				$this->addOrderBy("dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
606
				$this->addOrderBy("dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
606
				break;
607
				break;
607
			case 'points' :
608
			case 'points' :
608
				$this->addOrderBy("dis.nb_points $ordre, dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
609
				$this->addOrderBy("dis.nb_points $ordre, dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
Line 621... Line 622...
621
 
622
 
622
	public function definirOrdreSqlAppliObs() {
623
	public function definirOrdreSqlAppliObs() {
Line 623... Line 624...
623
		$ordre = $this->parametres['ordre'];
624
		$ordre = $this->parametres['ordre'];
-
 
625
 
624
 
626
		// parmi self::$tri_possible
625
		// parmi self::$tri_possible
627
		$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
626
		switch ($this->parametres['tri']) {
628
			switch ($tri) {
627
			case 'date_observation' :
629
			case 'date_observation' :
628
				$this->addOrderBy("date_observation $ordre, id_observation $ordre");
630
				$this->addOrderBy("date_observation $ordre, id_observation $ordre");
629
				break;			
631
				break;			
630
			case 'nb_commentaires' :
632
			case 'nb_commentaires' :
631
				$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
633
				$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
632
				$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
634
				$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
633
				break;
635
				break;
634
			case 'date_transmission' :
636
			case 'date_transmission' :
635
			default:
637
			default: