<?php
namespace App\Controller\Front\Blog;
use App\Entity\Page\Page;
use Symfony\Component\HttpFoundation\Request;
use App\Controller\Front\ApplicationController;
use Symfony\Component\HttpFoundation\Response;
class BlogController extends ApplicationController
{
private const BLOG_TEMPLATE_PATH = 'front/blog/blog.twig';
private const BLOG_ITEM_TEMPLATE_PATH = 'front/blog/blog_item.twig';
private const LIMIT_BLOG = 9;
public function showBlogAction(Request $request, Page $page): Response
{
$params = $request->attributes->get('originalRequest')->query->all();
$error = (string)$request->request->get('error');
$locale = $request->getLocale();
$viewParams = $this->createViewParams($request,$error,$page);
$pages = isset($params['page'])? $params['page']:1;
$industry = null;
$category = '';
$viewParams['blogs'] = $this->blogRepository->getAllBlogs($industry, $category, $pages);
$viewParams['industrys'] = $this->itemCategoryProvider->getAllRelationNull();
$viewParams['thisPage'] = isset($params['page'])?$params['page']:1;
$viewParams['maxPages'] = ceil(count($viewParams['blogs'])/ self::LIMIT_BLOG) < 1 ? 1 : ceil(count($viewParams['blogs'])/self::LIMIT_BLOG);
if(isset($params['industry']) || isset($params['category']))
{
$category = isset($params['category'])? $params['category']:'';
$pages = isset($params['page'])? $params['page']:1;
$searchIndustry = $params['industry']??'';
$industry = $this->itemCategoryProvider->getOneByName($searchIndustry);
$viewParams['blogs'] = $this->blogRepository->getAllBlogs($industry, $category, $pages);
$viewParams['totalOffers'] = $viewParams['blogs']->count();
$viewParams['iterator'] = $viewParams['blogs']->getIterator();
$viewParams['maxPages'] = ceil(count($viewParams['blogs'])/self::LIMIT_BLOG) < 1 ? 1 : ceil(count($viewParams['blogs'])/self::LIMIT_BLOG);
$viewParams['thisPage'] = isset($params['page'])?$params['page']:1;
return $this->render(self::BLOG_TEMPLATE_PATH, $viewParams);
}
return $this->render(self::BLOG_TEMPLATE_PATH, $viewParams);
}
public function showEntryBlogAction(Request $request, Page $page): Response
{
$error = (string)$request->request->get('error');
$locale = $request->getLocale();
$viewParams = $this->createViewParams($request,$error,$page);
$viewParams['blog'] = $page->getBlog();
return $this->render(self::BLOG_ITEM_TEMPLATE_PATH, $viewParams);
}
}