src/Controller/IpaController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Knp\Component\Pager\PaginatorInterface;
  8. use MobileDetectBundle\DeviceDetector\MobileDetectorInterface;
  9. use App\Entity\SaquitoPagina;
  10. use App\Entity\SaquitoNoticia;
  11. use App\Entity\IpaDocumento;
  12. use App\Entity\IpaInforme;
  13. /**
  14.  * Controlador principal del Bundle Main
  15.  *
  16.  * @Route("/")
  17.  * 
  18.  * @category Controladores
  19.  * @package Saquito
  20.  * @copyright (c) 2022, APDiseño
  21.  * @author Andrés Pieruccioni <andrespieruccioni@gmail.com>
  22.  */
  23. class IpaController extends AbstractController
  24. {
  25.     /**
  26.      * @Route("/", name="saquito_paginas_bienvenidos")
  27.      */
  28.     public function bienvenidos(MobileDetectorInterface $dispositivo): Response
  29.     {
  30.         $pagina = new saquitoPagina();
  31.         $pagina->setTitulo("Portada");
  32.         $pagina->setDescripcion($this->getParameter('proyecto')['descripcion']);
  33.         $pagina->setRobots("Index, Follow");
  34.         $pagina->setKeyworks($this->getParameter('proyecto')['keyworks']);
  35.         $pagina->setAutor($this->getParameter('proyecto')['autor']);
  36.         
  37.         $repository $this->getDoctrine()->getRepository(SaquitoNoticia::class);    
  38.         $noticias $repository->findAll();
  39.         if ( $dispositivo->isMobile()) {
  40.             $template "/portada/desktop.html.twig";
  41.         } else {
  42.             $template "/portada/desktop.html.twig";
  43.         }
  44.         
  45.         return $this->render(
  46.             $template
  47.                 array('pagina' => $pagina'noticias' =>$noticias));
  48.     }
  49.     /**
  50.      * Renderiza una página con el listado de documentos disponibles con un tipo
  51.      * 
  52.      * @Route("/documentos/tipo/{tipo}/", name="ipa_documentos_listar_tipo")
  53.      * 
  54.      * @author Andrés Pieruccioni <andrespieruccioni@gmail.com>
  55.      * 
  56.      * @category function
  57.      * @param Request $request  Utiliza knp_paginator, por eso necesita el rango de documentos a mostrar 
  58.      * @return string Código HTML de la página con el listado de documentos
  59.      */
  60.     public function listarTipoDocumento($tipoPaginatorInterface $paginatorRequest $request): Response
  61.     {
  62.         $em $this->getDoctrine()->getManager();
  63.         $pagina = new saquitoPagina;
  64.         $pagina->setTitulo('Listado de documentos');
  65.         $repository $this->getDoctrine()->getRepository(IpaDocumento::class);    
  66.         $documentos $repository->findAll();
  67.         //$documentos = $em->getRepository('APDIpaPropioBundle:ipaDocumentos')
  68.         //        ->verTodosTipo($tipo,$this->get('security.authorization_checker')->isGranted('ROLE_USER'));
  69.         
  70.         $pagination $paginator->paginate(
  71.             $documentos,
  72.             $request->query->get('pagina'1),
  73.             $this->getParameter('proyecto')['noticias']['porpagina']
  74.         );
  75.         return $this->render('/documentos/listar-tipo.html.twig'
  76.                 array(
  77.                     'pagina' => $pagina,
  78.                     'tipo' => $documentos,
  79.                     'pagination' => $pagination
  80.                 ));
  81.     }
  82.     /**
  83.      * Armar Menu
  84.      * 
  85.      * @Route("/documentos/{tipo}/{id}/{slug}", name="ipa_documentos_ver")
  86.      *  
  87.      * @author Andrés Pieruccioni <andrespieruccioni@gmail.com>
  88.      * 
  89.      * @category function
  90.      * @param ipaDocumentos $documento Documento a mostrar
  91.      * @return string Código HTML de la página con el documento
  92.      */
  93.     public function verDocumento(IpaDocumento $documento)
  94.     {
  95.         $pagina = new saquitoPagina;
  96.         if ($this->get('security.authorization_checker')->isGranted('ROLE_USER') or ($documento->isPrivado() == false)) {
  97.             $pagina->setTitulo($documento->getTitulo());
  98.             $pagina->setDescripcion($documento->getDescripcion());
  99.             return $this->render(
  100.                     '/documentos/ver.html.twig',array(
  101.                         'documento' => $documento,
  102.                         'pagina' => $pagina
  103.                         ));
  104.         } else {
  105.             throw new \Exception('Esta información es sólo de uso interno del Instituto Provincial del Agua!');
  106.         }     
  107.     }
  108.     
  109.     /**
  110.      * @Route("/{_locale}/informe", name="saquito_informe_ameghino_listar")
  111.      *
  112.      * @category function
  113.      * @param Request $request  Utiliza knp_paginator, por eso necesita el rango de noticias a mostrar
  114.     */
  115.     public function informe(PaginatorInterface $paginatorRequest $request): Response
  116.     {
  117.         $em $this->getDoctrine()->getManager();
  118.         $repository $this->getDoctrine()->getRepository(IpaInforme::class); 
  119.         $query $repository->todos();
  120.         
  121.         $pagination $paginator->paginate(
  122.             $query/* query NOT result */
  123.             $request->query->get('pagina'1),
  124.             10/*limit per page*/
  125.         );
  126.         
  127.         return $this->render(
  128.             'informes/renderizar.html.twig',
  129.                 array('pagination' => $pagination)
  130.         );
  131.     }
  132. //    /**
  133. //     * 
  134. //     * @Route("/{_locale}/informe/pdf/ameghino", name="ipa_informe_ameghino_pdf")
  135. //     * 
  136. //     * @category function
  137. //     * @return string Código HTML del informe
  138. //     */
  139. //    public function pdfInformeAmeghinoAction(Request $request)
  140. //    {
  141. //            
  142. //        $miPdf = new utilesPDF();
  143. //        $miPdf->SetCreator(PDF_CREATOR);
  144. //        $miPdf->SetAuthor('Instituto Provincial del Agua Chubut');
  145. //        $miPdf->SetTitle('Informe Diario Hidroeléctrica Ameghino');
  146. //        $miPdf->SetSubject('Informe Diario');
  147. //        $miPdf->Image('bundles/web/images/isologo.png',240,10,33);
  148. //        $miPdf->line(15,23,280,23);
  149. //        // set auto page breaks
  150. //        $miPdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  151. //        // set default header data
  152. //        $miPdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  153. //        $miPdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  154. //        $miPdf->SetFooterMargin(PDF_MARGIN_FOOTER);
  155. //
  156. //        $miPdf->AddPage();
  157. //
  158. //        $em = $this->getDoctrine()->getManager();
  159. //        $query = $em->getRepository('APDSaquitoInformesBundle:saquitoInforme')
  160. //                        ->listExport(365);
  161. //        $html = $this->renderView('APDSaquitoInformesBundle:Informe:pdf_render.html.twig', array(
  162. //            'informes'  => $query
  163. //        ));
  164. //
  165. //        $miPdf->WriteHTML( '<h1  align="center">Informe Diario Hidroel&eacute;ctrica Ameghino</h1><p align="right"> (ultimos 365 días) </p>' . $html );
  166. //        $miPdf->Output('ipa_informe_ameghino.pdf', 'I');
  167. //    }    
  168. }