<?php
namespace App\Controller;
use App\Website\LinkGenerator\NewsLinkGenerator;
use App\Website\Navigation\BreadcrumbHelperService;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\News;
use Pimcore\Model\Site;
use Pimcore\Twig\Extension\Templating\HeadTitle;
use Pimcore\Twig\Extension\Templating\Placeholder;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Knp\Component\Pager\PaginatorInterface;
class NewsController extends BaseController
{
/**
* @param Request $request
*
* @return Response
*
* @throws \Exception
*/
public function overviewAction(Request $request, PaginatorInterface $paginator)
{
$requestPage = 0;
$requestArticles = 12;
$news = [];
if($this->document->hasChildren()){
$getchildDocs = $this->document->getChildren();
if($getchildDocs){
foreach ($getchildDocs as $getchildDoc){
if($getchildDoc->getEditable('publicationDate') != ''){
$childTimeStamp = $getchildDoc->getEditable('publicationDate')->getData()->timestamp;
}
$news[$childTimeStamp.'-'.$getchildDoc->getId()] = $getchildDoc;
}
}
krsort($news);
if($request->isXmlHttpRequest() && $request->get('requestArticles')){
$requestPage = $request->get('requestArticles') * $requestArticles;
}
$news = array_slice($news, $requestPage, $requestArticles);
if($request->isXmlHttpRequest()){
$result = $this->renderView('includes/news/detail.html.twig',
[
'language' => $this->language,
'news' => $news
]
);
if($news){
$respond['result'] = $result;
}else{
$respond['noresult'] = '<div class="col-md-12">'.$this->translator->trans('Geen nieuws teruggevonden.').'</div>';
}
return new JsonResponse($respond);
}
}
return $this->render('news/overview.html.twig', [
'news' => $news
]);
}
/**
*
* @param Request $request
* @return Response
*/
// public function detailAction(Request $request, HeadTitle $headTitleHelper, Placeholder $placeholderHelper, NewsLinkGenerator $newsLinkGenerator, BreadcrumbHelperService $breadcrumbHelperService)
public function detailAction(Request $request)
{
return $this->render('news/detail.html.twig');
}
}