vendor/store.shopware.com/netzpblog6/src/Controller/BlogController.php line 48

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace NetzpBlog6\Controller;
  3. use Symfony\Component\Routing\Annotation\Route;
  4. use NetzpBlog6\Storefront\Page\BlogPageLoader;
  5. use Shopware\Core\Framework\Context;
  6. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  7. use Shopware\Core\System\SystemConfig\SystemConfigService;
  8. use Shopware\Storefront\Controller\StorefrontController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use NetzpBlog6\Helper\BlogHelper;
  11. class BlogController extends StorefrontController
  12. {
  13.     private $helper;
  14.     private $blogPageLoader;
  15.     private $config;
  16.     public function __construct(
  17.         BlogHelper $helper,
  18.         BlogPageLoader $blogPageLoader,
  19.         SystemConfigService $config)
  20.     {
  21.         $this->helper $helper;
  22.         $this->blogPageLoader $blogPageLoader;
  23.         $this->config $config;
  24.     }
  25.     /**
  26.      * @Route("/blog.rss", name="frontend.blog.feed", methods={"GET"}, defaults={"_routeScope"={"storefront"}})
  27.      */
  28.     public function getFeed(Request $requestSalesChannelContext $salesChannelContextContext $context)
  29.     {
  30.         $posts $this->helper->getPublicBlogPosts($salesChannelContext$contextnullnulltrue);
  31.         $response $this->renderStorefront('storefront/page/blog/feed.html.twig', [
  32.             'posts' => $posts
  33.         ]);
  34.         $response->headers->set('Content-Type''text/xml');
  35.         return $response;
  36.     }
  37.     /**
  38.      * @Route("/blog/{postId}", name="frontend.blog.post", methods={"GET"}, defaults={"_routeScope"={"storefront"}})
  39.      */
  40.     public function getPost(Request $requestSalesChannelContext $salesChannelContextContext $context$postId)
  41.     {
  42.         $shariffIsActive $this->helper->isPluginActive('NetzpShariff6'$context);
  43.         $config $this->config->get('NetzpBlog6.config'$salesChannelContext->getSalesChannel()->getId());
  44.         $page $this->blogPageLoader->load($request$salesChannelContext$postId);
  45.         $template $page->isCmsPage() ? 'storefront/page/content/index.html.twig' 'storefront/page/blog/post.html.twig';
  46.         return $this->renderStorefront($template, [
  47.             'page'               => $page,
  48.             'post'               => $page->getPost(),
  49.             'config'             => $config,
  50.             'netzpShariffActive' => $shariffIsActive
  51.         ]);
  52.     }
  53. }