public function reverseTransform($users) { if (null === $users) { return null; } $data = new ArrayCollection(); foreach ($users as $user) { $receiver = new Receiver(); $receiver->setUser($user); $receiver->setMessage($this->message); $data->add($receiver); } return $data; }
/** * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function showAction(Request $request) { $id = $request->get("id"); if ($id > 0) { $message = $this->get('symbb.core.message.manager')->find($id); $isReceiver = false; $isSender = false; foreach ($message->getReceivers() as $receiver) { if ($receiver->getUser()->getId() == $this->getUser()->getId()) { $isReceiver = true; $this->get('symbb.core.message.manager')->read($receiver); break; } } $sender = $message->getSender(); if ($this->getUser()->getId() === $sender->getid()) { $isSender = true; } if (!$isReceiver && !$isSender) { throw $this->createAccessDeniedException(); } $newMessage = new Message(); $newMessage->setSender($this->getUser()); $receiver = new Message\Receiver(); $receiver->setUser($sender); $receiver->setMessage($newMessage); $newMessage->addReceiver($receiver); $newMessage->setSubject($this->get("translator")->trans("Re:", array(), "symbb_frontend") . " " . $message->getSubject()); $form = $this->getForm($newMessage, $request, false); $form->handleRequest($request); $saved = false; if ($form->isValid()) { $saved = $this->handleMessage($form, $newMessage); } if (!$saved) { return $this->render($this->getTemplateBundleName('forum') . ':Message:show.html.twig', array("message" => $message, "isReceiver" => $isReceiver, "isSender" => $isSender, "form" => $form->createView())); } else { return $this->sentListAction($request); } } else { $this->addError("Message not found!", $request); } return $this->returnToLastPage($request); }
/** * @param Receiver $receiver */ public function unread(Receiver $receiver) { $receiver->setNew(true); $this->em->persist($receiver); $this->em->flush(); }