src/Controller/ContentPagesController.php line 141
<?php
namespace App\Controller;
use App\Entity\ContentPages;
use App\Form\ContentPagesType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Translation\TranslatorInterface;
use Doctrine\Persistence\ManagerRegistry;
/**
* ContentPagesController controller.
*
* @package App\Controller
*/
class ContentPagesController extends AbstractController
{
/**
* Lists all auction entities.
*
* @return \Symfony\Component\HttpFoundation\Response
*/
#[Route(path: '/ContentPages', name: 'contentPages_index', methods: ["GET"])]
#[IsGranted('ROLE_SUPER_ADMIN')]
public function indexAction(ManagerRegistry $doctrine)
{
$em = $doctrine->getManager();
$contentPages = $em->getRepository(ContentPages::class)->findAll();
$totalResult = count($contentPages);
return $this->render('contentpages/index.html.twig', [
'contentpages' => $contentPages,
'totalResult' => $totalResult
]);
}
/**
* Creates a new content pages entity.
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
#[Route(path: '/ContentPages/new', name: 'contentPages_new', methods: ["GET", "POST"])]
#[IsGranted('ROLE_SUPER_ADMIN')]
public function newAction(Request $request, TranslatorInterface $translator, ManagerRegistry $doctrine)
{
$em = $doctrine->getManager();
$locale = $request->getLocale();
$contentPages = new ContentPages();
$form = $this->createForm(ContentPagesType::class, $contentPages);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$contentPages->setCreatedBy($this->getUser());
$em->persist($contentPages);
$em->flush();
$session = $request->getSession();
$session->getFlashBag()->add('success',
$translator->trans('Content Page added successfully', [], 'clients')
);
return $this->redirectToRoute('contentPages_index');
}
return $this->render('contentpages/new.html.twig', [
'contentpages' => $contentPages,
'form' => $form->createView(),
'locale' => $locale,
]);
}
/**
* Displays a form to edit content Pages entity.
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
#[Route(path: '/ContentPages/{id}/edit', name: 'contentPages_edit', methods: ["GET", "POST"])]
#[IsGranted('ROLE_SUPER_ADMIN')]
public function editAction(Request $request, ContentPages $contentPages, TranslatorInterface $translator, ManagerRegistry $doctrine)
{
$doctrine->getManager();
$editForm = $this->createForm(ContentPagesType::class, $contentPages);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid()) {
$contentPages->setUpdatedBy($this->getUser());
$doctrine->getManager()->flush();
$session = $request->getSession();
$session->getFlashBag()->add('success',
$translator->trans('Content Page updated successfully', [], 'clients')
);
return $this->redirectToRoute('contentPages_edit', ['id' => $contentPages->getId()]);
}
return $this->render('contentpages/edit.html.twig', [
'contentpages' => $contentPages,
'form' => $editForm->createView(),
]);
}
/**
* Displays a form to view content Pages entity.
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
#[Route(path: '/ContentPages/{id}/view', name: 'contentPages_view', methods: ["GET", "POST"])]
#[IsGranted('ROLE_SUPER_ADMIN')]
public function viewAction(Request $request, ContentPages $contentPages, ManagerRegistry $doctrine)
{
$doctrine->getManager();
$locale = $request->getLocale();
return $this->render('contentpages/view.html.twig', [
'contentpages' => $contentPages,
'locale' => $locale,
]);
}
/**
* Front pages action
*
* @param Request $request
*
* check Route params in this: \Symfony\Component\Routing\Route
* @return \Symfony\Component\HttpFoundation\Response
* @throws \Doctrine\ORM\NonUniqueResultException
*/
#[Route(path: '/content/{page}', name: 'content', options: ['debug' => true], methods: ["GET"])]
#[Route(path: '/cnt/{page}', name: 'content_short_url', methods: ["GET"])]
public function contentPageAction(Request $request, ManagerRegistry $doctrine){
$em = $doctrine->getManager();
$locale = $request->getLocale();
$page = $request->get('page');
$content = $em->getRepository(ContentPages::class)->findOneBy(['keyword' => $page]);
if(!$content){
return $this->redirectToRoute('homepage');
}else {
}
return $this->render('default/content.html.twig', [
'content' => $content,
'locale' => $locale,
]);
}
}