30 lines
1.1 KiB
PHP
30 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Repository\Page;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpKernel\KernelInterface;
|
|
use Symfony\Component\Routing\Annotation\Route;
|
|
|
|
class DefaultController extends AbstractController
|
|
{
|
|
#[Route('/{slug}', name: 'default', requirements: ['slug' => '[a-zA-Z0-9\/]+'])]
|
|
public function DefaultAction(Request $request, Page $page, KernelInterface $kernel, string $slug = 'index')
|
|
{
|
|
$return = $page->getPage($kernel, $slug);
|
|
$response = new Response('', (int)$return['status']);
|
|
return $this->render('/page.html.twig', $return, $response);
|
|
}
|
|
|
|
#[Route('/error/{status}', name: 'error', requirements: ['status' => '[0-9]{3}'], priority: 2)]
|
|
public function ErrorAction(Request $request, Page $page, KernelInterface $kernel, string $status = '404')
|
|
{
|
|
$return = $page->getPage($kernel, 'error/' . $status);
|
|
$response = new Response('', (int)$status);
|
|
return $this->render('/page.html.twig', $return, $response);
|
|
}
|
|
}
|