src/Controller/BlogController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Pimcore\Twig\Extension\Templating\Placeholder;
  5. use App\LinkGenerator\BlogLinkGenerator;
  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. use \Pimcore\Model\DataObject;
  11. use \Pimcore\Model\DataObject\Blog;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  13. class BlogController extends FrontendController
  14. {
  15.     const BLOG_DEFAULT_DOCUMENT_PROPERTY_NAME 'blog_default_document';
  16.     public function blogIndexAction(Request $request)
  17.     {
  18.         $blogs = new DataObject\Blog\Listing();
  19.         $blogs->setOrderKey('o_index');
  20.         $blogs->setOrder('asc');
  21.         $categories = new DataObject\BlogCategory\Listing();
  22.         $categories->setCondition('o_parentId = 20');
  23.         $active_category_id $request->query->get('category', -1);
  24.         return $this->render('blogs.html.twig', [
  25.             'blogs' => $blogs,
  26.             'categories' => $categories,
  27.             'active_category_id' => $active_category_id
  28.         ]);
  29.     }
  30.     /**
  31.      * @Route("{path}/{blogtitle}~b{blog}", name="blogs-detail", defaults={"path"=""}, requirements={"path"=".*?", "blogtitle"="[\w-]+", "blog"="\d+"})
  32.      *
  33.      */
  34.     public function blogShowAction(Request $requestBlogLinkGenerator $blogLinkGeneratorPlaceholder $placeholderHelper)
  35.     {
  36.         $id = (int) $request->get('blog');
  37.         $blog Blog::getById($id);
  38.         if (!$blog) {
  39.             throw new NotFoundHttpException('Not found');
  40.         }
  41.         $placeholderHelper('canonical')->set($blogLinkGenerator->generate($blog, ['document' => $this->document->getProperty(self::BLOG_DEFAULT_DOCUMENT_PROPERTY_NAME)]));
  42.         return $this->render('blogs-detail.html.twig', ['blog' => $blog]);
  43.     }
  44.     public function slugAction(Request $request)
  45.     {
  46.         return $request->get('id');
  47.     }
  48. }