src/Utils/BlogService.php line 56

Open in your IDE?
  1. <?php
  2. namespace App\Utils;
  3. use App\Entity\Blog;
  4. use App\Entity\BlogImagen;
  5. use Knp\Component\Pager\PaginatorInterface;
  6. use Psr\Container\ContainerInterface;
  7. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  8. class BlogService extends Base
  9. {
  10.     private $paginator;
  11.     public function __construct(ContainerInterface    $container,
  12.                                 \Swift_Mailer         $mailer,
  13.                                 ContainerBagInterface $containerBag,
  14.                                 PaginatorInterface    $paginator)
  15.     {
  16.         parent::__construct($container$mailer$containerBag);
  17.         $this->paginator $paginator;
  18.     }
  19.     /**
  20.      * DetalleBlog
  21.      * @param $url
  22.      * @return array
  23.      */
  24.     public function DetalleBlog($url)
  25.     {
  26.         $arreglo_resultado = array();
  27.         $value $this->getDoctrine()->getRepository(Blog::class)
  28.             ->findOneBy(array('url' => $url));
  29.         if ($value != null) {
  30.             $arreglo_resultado $this->DevolverItemBlog($value);
  31.         }
  32.         return $arreglo_resultado;
  33.     }
  34.     /**
  35.      * ListarAnuncios
  36.      * @param $page
  37.      * @return \Knp\Component\Pager\Pagination\PaginationInterface
  38.      */
  39.     public function ListarBlogs($page)
  40.     {
  41.         $arreglo_resultado = array();
  42.         $empresa_id $this->getParameter('empresa_id');
  43.         $lista $this->getDoctrine()->getRepository(Blog::class)
  44.             ->ListarOrdenados($empresa_id);
  45.         foreach ($lista as $value) {
  46.             $item $this->DevolverItemBlog($value);
  47.             $arreglo_resultado[] = $item;
  48.         }
  49.         $pager $this->paginator->paginate($arreglo_resultado$page9);
  50.         return $pager;
  51.     }
  52.     /**
  53.      * DevolverItemBlog
  54.      * @param Blog $blog_entity
  55.      * @return array
  56.      */
  57.     private function DevolverItemBlog($blog_entity)
  58.     {
  59.         $blog_id $blog_entity->getBlogId();
  60.         $ruta $this->ObtenerURL();
  61.         $dir self::DIR_UPLOAD_BLOG;
  62.         $imagen $blog_entity->getImagen() != '' $ruta $dir $blog_entity->getImagen() : '';
  63.         // imagenes
  64.         $imagenes = [];
  65.         $blog_imagenes $this->getDoctrine()->getRepository(BlogImagen::class)
  66.             ->ListarImagenes($blog_id);
  67.         foreach ($blog_imagenes as $blog_imagen){
  68.             $imagenes[] = $ruta $dir $blog_imagen->getImagen();
  69.         }
  70.         // fecha
  71.         $created_at strtotime($blog_entity->getCreatedAt()->format('Y-m-d H:i:s'));
  72.         $fecha date('l, F j, Y h:i A'$created_at);
  73.         // resumen
  74.         $descripcion $blog_entity->getDescripcion();
  75.         $resumen $this->truncate(strip_tags($descripcion), 200) ;
  76.         return [
  77.             'blog_id' => $blog_id,
  78.             'nombre' => $blog_entity->getNombre(),
  79.             'resumen' => $resumen,
  80.             'descripcion' => $descripcion,
  81.             'titulo' => $blog_entity->getTitulo(),
  82.             'descripcionSeo' => $blog_entity->getDescripcionSeo(),
  83.             'tags' => $blog_entity->getTags(),
  84.             'url' => $blog_entity->getUrl(),
  85.             'autor' => $blog_entity->getAutor()->getNombreCompleto(),
  86.             'fecha' => $fecha,
  87.             'imagen' => $imagen,
  88.             'imagenes' => $imagenes
  89.         ];
  90.     }
  91. }