Subversion Repositories eFlore/Applications.del

Rev

Rev 2004 | Rev 2031 | Go to most recent revision | Show entire file | Regard 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) {
586
				$sousRequete = 'SELECT ce_image '.
588
					$sousRequete = 'SELECT ce_image '.
587
					'FROM del_image_tag '.
589
						'FROM del_image_tag '.
588
					'WHERE actif = 1 '.
590
						'WHERE actif = 1 '.
589
					'GROUP BY ce_image '.
591
						'GROUP BY ce_image '.
590
					"HAVING GROUP_CONCAT(DISTINCT tag_normalise ORDER BY tag_normalise) REGEXP $tagsMotif ";
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];
-
 
597
				$sousRequete = 'SELECT ce_image '.
-
 
598
						'FROM del_image_tag '.
-
 
599
						'WHERE actif = 1 '.
-
 
600
						'AND tag_normalise LIKE '.$this->bdd->proteger($tag.'%');
-
 
601
			}
Line 591... Line 602...
591
 
602
			
592
				$this->addWhere('masque.tag_del', "di.id_image IN ($sousRequete)");
603
			$this->addWhere('masque.tag_del', "di.id_image IN ($sousRequete)");
593
			}
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']);
-
 
613
		}
594
		}
614
		return $somme;
Line 595... Line 615...
595
	}
615
	}
596
 
616
 
597
	private function construireTagsMotif() {
617
	private function construireTagsMotif() {