浏览代码

Ajout de l'action "Retirer des favoris".

bastien 13 年前
父节点
当前提交
b26e68c7f8

+ 1 - 0
app/Resources/translations/elements.fr.yml 查看文件

5
 element:
5
 element:
6
   favorite:
6
   favorite:
7
     add:                Ajouter a mes favoris
7
     add:                Ajouter a mes favoris
8
+    remove:             Retirer de mes favoris
8
   add:
9
   add:
9
     group:
10
     group:
10
       will_be_in:       L'élément sera ajouté dans le groupe
11
       will_be_in:       L'élément sera ajouté dans le groupe

+ 3 - 0
src/Muzich/CoreBundle/Resources/views/SearchElement/default.html.twig 查看文件

10
           <a href="{{ element.url }}" target="_blank">link</a>
10
           <a href="{{ element.url }}" target="_blank">link</a>
11
           
11
           
12
           {% if element.getCountFavorite %}
12
           {% if element.getCountFavorite %}
13
+            | <a href="{{ path('favorite_remove', { 'id': element.id, 'token': user.personalHash }) }}" >
14
+              {{ 'element.favorite.remove'|trans({}, 'elements') }}
15
+            </a>
13
           {% else %}
16
           {% else %}
14
             | <a href="{{ path('favorite_add', { 'id': element.id, 'token': user.personalHash }) }}" >
17
             | <a href="{{ path('favorite_add', { 'id': element.id, 'token': user.personalHash }) }}" >
15
               {{ 'element.favorite.add'|trans({}, 'elements') }}
18
               {{ 'element.favorite.add'|trans({}, 'elements') }}

+ 39 - 0
src/Muzich/FavoriteBundle/Controller/FavoriteController.php 查看文件

71
   }
71
   }
72
   
72
   
73
   /**
73
   /**
74
+   * Retire comme favoris l'element en id
75
+   * 
76
+   * @param int $id
77
+   * @param string $token 
78
+   */
79
+  public function removeAction($id, $token)
80
+  {
81
+    $user = $this->getUser();
82
+    $em = $this->getDoctrine()->getEntityManager();
83
+    
84
+    if ($user->getPersonalHash() != $token || !is_numeric($id)
85
+      || !($element = $em->getRepository('MuzichCoreBundle:Element')->findOneById($id))
86
+    )
87
+    {
88
+      throw $this->createNotFoundException();
89
+    }
90
+
91
+    // Si l'élément est déjà en favoris, ce qui est cencé être le cas
92
+    if (($fav = $em->getRepository('MuzichCoreBundle:UsersElementsFavorites')
93
+      ->findOneBy(array(
94
+        'user'    => $user->getId(),
95
+        'element' => $id
96
+      ))))
97
+    {
98
+      $em->remove($fav);
99
+      $em->flush();
100
+    }
101
+    
102
+    if ($this->getRequest()->isXmlHttpRequest())
103
+    {
104
+      
105
+    }
106
+    else
107
+    {
108
+      return $this->redirect($this->container->get('request')->headers->get('referer'));
109
+    }
110
+  }
111
+  
112
+  /**
74
    * Page affichant les elements favoris de l'utilisateur
113
    * Page affichant les elements favoris de l'utilisateur
75
    * 
114
    * 
76
    * @Template()
115
    * @Template()

+ 4 - 0
src/Muzich/FavoriteBundle/Resources/config/routing.yml 查看文件

2
 favorite_add:
2
 favorite_add:
3
   pattern:   /favorite/add/{id}/{token}
3
   pattern:   /favorite/add/{id}/{token}
4
   defaults: { _controller: MuzichFavoriteBundle:Favorite:add }
4
   defaults: { _controller: MuzichFavoriteBundle:Favorite:add }
5
+  
6
+favorite_remove:
7
+  pattern:   /favorite/remove/{id}/{token}
8
+  defaults: { _controller: MuzichFavoriteBundle:Favorite:remove }
5
 
9
 
6
 favorites_my_list:
10
 favorites_my_list:
7
   pattern:   /favorites
11
   pattern:   /favorites