<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use App\Form\InscriptionFormType;
use Pimcore\Model\DataObject;
use Pimcore\Model\WebsiteSetting;
use Pimcore\Model\DataObject\Folder;
use Symfony\Component\HttpFoundation\Response;
use Carbon\Carbon;
use Pimcore\Mail;
use Pimcore\Model\DataObject\News;
date_default_timezone_set('Europe/Brussels');
class NewController extends FrontendController
{
/**
* @Template
* @param Request $request
* @return array
*/
public function listAction(Request $request, \Knp\Component\Pager\PaginatorInterface $paginator)
{
$news = new DataObject\News\Listing();
$news->setCondition('(date <= UNIX_TIMESTAMP(NOW()))');
$news->setOrderKey('date');
$news->setOrder('Desc');
$news->load();
$countPerPage = intval($this->document->getProperty("blogItemCountPerPage"));
if(!$countPerPage) :
$countPerPage = 12;
endif;
$paginator = $paginator->paginate(
$news,
$request->get('page', 1),
$countPerPage
);
return $this->render('news/list.html.twig', [
'paginator' => $paginator,
'paginationVariables' => $paginator->getPaginationData(),
'news' => $news,
]);
}
/**
* @Template
* @param Request $request
* @route("/{_locale}/blog/{slug}", name="newsDetail",methods={"GET","POST"})
* @return Response
*/
public function detailAction(Request $request) : Response
{
$slug = $request->get('slug');
$app = DataObject\News::getBySlug($slug)->load();
$othernews = new DataObject\News\Listing();
$othernews->setCondition('slug NOT LIKE "'.$app[0]->get('slug').'"');
$othernews->setLimit(3);
$othernews->load();
return $this->render('news/detail.html.twig', [
'new' => $app[0],
'othernews' => $othernews,
'newsSeo' => true
]);
}
/**
* @Template
* @param Request $request
* @return array
*/
public function snippetAction(Request $request)
{
$lastnew = new DataObject\News\Listing();
$lastnew->setCondition('(date <= UNIX_TIMESTAMP(NOW()))');
$lastnew->setOrderKey('date');
$lastnew->setOrder('Desc');
$lastnew->load();
$countPerPage = intval($this->document->getProperty("newsItemCount"));
$lastnew->setLimit($countPerPage);
$lastnew->load();
return $this->render('snippets/news.html.twig', [
'lastnew' => $lastnew
]);
}
}