<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Pimcore\Twig\Extension\Templating\Placeholder;
use App\LinkGenerator\BlogLinkGenerator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
use \Pimcore\Model\DataObject;
use \Pimcore\Model\DataObject\Blog;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class BlogController extends FrontendController
{
const BLOG_DEFAULT_DOCUMENT_PROPERTY_NAME = 'blog_default_document';
public function blogIndexAction(Request $request)
{
$blogs = new DataObject\Blog\Listing();
$blogs->setOrderKey('o_index');
$blogs->setOrder('asc');
$categories = new DataObject\BlogCategory\Listing();
$categories->setCondition('o_parentId = 20');
$active_category_id = $request->query->get('category', -1);
return $this->render('blogs.html.twig', [
'blogs' => $blogs,
'categories' => $categories,
'active_category_id' => $active_category_id
]);
}
/**
* @Route("{path}/{blogtitle}~b{blog}", name="blogs-detail", defaults={"path"=""}, requirements={"path"=".*?", "blogtitle"="[\w-]+", "blog"="\d+"})
*
*/
public function blogShowAction(Request $request, BlogLinkGenerator $blogLinkGenerator, Placeholder $placeholderHelper)
{
$id = (int) $request->get('blog');
$blog = Blog::getById($id);
if (!$blog) {
throw new NotFoundHttpException('Not found');
}
$placeholderHelper('canonical')->set($blogLinkGenerator->generate($blog, ['document' => $this->document->getProperty(self::BLOG_DEFAULT_DOCUMENT_PROPERTY_NAME)]));
return $this->render('blogs-detail.html.twig', ['blog' => $blog]);
}
public function slugAction(Request $request)
{
return $request->get('id');
}
}