getId() != $element->getOwner()->getId()) { $uea = new UserEventAction($element->getOwner(), $this->container); $event = $uea->proceed(Event::TYPE_COMMENT_ADDED_ELEMENT, $element->getId()); $this->container->get('doctrine')->getEntityManager()->persist($event); } // Pour chaque utilisateur qui a demandé a être avertis d'un nouveau commentaire $cm = new CommentsManager($element->getComments()); $uids = $cm->getFollowersIds(); if (count($uids)) { $users = $this->container->get('doctrine')->getEntityManager() ->getRepository('MuzichCoreBundle:User') ->getUsersWithIds($uids) ; if (count($users)) { foreach ($users as $user_c) { // On n'avertis pas l'utilisateur de son propre commentaire if ($user->getId() != $user_c->getId()) { $uea = new UserEventAction($user_c, $this->container); $event = $uea->proceed(Event::TYPE_COMMENT_ADDED_ELEMENT, $element->getId()); $this->container->get('doctrine')->getEntityManager()->persist($event); } } } } } /** * Un point a été ajouté par quelqu'un a cet élément * Conséquences: * * L'auteur du partage gagne x point de reputation * * @param Element $element */ public function onePointAdded(Element $element) { $ur = new UserReputation($element->getOwner()); $ur->addPoints( $this->container->getParameter('reputation_element_point_value') ); } /** * Un point a été retiré par quelqu'un a cet élément * Conséquences: * * L'auteur du partage perd x point de reputation * * @param Element $element */ public function onePointRemoved(Element $element) { $ur = new UserReputation($element->getOwner()); $ur->removePoints( $this->container->getParameter('reputation_element_point_value') ); } /** * L'élément a été ajouté aux favoris d'un utilisateur * * @param Element $element */ public function addedToFavorites(Element $element) { $ur = new UserReputation($element->getOwner()); $ur->addPoints( $this->container->getParameter('reputation_element_favorite_value') ); $uea = new UserEventAction($element->getOwner(), $this->container); $event = $uea->proceed(Event::TYPE_FAV_ADDED_ELEMENT, $element->getId()); $this->container->get('doctrine')->getEntityManager()->persist($event); } /** * L'élément a été retiré des favoris d'un utilisateur * * @param Element $element */ public function removedFromFavorites(Element $element) { $ur = new UserReputation($element->getOwner()); $ur->removePoints( $this->container->getParameter('reputation_element_favorite_value') ); } /** * Des tags viennent d'être proposé a un élément * * @param Element $element */ public function tagsProposed(Element $element) { $uea = new UserEventAction($element->getOwner(), $this->container); $event = $uea->proceed(Event::TYPE_TAGS_PROPOSED, $element->getId()); $this->container->get('doctrine')->getEntityManager()->persist($event); } }