Exemple #1
0
 protected function getResult()
 {
     /** @var Request $request */
     $request = $this->request;
     $comment = new Comment();
     if ($sourceId = $request->request->get('sourceid')) {
         $source = $this->em->getRepository('MDSSiteBundle:Source')->findOneBy(array('id' => $sourceId));
         if ($source) {
             $comment->setSource($source);
         }
     }
     /** @var Form $form */
     $form = $this->getService('form.factory')->create(new CommentFormType(), $comment, array('action' => $this->container->get('router')->generate('mds_site_ajax')));
     $form->handleRequest($request);
     if ($form->isValid()) {
         $data = $form->getData();
         if ($data->getName() != 'news') {
             /** @var Comment $data */
             $data->setIp($request->getClientIp());
             $em = $this->em;
             $em->persist($comment);
             $em->flush();
             return json_encode(array('sended' => true));
         } else {
             return 'false';
         }
     }
     /** @var TwigEngine $twig */
     $twig = $this->getService('templating');
     $render = $twig->render('@MDSSite/Elements/formcomment.html.twig', array('form' => $form->createView()));
     $result = array('form' => $render, 'sended' => false);
     return json_encode($result);
 }
Exemple #2
0
 protected function setComments($sourceId)
 {
     $qb = $this->em->getRepository('MDSSiteBundle:Comment')->createQueryBuilder('comment');
     if ($sourceId) {
         //TODO Не знаю зачем мне тут нужен был сурс, удалить потом ?
         //$source = $this->em->getRepository('MDSSiteBundle:Source')->findBy(array('id' => $sourceId));
         $commQuery = $qb->innerJoin('comment.source', 'source')->where('source.id =:sourceid')->setParameter('sourceid', $sourceId)->orderBy('comment.id', 'DESC')->getQuery();
     } else {
         //Если не сурсId, то постим news
         $commQuery = $qb->where('comment.name =:comname')->setParameter('comname', 'news')->orderBy('comment.id', 'DESC')->getQuery();
     }
     /** @var Paginator $paginator */
     $paginator = $this->getService('knp_paginator');
     $page = $this->request->request->get('page');
     $page = $page ? $page : '1';
     $comments = $paginator->paginate($commQuery, $page, 10);
     /* нет коментов - пишем заглушку */
     if (!$comments->getTotalItemCount()) {
         $comments = new ArrayCollection();
         $comment = new Comment();
         $comment->setName('admin');
         $comment->setText('Добрых слов пока не нашлось');
         $comments->add($comment);
         /* если вызываемая страница больше чем их количество */
     } else {
         $this->pages = $comments->getPageCount();
         if ($this->pages < $page) {
             return false;
         }
     }
     $this->comments = $comments;
 }