/** * @Route("/anuncio/{id}-{titulo}", requirements={"id" = "\d+"}, name="anuncio_show") */ public function anunciosAction(Request $request) { $id = $request->get('id'); /* Formulario de preguntas */ $form_question = $this->createFormBuilder()->add('comentario', 'textarea', array('attr' => array('cols' => '50', 'rows' => '4', 'maxlength' => '500', 'class' => 'form-control submitComment')))->add('tipo', 'hidden', array('attr' => array('value' => 'p')))->add('save', 'submit', array('label' => 'Enviar comentario', 'attr' => array('class' => 'btn btn-primary')))->getForm(); $form_question->handleRequest($request); /* Formulario de respuestas */ $form_reply = $this->createFormBuilder()->add('comentario', 'textarea', array('attr' => array('cols' => '50', 'rows' => '4', 'maxlength' => '500', 'class' => 'form-control submitComment')))->add('tipo', 'hidden', array('attr' => array('value' => 'r')))->add('comentario_parent_id', 'hidden', array('attr' => array('value' => '')))->add('save', 'submit', array('label' => 'Enviar respuesta', 'attr' => array('class' => 'btn btn-primary')))->getForm(); $form_reply->handleRequest($request); // user_id $current_user = $this->container->get('security.context')->getToken()->getUser(); // produccion_id $current_produccion = $this->getDoctrine()->getRepository('AppBundle:Produccion')->find($id); // Comprobamos si se realizó un comentario if ($request->isMethod('POST')) { $formData = $request->get('form'); $com = new Comentario(); $com->setComentario($formData['comentario']); if ($formData['tipo'] == "r") { $com->setComentarioParentId($formData['comentario_parent_id']); } $tz = new \DateTimeZone("Europe/Madrid"); $current_date = new \DateTime("now", $tz); $com->setFechaHora($current_date); $com->setTipo($formData['tipo']); $com->setUsuario($current_user); $com->setProduccion($current_produccion); if ($form_question->isValid() || $form_reply->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($com); $em->flush(); return new Response('Comentario añadido correctamente!'); } } // Información general $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("\n SELECT p, t, a\n FROM AppBundle:Produccion p\n JOIN p.anuncio a\n JOIN p.titulos t\n WHERE t.paisId = 1 and a.id = '{$id}'\n "); $data = array(); if (count($query->getResult()) > 0) { foreach ($query->getResult() as $produccion) { switch ($produccion->getTipo()) { case 'p': $tipo = "peliculas"; break; case 's': $tipo = "series"; break; case 'a': $tipo = "anuncios"; break; } $produccion->tipoProduccion = $tipo; $produccion->banner = str_replace(".jpg", "_banner.jpg", $produccion->getCartel()); // Protagonistas $protagonistas = explode(",", $produccion->getProtagonistas()); $num_actores = count($protagonistas); $i = 0; foreach ($protagonistas as $protagonista) { $produccion->protagonistasLinks .= "<a href='#'>" . $protagonista . "</a>"; if (++$i != $num_actores) { $produccion->protagonistasLinks .= ", "; } } $data[] = $produccion; } } $produccion = $data; if (!$produccion) { throw $this->createNotFoundException('Id ' . $id . ' no encontrada'); } // Lista de canciones $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("SELECT c, ac, an, cs, s, a\n FROM AppBundle:anunciosCanciones ac\n JOIN ac.cancion c\n JOIN ac.anuncio an\n JOIN c.cancionesSitios cs\n JOIN cs.sitio s\n JOIN c.artista a\n WHERE an.id = '{$id}'"); $lista_canciones = $query->getResult(); /*if(!$lista_canciones) { throw $this->createNotFoundException( 'No hay resultados' ); }*/ // Sitios $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("\n SELECT cs\n FROM AppBundle:CancionesSitios cs\n "); $sitios = $query->getResult(); // Canciones Populares $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("\n SELECT c, a\n FROM AppBundle:Cancion c\n JOIN c.artista a\n ")->setMaxResults(8); $canciones_populares = $query->getResult(); if (!$canciones_populares) { throw $this->createNotFoundException('No hay resultados'); } // Preguntas y respuestas $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("\n SELECT c, u\n FROM AppBundle:Comentario c\n JOIN c.usuario u\n WHERE c.produccion = '{$id}'\n "); $pr = $query->getResult(); $comentarios = NULL; if (count($pr) > 0) { $comentarios = $this->buildTree($pr); } // Siguiendo $usuario = $this->container->get('security.context')->getToken()->getUser(); // Compruebo si ya la está siguiendo $em = $this->getDoctrine()->getManager(); $siguiendo = $em->getRepository('AppBundle:UsuariosProducciones')->findOneBy(array('usuario' => $usuario, 'produccion' => $produccion)); return $this->render('anuncios.ficha.html.twig', array('siguiendo' => $siguiendo, 'produccion' => $produccion, 'lista_canciones' => $lista_canciones, 'sitios' => $sitios, 'comentarios' => $comentarios, 'canciones_populares' => $canciones_populares, 'form_question' => $form_question->createView(), 'form_reply' => $form_reply->createView())); }
$promedioPuntaje = round($puntaje / $calificacionLibro->count(), 1); $html = "<b>Puntaje actual: " . $promedioPuntaje . " <a href='#' title='Puntaje actual " . $promedioPuntaje . "'>★</a></b>"; echo json_encode(array('html' => $html)); break; case "bloquear": $libro = LibroQuery::create()->findOneById($datos->libro); $libro->setDebaja("s"); include 'notificacion_data.php'; $mesajeNotificacion = "Tu libro '" . $libro->getNombre() . "' ha sido bloqueado por el administrador."; guardarNotificacion($libro->getId_usuario(), $mesajeNotificacion, 9); $libro->save(); echo json_encode(array('msg' => "Libro bloqueado correctamente.")); break; case "verificar": $libro = LibroQuery::create()->findOneById($datos->libro); $libro->setEstado("v"); include 'notificacion_data.php'; $mesajeNotificacion = "<span onclick=\"refreshDivs('cuerpocentro','pages/layout/perfillibro.php?id=" . $datos->libro . "')\">Tu libro '" . $libro->getNombre() . "' ha sido marcado como verificado por el administrador.</span>"; guardarNotificacion($libro->getId_usuario(), $mesajeNotificacion, 10); $libro->save(); echo json_encode(array('msg' => "Libro verificado correctamente.")); break; case "nuevo_comentario": $comentario = new Comentario(); $comentario->setId_usuario($_SESSION['userid']); $comentario->setId_libro($datos->libro); $comentario->setComentario($datos->comentario); $comentario->save(); echo json_encode(array('error' => 0, 'msg' => "Comentario ingresado correctamente ")); break; }