| 
				
			 | 
			
			
				@@ -32,29 +32,18 @@ class ElementRepository extends EntityRepository 
			 | 
		
	
		
			
			| 
				32
			 | 
			
				32
			 | 
			
			
				    * @return Doctrine\ORM\Query 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				33
			 | 
			
			
				    */ 
			 | 
		
	
		
			
			| 
				34
			 | 
			
				34
			 | 
			
			
				   public function findBySearch(ElementSearcher $searcher, $user_id) 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				
			 | 
			
			
				-  {; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				35
			 | 
			
			
				+  { 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				36
			 | 
			
			
				     $params = array(); 
			 | 
		
	
		
			
			| 
				37
			 | 
			
				37
			 | 
			
			
				     $join_personal = ''; 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				38
			 | 
			
			
				     //$query_with = ''; 
			 | 
		
	
		
			
			| 
				39
			 | 
			
				39
			 | 
			
			
				     $where = ''; 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				
			 | 
			
			
				-     
			 | 
		
	
		
			
			| 
				41
			 | 
			
				
			 | 
			
			
				-    // Ajout du filtre limitant au réseau personel si c'est le cas 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				
			 | 
			
			
				-    if ($searcher->getNetwork() == ElementSearcher::NETWORK_PERSONAL) 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				
			 | 
			
			
				-    { 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				
			 | 
			
			
				-      $join_personal = " 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				
			 | 
			
			
				-        LEFT JOIN eu.followers_users f WITH f.follower = :userid " 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				
			 | 
			
			
				-        ."JOIN g.followers gf WITH gf.follower = :useridg" 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				
			 | 
			
			
				-        ; 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				
			 | 
			
			
				-      $params['userid'] = $user_id; 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				
			 | 
			
			
				-      $params['useridg'] = $user_id; 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				
			 | 
			
			
				-     
			 | 
		
	
		
			
			| 
				
			 | 
			
				40
			 | 
			
			
				+        //die(var_dump($searcher)); 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				41
			 | 
			
			
				     // ajout du filtres de trie avec les tags transmis 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				42
			 | 
			
			
				     foreach ($searcher->getTags() as $tag_id) 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				43
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				44
			 | 
			
			
				       if ($where == '') 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				45
			 | 
			
			
				       { 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				
			 | 
			
			
				-        $where .= 'WHERE t.id = :tid'.$tag_id; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				46
			 | 
			
			
				+        $where .= 'WHERE (t.id = :tid'.$tag_id; 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				47
			 | 
			
			
				       } 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				48
			 | 
			
			
				       else 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				49
			 | 
			
			
				       { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -63,6 +52,27 @@ class ElementRepository extends EntityRepository 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				52
			 | 
			
			
				       $params['tid'.$tag_id] = $tag_id; 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				53
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				54
			 | 
			
			
				      
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+    if (count($searcher->getTags())) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+    { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+      // Si on ne met pas les parenthéses, lorsqu'il y a d'autre where (AND, OR) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+      // On perd la précision et des résultats se retrouvent dans le tas 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+      $where .= ')'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				61
			 | 
			
			
				+     
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+    // Ajout du filtre limitant au réseau personel si c'est le cas 
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+    $where_network = ''; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+    if ($searcher->getNetwork() == ElementSearcher::NETWORK_PERSONAL) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+    {   
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+      $join_personal =  
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+       " LEFT JOIN eu.followers_users f" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+      ." LEFT JOIN g.followers gf" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+      ; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				70
			 | 
			
			
				+      $where_network = ($where != '') ? ' AND' : ' WHERE'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+      $where_network .= ' (f.follower = :userid OR gf.follower = :useridg)'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+      $params['userid'] = $user_id; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+      $params['useridg'] = $user_id; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+     
			 | 
		
	
		
			
			| 
				66
			 | 
			
				76
			 | 
			
			
				     // ajout du filtre sur un user si c'est le cas 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				77
			 | 
			
			
				     $where_user = ''; 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				78
			 | 
			
			
				     //                                                  Si c'est une recherche  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -118,6 +128,7 @@ class ElementRepository extends EntityRepository 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				128
			 | 
			
			
				       $join_favorite 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				129
			 | 
			
			
				       JOIN e.owner eu $join_personal 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				130
			 | 
			
			
				       $where 
			 | 
		
	
		
			
			| 
				
			 | 
			
				131
			 | 
			
			
				+      $where_network 
			 | 
		
	
		
			
			| 
				121
			 | 
			
				132
			 | 
			
			
				       $where_user 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				133
			 | 
			
			
				       $where_group 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				134
			 | 
			
			
				       $where_favorite 
			 |