Browse Source

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

bastien 13 years ago
parent
commit
59905aeaf2

+ 0 - 20
src/Muzich/CoreBundle/Controller/SearchController.php View File

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 View File

2
 
2
 
3
 namespace Muzich\CoreBundle\Searcher;
3
 namespace Muzich\CoreBundle\Searcher;
4
 
4
 
5
+use Symfony\Bundle\DoctrineBundle\Registry;
6
+
5
 class ElementSearcher extends Searcher implements SearcherInterface
7
 class ElementSearcher extends Searcher implements SearcherInterface
6
 {
8
 {
7
   
9
   
132
     return $this->favorite;
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 View File

68
     ));
68
     ));
69
     
69
     
70
     return array(
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
     ));
89
     ));
89
     
90
     
90
     return array(
91
     return array(
92
+      'user'        => $this->getUser(),
91
       'viewed_user' => $viewed_user,
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 View File

12
 
12
 
13
   <h2>{{ 'favorites.your_favorites'|trans({}, 'network') }}</h2>
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
 {% endblock %}
17
 {% endblock %}

+ 1 - 1
src/Muzich/FavoriteBundle/Resources/views/Favorite/userList.html.twig View File

12
 
12
 
13
   <h2>{{ 'favorites.user_favorites'|trans({'%name%' : viewed_user.name}, 'network') }}</h2>
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
 {% endblock %}
17
 {% endblock %}

+ 7 - 3
src/Muzich/HomeBundle/Controller/HomeController.php View File

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
    * @Template()
19
    * @Template()
17
    */
20
    */
18
   public function indexAction()
21
   public function indexAction()
37
     );
40
     );
38
         
41
         
39
     return array(
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 View File

16
   public function showUserAction($slug)
16
   public function showUserAction($slug)
17
   {
17
   {
18
     $viewed_user = $this->findUserWithSlug($slug);
18
     $viewed_user = $this->findUserWithSlug($slug);
19
-    $user = $this->getUser();
20
         
19
         
21
     $search_object = $this->createSearchObject(array(
20
     $search_object = $this->createSearchObject(array(
22
       'user_id'  => $viewed_user->getId()
21
       'user_id'  => $viewed_user->getId()
23
     ));
22
     ));
24
     
23
     
25
     return array(
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
   public function showGroupAction($slug)
37
   public function showGroupAction($slug)
39
   {
38
   {
40
     $group = $this->findGroupWithSlug($slug);
39
     $group = $this->findGroupWithSlug($slug);
41
-    $user = $this->getUser();
42
         
40
         
43
     $search_object = $this->createSearchObject(array(
41
     $search_object = $this->createSearchObject(array(
44
       'group_id'  => $group->getId()
42
       'group_id'  => $group->getId()
45
     ));
43
     ));
46
     
44
     
47
     return array(
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 View File

15
 
15
 
16
   {% include "MuzichCoreBundle:SearchElement:form.html.twig" %}
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
 {% endblock %}
20
 {% endblock %}

+ 1 - 1
src/Muzich/HomeBundle/Resources/views/Show/showGroup.html.twig View File

24
     
24
     
25
   <h2>{{ group.name }}</h2>
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
 {% endblock %}
29
 {% endblock %}

+ 1 - 1
src/Muzich/HomeBundle/Resources/views/Show/showUser.html.twig View File

22
 
22
 
23
   <h2>{{ viewed_user.name }}</h2>
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
 {% endblock %}
27
 {% endblock %}