Explorar el Código

Optimisation et refactorisation du systèmé de récupération des element de l'ElementSearch.

bastien hace 12 años
padre
commit
59905aeaf2

+ 0 - 20
src/Muzich/CoreBundle/Controller/SearchController.php Ver fichero

@@ -48,24 +48,4 @@ class SearchController extends Controller
48 48
     }
49 49
   }
50 50
   
51
-  /**
52
-   *  Procédure chargé d'afficher les résultats de la recherche.
53
-   */
54
-  public function doSearchElementsAction(ElementSearcher $search, $template = 'default')
55
-  {
56
-    $elements = $this->getDoctrine()
57
-      ->getRepository('MuzichCoreBundle:Element')
58
-      ->findBySearch($search, $this->getUser()->getId())
59
-      ->execute()
60
-    ;
61
-    
62
-    return $this->render(
63
-      'MuzichCoreBundle:SearchElement:default.html.twig', 
64
-      array(
65
-        'user' => $this->getUser(),
66
-        'elements' => $elements
67
-      )
68
-    );
69
-  }   
70
-  
71 51
 }

+ 17 - 0
src/Muzich/CoreBundle/Searcher/ElementSearcher.php Ver fichero

@@ -2,6 +2,8 @@
2 2
 
3 3
 namespace Muzich\CoreBundle\Searcher;
4 4
 
5
+use Symfony\Bundle\DoctrineBundle\Registry;
6
+
5 7
 class ElementSearcher extends Searcher implements SearcherInterface
6 8
 {
7 9
   
@@ -132,4 +134,19 @@ class ElementSearcher extends Searcher implements SearcherInterface
132 134
     return $this->favorite;
133 135
   }
134 136
   
137
+  /**
138
+   * Retourne les elements correspondant a la recherche
139
+   * 
140
+   * @param Registry $doctrine
141
+   * @return collection
142
+   */
143
+  public function doSearch(Registry $doctrine, $user_id)
144
+  {
145
+    return $doctrine
146
+      ->getRepository('MuzichCoreBundle:Element')
147
+      ->findBySearch($this, $user_id)
148
+      ->execute()
149
+    ;
150
+  }
151
+  
135 152
 }

+ 4 - 2
src/Muzich/FavoriteBundle/Controller/FavoriteController.php Ver fichero

@@ -68,7 +68,8 @@ class FavoriteController extends Controller
68 68
     ));
69 69
     
70 70
     return array(
71
-        'search_object' => $search_object
71
+      'user'     => $this->getUser(),
72
+      'elements' => $search_object->doSearch($this->getDoctrine(), $this->getUserId())
72 73
     );
73 74
   }
74 75
   
@@ -88,8 +89,9 @@ class FavoriteController extends Controller
88 89
     ));
89 90
     
90 91
     return array(
92
+      'user'        => $this->getUser(),
91 93
       'viewed_user' => $viewed_user,
92
-      'search_object' => $search_object
94
+      'elements'    => $search_object->doSearch($this->getDoctrine(), $this->getUserId())
93 95
     );
94 96
   }
95 97
   

+ 1 - 1
src/Muzich/FavoriteBundle/Resources/views/Favorite/myList.html.twig Ver fichero

@@ -12,6 +12,6 @@
12 12
 
13 13
   <h2>{{ 'favorites.your_favorites'|trans({}, 'network') }}</h2>
14 14
 
15
-  {% render "MuzichCoreBundle:Search:doSearchElements" with { 'search': search_object } %}
15
+  {% include "MuzichCoreBundle:SearchElement:default.html.twig" %}
16 16
     
17 17
 {% endblock %}

+ 1 - 1
src/Muzich/FavoriteBundle/Resources/views/Favorite/userList.html.twig Ver fichero

@@ -12,6 +12,6 @@
12 12
 
13 13
   <h2>{{ 'favorites.user_favorites'|trans({'%name%' : viewed_user.name}, 'network') }}</h2>
14 14
 
15
-  {% render "MuzichCoreBundle:Search:doSearchElements" with { 'search': search_object } %}
15
+  {% include "MuzichCoreBundle:SearchElement:default.html.twig" %}
16 16
     
17 17
 {% endblock %}

+ 7 - 3
src/Muzich/HomeBundle/Controller/HomeController.php Ver fichero

