Subversion Repositories eFlore/Applications.del

Rev

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

Rev 2004 Rev 2029
Line 579... Line 579...
579
	/**
579
	/**
580
	 * Plusieurs solutions sont disponibles dans les anciennes versions (voir DelTk et l'historique SVN de ce fichier).
580
	 * Plusieurs solutions sont disponibles dans les anciennes versions (voir DelTk et l'historique SVN de ce fichier).
581
	 */
581
	 */
582
	private function ajouterContrainteTagDel() {
582
	private function ajouterContrainteTagDel() {
583
		if (isset($this->parametres['masque.tag_del'])) {
583
		if (isset($this->parametres['masque.tag_del'])) {
-
 
584
			$nbTags = $this->getNombreDeTags();
-
 
585
			if($nbTags > 1) {
584
			$tagsMotif = $this->construireTagsMotif();
586
				$tagsMotif = $this->construireTagsMotif();
585
			if (is_null($tagsMotif) === false) {
587
				if (is_null($tagsMotif) === false) {
-
 
588
					$sousRequete = 'SELECT ce_image '.
-
 
589
						'FROM del_image_tag '.
-
 
590
						'WHERE actif = 1 '.
-
 
591
						'GROUP BY ce_image '.
-
 
592
						"HAVING GROUP_CONCAT(DISTINCT tag_normalise ORDER BY tag_normalise) REGEXP $tagsMotif ";
-
 
593
				}
-
 
594
			} else {
-
 
595
				// Si un seul tag est demandé il se trouve dans le OR
-
 
596
				$tag = $this->parametres['masque.tag_del']['OR'][0];
586
				$sousRequete = 'SELECT ce_image '.
597
				$sousRequete = 'SELECT ce_image '.
587
					'FROM del_image_tag '.
598
						'FROM del_image_tag '.
588
					'WHERE actif = 1 '.
599
						'WHERE actif = 1 '.
589
					'GROUP BY ce_image '.
-
 
590
					"HAVING GROUP_CONCAT(DISTINCT tag_normalise ORDER BY tag_normalise) REGEXP $tagsMotif ";
600
						'AND tag_normalise LIKE '.$this->bdd->proteger($tag.'%');
591
 
-
 
592
				$this->addWhere('masque.tag_del', "di.id_image IN ($sousRequete)");
-
 
593
			}
601
			}
-
 
602
			
-
 
603
			$this->addWhere('masque.tag_del', "di.id_image IN ($sousRequete)");
-
 
604
		}
-
 
605
	}
-
 
606
	
-
 
607
	private function getNombreDeTags() {
-
 
608
		$somme = 0;
-
 
609
		if (isset($this->parametres['masque.tag_del']['AND'])) {
-
 
610
			$somme = count($this->parametres['masque.tag_del']['AND']);
-
 
611
		} else {
-
 
612
			$somme = count($this->parametres['masque.tag_del']['OR']);
594
		}
613
		}
-
 
614
		return $somme;
595
	}
615
	}
Line 596... Line 616...
596
 
616
 
597
	private function construireTagsMotif() {
617
	private function construireTagsMotif() {
598
		$tagsMotif = null;
618
		$tagsMotif = null;