<?php
namespace App\Controller;
use App\Entity\ContentPages;
use App\Form\ContentPagesType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* ContentPagesController controller.
*
* @package App\Controller
*/
class ContentPagesController extends AbstractController
{
/**
* Lists all auction entities.
*
* @Route("/ContentPages", name="contentPages_index")
* @Method("GET")
*
* @Security("has_role('ROLE_SUPER_ADMIN')")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function indexAction()
{
$em = $this->getDoctrine()->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.
*
* @param Request $request
*
* @Route("/ContentPages/new", name="contentPages_new")
* @Method({"GET", "POST"})
*
* @Security("has_role('ROLE_SUPER_ADMIN')")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function newAction(Request $request, TranslatorInterface $translator)
{
$em = $this->getDoctrine()->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.
*
* @param Request $request
* @param ContentPages $contentPages
*
* @Route("/ContentPages/{id}/edit", name="contentPages_edit")
* @Method({"GET", "POST"})
*
* @Security("has_role('ROLE_SUPER_ADMIN')")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function editAction(Request $request, ContentPages $contentPages, TranslatorInterface $translator)
{
$em = $this->getDoctrine()->getManager();
$editForm = $this->createForm(ContentPagesType::class, $contentPages);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid()) {
$contentPages->setUpdatedBy($this->getUser());
$this->getDoctrine()->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.
*
* @param Request $request
* @param ContentPages $contentPages
*
* @Route("/ContentPages/{id}/view", name="contentPages_view")
* @Method({"GET", "POST"})
*
* @Security("has_role('ROLE_SUPER_ADMIN')")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function viewAction(Request $request, ContentPages $contentPages)
{
$em = $this->getDoctrine()->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
* @Route("/content/{page}", name="content", options={"debug": true})
* @Route("/cnt/{page}", name="content_short_url")
* @Method("GET")
*
* @return \Symfony\Component\HttpFoundation\Response
* @throws \Doctrine\ORM\NonUniqueResultException
*/
public function contentPageAction(Request $request){
$em = $this->getDoctrine()->getManager();
$locale = $request->getLocale();
$page = $request->get('page');
$content = $em->getRepository(ContentPages::class)->findOneBy(['keyword' => $page]);
if(!$content){
return $this->redirectToRoute('homepage');
}else{
$content = $content;
}
return $this->render('default/content.html.twig', [
'content' => $content,
'locale' => $locale,
]);
}
}