src/News/Controller/NewsController.php line 43

Open in your IDE?
  1. <?php
  2. namespace App\News\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Pimcore\Model\DataObject\Folder;
  5. use Pimcore\Model\DataObject\News;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class NewsController extends FrontendController
  11. {
  12.   /**
  13.    * News List.
  14.    *
  15.    * @return Response
  16.    */
  17.   public function list(Request $request\Knp\Component\Pager\PaginatorInterface $paginator)
  18.   {
  19.     $news News::getList();
  20.     $news->setOrderKey('date');
  21.     $news->setOrder('DESC');
  22.     $news $news->load();
  23.     $pagination $paginator->paginate(
  24.       $news,
  25.       $request->get('page'1),
  26.       6
  27.     );
  28.     return $this->renderTemplate('news/list.html.twig', [
  29.       'news' => $pagination,
  30.     ]);
  31.   }
  32.   /**
  33.    * News List.
  34.    *
  35.    * @return Response
  36.    */
  37.   public function news(Request $request)
  38.   {
  39.     $newsCount $request->get('limit');
  40.     // news raussuchen
  41.     $news News::getList();
  42.     // Dieses Renderlet
  43.     $folder Folder::getById($request->get('id'));
  44.     $news->setCondition('o_path LIKE :folder', ['folder' => $folder->getFullPath().'%']);
  45.     $news->setOrderKey('date');
  46.     $news->setOrder('DESC');
  47.     $news->setLimit($newsCount);
  48.     $news->load();
  49.     return $this->renderTemplate('document/areabricks/news/listing.html.twig', [
  50.       'newsItems' => $news,
  51.       'folder' => $folder,
  52.       'newsCount' => $newsCount,
  53.     ]);
  54.   }
  55.   /**
  56.    * News Detail.
  57.    *
  58.    * @return Response
  59.    *
  60.    * @Route({
  61.    *  "de": "/de/news/{slug}/{id}",
  62.    *  "en": "/en/news/{slug}/{id}",
  63.    *  "fr": "/fr/news/{slug}/{id}"
  64.    * }, name="news_detail")
  65.    */
  66.   public function detail($slug$id)
  67.   {
  68.     // $news = News::getBySlug($slug, null, 1);
  69.     $news News::getById($id);
  70.     if (!($news instanceof News && $news->isPublished())) {
  71.       throw new NotFoundHttpException('News not found.');
  72.     }
  73.     return $this->renderTemplate('news/detail.html.twig', [
  74.       'news' => $news,
  75.     ]);
  76.   }
  77. }