Browse Source

Evolution #763: Ordre des users suivis

Sevajol Bastien 11 years ago
parent
commit
aff4e80c72
1 changed files with 20 additions and 0 deletions
  1. 20 0
      src/Muzich/CoreBundle/Repository/UserRepository.php

+ 20 - 0
src/Muzich/CoreBundle/Repository/UserRepository.php View File

21
     $select = 'u';
21
     $select = 'u';
22
     $join = '';
22
     $join = '';
23
     $where = '';
23
     $where = '';
24
+    $order = '';
24
     $parameters = array('uid' => $user_id);
25
     $parameters = array('uid' => $user_id);
25
     
26
     
26
     if (in_array('followeds_users', $join_list))
27
     if (in_array('followeds_users', $join_list))
27
     {
28
     {
28
       $select .= ', fdu, fdu_u';
29
       $select .= ', fdu, fdu_u';
29
       $join   .= ' LEFT JOIN u.followeds_users fdu LEFT JOIN fdu.followed fdu_u';
30
       $join   .= ' LEFT JOIN u.followeds_users fdu LEFT JOIN fdu.followed fdu_u';
31
+      $order = $this->updateOrderBy($order, 'fdu_u.username ASC');
30
     }
32
     }
31
     
33
     
32
     if (in_array('followers_users', $join_list))
34
     if (in_array('followers_users', $join_list))
33
     {
35
     {
34
       $select .= ', fru, fru_u';
36
       $select .= ', fru, fru_u';
35
       $join   .= ' LEFT JOIN u.followers_users fru LEFT JOIN fru.follower fru_u';
37
       $join   .= ' LEFT JOIN u.followers_users fru LEFT JOIN fru.follower fru_u';
38
+      $order = $this->updateOrderBy($order, 'fru_u.username ASC');
36
     }
39
     }
37
     
40
     
38
     if (in_array('followeds_groups', $join_list))
41
     if (in_array('followeds_groups', $join_list))
39
     {
42
     {
40
       $select .= ', fdg, fdg_g';
43
       $select .= ', fdg, fdg_g';
41
       $join   .= ' LEFT JOIN u.followed_groups fdg LEFT JOIN fdg.group fdg_g';
44
       $join   .= ' LEFT JOIN u.followed_groups fdg LEFT JOIN fdg.group fdg_g';
45
+      $order = $this->updateOrderBy($order, 'fdg_g.name ASC');
42
     }
46
     }
43
     
47
     
44
     if (in_array('favorites_tags', $join_list))
48
     if (in_array('favorites_tags', $join_list))
65
         $join
69
         $join
66
         WHERE u.id = :uid
70
         WHERE u.id = :uid
67
         $where
71
         $where
72
+        $order
68
       ")
73
       ")
69
       ->setParameters($parameters)
74
       ->setParameters($parameters)
70
     ;
75
     ;
71
   }
76
   }
72
   
77
   
78
+  protected function updateOrderBy($orderBy, $add)
79
+  {
80
+    if (strpos($orderBy, 'ORDER BY') === false)
81
+    {
82
+      $orderBy .= 'ORDER BY ';
83
+    }
84
+    
85
+    if ($orderBy !== 'ORDER BY ')
86
+    {
87
+      $orderBy .= ', ';
88
+    }
89
+    
90
+    return $orderBy .= $add;
91
+  }
92
+  
73
   /**
93
   /**
74
    * Retourne les tag id préférés de l'user.
94
    * Retourne les tag id préférés de l'user.
75
    * 
95
    *