<?php
namespace App\News\Controller;
use Pimcore\Controller\FrontendController;
use Pimcore\Model\DataObject\Folder;
use Pimcore\Model\DataObject\News;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
class NewsController extends FrontendController
{
/**
* News List.
*
* @return Response
*/
public function list(Request $request, \Knp\Component\Pager\PaginatorInterface $paginator)
{
$news = News::getList();
$news->setOrderKey('date');
$news->setOrder('DESC');
$news = $news->load();
$pagination = $paginator->paginate(
$news,
$request->get('page', 1),
6
);
return $this->renderTemplate('news/list.html.twig', [
'news' => $pagination,
]);
}
/**
* News List.
*
* @return Response
*/
public function news(Request $request)
{
$newsCount = $request->get('limit');
// news raussuchen
$news = News::getList();
// Dieses Renderlet
$folder = Folder::getById($request->get('id'));
$news->setCondition('o_path LIKE :folder', ['folder' => $folder->getFullPath().'%']);
$news->setOrderKey('date');
$news->setOrder('DESC');
$news->setLimit($newsCount);
$news->load();
return $this->renderTemplate('document/areabricks/news/listing.html.twig', [
'newsItems' => $news,
'folder' => $folder,
'newsCount' => $newsCount,
]);
}
/**
* News Detail.
*
* @return Response
*
* @Route({
* "de": "/de/news/{slug}/{id}",
* "en": "/en/news/{slug}/{id}",
* "fr": "/fr/news/{slug}/{id}"
* }, name="news_detail")
*/
public function detail($slug, $id)
{
// $news = News::getBySlug($slug, null, 1);
$news = News::getById($id);
if (!($news instanceof News && $news->isPublished())) {
throw new NotFoundHttpException('News not found.');
}
return $this->renderTemplate('news/detail.html.twig', [
'news' => $news,
]);
}
}