getUser(); $em = $this->getDoctrine()->getEntityManager(); if ($user->getPersonalHash() != $token || !is_numeric($id) || !($element = $em->getRepository('MuzichCoreBundle:Element')->findOneById($id)) ) { throw $this->createNotFoundException(); } // Si l'élément n'est pas déjà en favoris if (!$em->getRepository('MuzichCoreBundle:UsersElementsFavorites') ->findOneBy(array( 'user' => $user->getId(), 'element' => $id ))) { // On créer un objet $favorite = new UsersElementsFavorites(); $favorite->setUser($user); $favorite->setElement($element); $em->persist($favorite); $em->flush(); } if ($this->getRequest()->isXmlHttpRequest()) { } else { return $this->redirect($this->container->get('request')->headers->get('referer')); } } /** * Page affichant les elements favoris de l'utilisateur * * @Template() */ public function myListAction() { $search_object = $this->createSearchObject(array( 'user_id' => $this->getUserId(), 'favorite' => true )); return array( 'user' => $this->getUser(), 'elements' => $search_object->getElements($this->getDoctrine(), $this->getUserId()) ); } /** * Affichage des elements favoris d'un utilisateur particulier. * * @param type $slug * @Template() */ public function userListAction($slug) { $viewed_user = $this->findUserWithSlug($slug); $search_object = $this->createSearchObject(array( 'user_id' => $viewed_user->getId(), 'favorite' => true )); return array( 'user' => $this->getUser(), 'viewed_user' => $viewed_user, 'elements' => $search_object->getElements($this->getDoctrine(), $this->getUserId()) ); } }