<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Method;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\File\File;
use Doctrine\Common\Collections\ArrayCollection;
use App\Entity\Pages;
use App\Form\PagesType;
use OlaSoft\Common;
/**
* @Route("/os-admin/pages", name="pages-")
*/
class PagesController extends AbstractController
{
/**
* @Route("/",name="admin")
*/
public function admin($keywords=null,$offset=1)
{
$request = $this->get('request_stack')->getCurrentRequest();
$offset--;
$limit = 200;
$of=$offset*$limit;
$em = $this->getDoctrine()->getManager();
$list= $em->getRepository(Pages::class)->findAll();
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\index.html.twig',[
'list'=>$list,
'ajax'=>$ajax,
'noResearch'=>true,
'addBtnClass'=>'btn-popup semi',
"title"=>"Gestion des pages",
"subtitle"=>"Liste de toutes les pages"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=>"Gestion des pages ",
"subtitle"=>"Liste de toutes les pages"
]))
: $response;
}
/**
* @Route("/edit/{id}/",name="edit")
* @Route("/add/",name="new")
*/
public function edit(Pages $article=null)
{
$docs = new ArrayCollection();
$pic = null;
$requiredPic = false;
$em = $this->getDoctrine()->getManager();
$request = $this->get('request_stack')->getCurrentRequest();
if($article===null){
$article=new Pages();
$article->setCreatedBy($this->getUser() ? $this->getUser() : null);
}
else{
$article->setUpdatedBy($this->getUser() ? $this->getUser() : null);
}
$form=$this->createForm(PagesType::class,$article,array('required' => $requiredPic));
$form->handleRequest($request);
if($form->isSubmitted()){
if($form->isValid()){
$htmlCode=$article->getContent();
$doc = new \DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($htmlCode,LIBXML_NOWARNING);//Chargement du contenu de l'article
libxml_clear_errors();
$article->setLastUpdate(new \DateTime);
if($doc->textContent != html_entity_decode("<p> </p>")){
if(!$article->getSlug())
$article->setSlug(Common::slug($article->getTitle()));
$article->setUser($this->getUser());
$em->persist($article);
$em->flush();
return $this->redirectToRoute("pages-admin");
}
else
$this->addFlash("error","Veuillez insérer le contenu de la page s'il vous plaît.");
}
else{
foreach ($form->getErrors(true) as $error)
$this->addFlash("error",$error->getMessage());
}
}
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\edit.html.twig',[
'form'=>$form->createView(),
'ajax'=>$ajax,
"title"=>"Gestion des pages ",
"subtitle"=>"Edition d'une page"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=>"Gestion des pages ",
"subtitle"=>"Edition d'une page"
]))
: $response;
}
}