@@ -13,6 +13,9 @@ class HomeController extends Controller
13 13
 {
14 14
   
15 15
   /**
16
+   * Page d'accueil ("home") de l'utilisateur. Cette page regroupe le fil
17
+   * d'éléments général et personalisable et de quoi ajouter un élément.
18
+   * 
16 19
    * @Template()
17 20
    */
18 21
   public function indexAction()
@@ -37,9 +40,10 @@ class HomeController extends Controller
37 40
     );
38 41
         
39 42
     return array(
40
-      'add_form'      => $add_form->createView(),
41
-      'search_object' => $search_object,
42
-      'search_form'   => $search_form->createView()
43
+      'user'        => $this->getUser(),
44
+      'add_form'    => $add_form->createView(),
45
+      'search_form' => $search_form->createView(),
46
+      'elements'    => $search_object->doSearch($this->getDoctrine(), $this->getUserId())
43 47
     );
44 48
   }
45 49
 }

+ 9 - 11
src/Muzich/HomeBundle/Controller/ShowController.php Ver fichero

@@ -16,17 +16,16 @@ class ShowController extends Controller
16 16
   public function showUserAction($slug)
17 17
   {
18 18
     $viewed_user = $this->findUserWithSlug($slug);
19
-    $user = $this->getUser();
20 19
         
21 20
     $search_object = $this->createSearchObject(array(
22 21
       'user_id'  => $viewed_user->getId()
23 22
     ));
24 23
     
25 24
     return array(
26
-      'viewed_user'   => $viewed_user,
27
-      'search_object' => $search_object,
28
-      'following'     => $user->isFollowingUserByQuery($this->getDoctrine(), $viewed_user->getId()),
29
-      'user'          => $user
25
+      'viewed_user' => $viewed_user,
26
+      'elements'    => $search_object->doSearch($this->getDoctrine(), $this->getUserId()),
27
+      'following'   => $this->getUser()->isFollowingUserByQuery($this->getDoctrine(), $viewed_user->getId()),
28
+      'user'        => $this->getUser()
30 29
     );
31 30
   }
32 31
   
@@ -38,18 +37,17 @@ class ShowController extends Controller
38 37
   public function showGroupAction($slug)
39 38
   {
40 39
     $group = $this->findGroupWithSlug($slug);
41
-    $user = $this->getUser();
42 40
         
43 41
     $search_object = $this->createSearchObject(array(
44 42
       'group_id'  => $group->getId()
45 43
     ));
46 44
     
47 45
     return array(
48
-      'group'         => $group,
49
-      'his_group'     => ($group->getOwner()->getId() == $user->getId()) ? true : false,
50
-      'search_object' => $search_object,
51
-      'following'     => $user->isFollowingGroupByQuery($this->getDoctrine(), $group->getId()),
52
-      'user'          => $user
46
+      'group'     => $group,
47
+      'his_group' => ($group->getOwner()->getId() == $this->getUserId()) ? true : false,
48
+      'elements'  => $search_object->doSearch($this->getDoctrine(), $this->getUserId()),
49
+      'following' => $this->getUser()->isFollowingGroupByQuery($this->getDoctrine(), $group->getId()),
50
+      'user'      => $this->getUser()
53 51
     );
54 52
   }
55 53
   

+ 1 - 1
src/Muzich/HomeBundle/Resources/views/Home/index.html.twig Ver fichero

@@ -15,6 +15,6 @@
15 15
 
16 16
   {% include "MuzichCoreBundle:SearchElement:form.html.twig" %}
17 17
 
18
-  {% render "MuzichCoreBundle:Search:doSearchElements" with { 'search': search_object } %}
18
+  {% include "MuzichCoreBundle:SearchElement:default.html.twig" %}
19 19
     
20 20
 {% endblock %}

+ 1 - 1
src/Muzich/HomeBundle/Resources/views/Show/showGroup.html.twig Ver fichero

@@ -24,6 +24,6 @@
24 24
     
25 25
   <h2>{{ group.name }}</h2>
26 26
   
27
-  {% render "MuzichCoreBundle:Search:doSearchElements" with { 'search': search_object } %}
27
+  {% include "MuzichCoreBundle:SearchElement:default.html.twig" %}
28 28
     
29 29
 {% endblock %}

+ 1 - 1
src/Muzich/HomeBundle/Resources/views/Show/showUser.html.twig Ver fichero

@@ -22,6 +22,6 @@
22 22
 
23 23
   <h2>{{ viewed_user.name }}</h2>
24 24
   
25
-  {% render "MuzichCoreBundle:Search:doSearchElements" with { 'search': search_object } %}
25
+  {% include "MuzichCoreBundle:SearchElement:default.html.twig" %}
26 26
     
27 27
 {% endblock %}