svg
This commit is contained in:
@ -13,23 +13,47 @@ use App\Form\CategoryType as Form;
|
||||
class CategoryController extends AbstractController
|
||||
{
|
||||
private $data = "category";
|
||||
private $route = "app_category";
|
||||
private $route = "app_admin_category";
|
||||
private $render = "Category/";
|
||||
private $entity = "App:Category";
|
||||
|
||||
public function list(Request $request)
|
||||
public function list($by,$userid)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$datas = $em->getRepository($this->entity)->findAll();
|
||||
if($by=="admin") {
|
||||
$datas = $em->getRepository($this->entity)->findAll();
|
||||
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
]);
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
]);
|
||||
}
|
||||
else {
|
||||
$datas = $em->getRepository($this->entity)->findBy(["user"=>$em->getRepository("App:User")->find($userid)]);
|
||||
|
||||
return $this->render($this->render.'listrender.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"by" => $by,
|
||||
"userid" => $userid,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
public function listuser()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$datas = $em->getRepository($this->entity)->findByUser($this->getUser());
|
||||
|
||||
return $this->render($this->render.'listrender.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"by" => "profil",
|
||||
"userid" => $this->getUser()->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function submit($by, $userid, Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
@ -43,9 +67,17 @@ class CategoryController extends AbstractController
|
||||
$data->setAppthumbfilteropacity(100);
|
||||
$data->setAppthumbfiltersepia(0);
|
||||
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit"));
|
||||
if($by=="admin"||$by=="update") {
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit","by"=>$by,"user"=>$em->getRepository("App:User")->find($userid)));
|
||||
} else {
|
||||
$userid=$this->getUser()->getId();
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit","by"=>$by,"user"=>$this->getUser()));
|
||||
}
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
@ -60,7 +92,13 @@ class CategoryController extends AbstractController
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
if($by=="admin")
|
||||
return $this->redirectToRoute($this->route,["by"=>$by,"userid"=>-1]);
|
||||
elseif($by=="update")
|
||||
return $this->redirectToRoute("app_user_update",["id"=>$data->getUser()->getId()]);
|
||||
elseif($by=="profil")
|
||||
return $this->redirectToRoute("app_user_profil");
|
||||
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
@ -69,18 +107,30 @@ class CategoryController extends AbstractController
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView()
|
||||
'form' => $form->createView(),
|
||||
'by' => $by,
|
||||
'userid' => $userid,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id,Request $request)
|
||||
public function update($id,$by,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
if(!$data) return $this->redirectToRoute("app_home");
|
||||
|
||||
// Permission
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
if($by!="admin"&&$by!="update") {
|
||||
if($this->getUser()!=$data->getUser()&&!$this->getUser()->hasRole("ROLE_ADMIN"))
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update"));
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update","by"=>$by,"user"=>$this->getUser()));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
@ -95,7 +145,13 @@ class CategoryController extends AbstractController
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
if($by=="admin")
|
||||
return $this->redirectToRoute($this->route,["by"=>$by,"userid"=>-1]);
|
||||
elseif($by=="update")
|
||||
return $this->redirectToRoute("app_user_update",["id"=>$data->getUser()->getId()]);
|
||||
elseif($by=="profil")
|
||||
return $this->redirectToRoute("app_user_profil");
|
||||
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
@ -104,15 +160,27 @@ class CategoryController extends AbstractController
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView()
|
||||
'form' => $form->createView(),
|
||||
'by' => $by,
|
||||
'userid' => $data->getUser()->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete($id,Request $request)
|
||||
public function delete($id,$by,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
if(!$data) return $this->redirectToRoute("app_home");
|
||||
|
||||
// Permission
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
if($by!="admin"&&$by!="update") {
|
||||
if($this->getUser()!=$data->getCategory()->getUser()&&!$this->getUser()->hasRole("ROLE_ADMIN"))
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
@ -125,7 +193,12 @@ class CategoryController extends AbstractController
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
if($by=="admin")
|
||||
return $this->redirectToRoute($this->route,["by"=>$by,"userid"=>-1]);
|
||||
elseif($by=="update")
|
||||
return $this->redirectToRoute("app_user_update",["id"=>$data->getUser()->getId()]);
|
||||
elseif($by=="profil")
|
||||
return $this->redirectToRoute("app_user_profil");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,12 @@ class IllustrationController extends AbstractController
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
|
||||
|
||||
// Permission
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
if($by=="admin"||$by=="update") {
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit","by"=>$by,"user"=>$em->getRepository("App:User")->find($userid)));
|
||||
@ -107,7 +112,12 @@ class IllustrationController extends AbstractController
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
if(!$data) return $this->redirectToRoute("app_home");
|
||||
|
||||
// Permission
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
if($by!="admin"&&$by!="update") {
|
||||
if($this->getUser()!=$data->getCategory()->getUser()&&!$this->getUser()->hasRole("ROLE_ADMIN"))
|
||||
return $this->redirectToRoute("app_home");
|
||||
@ -128,7 +138,6 @@ class IllustrationController extends AbstractController
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à l'illustration
|
||||
// Retour à la liste
|
||||
if($by=="admin")
|
||||
return $this->redirectToRoute($this->route,["by"=>$by,"userid"=>-1]);
|
||||
@ -157,13 +166,17 @@ class IllustrationController extends AbstractController
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
if(!$data) return $this->redirectToRoute("app_home");
|
||||
|
||||
// Permission
|
||||
if(!$this->getUser()->hasRole("ROLE_ADMIN")&&($by=="admin"||$by=="update")) {
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
if($by!="admin"&&$by!="update") {
|
||||
if($this->getUser()!=$data->getCategory()->getUser()&&!$this->getUser()->hasRole("ROLE_ADMIN"))
|
||||
return $this->redirectToRoute("app_home");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
if($id<0) $error=true;
|
||||
@ -196,8 +209,8 @@ class IllustrationController extends AbstractController
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
$datanext=$this->getDataAllNext($idcat,$id);
|
||||
$dataprev=$this->getDataAllPrev($idcat,$id);
|
||||
$datanext=$this->getDataAllNext($idcat,$data->getSubmittime(),$by);
|
||||
$dataprev=$this->getDataAllPrev($idcat,$data->getSubmittime(),$by);
|
||||
|
||||
$pathinfo=pathinfo($data->getIllustration());
|
||||
|
||||
@ -214,61 +227,55 @@ class IllustrationController extends AbstractController
|
||||
}
|
||||
|
||||
|
||||
protected function getDataAllNext($idcat,$id)
|
||||
protected function getDataAllNext($idcat,$submittime,$by)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->where('e.id>:id')
|
||||
->andWhere('e.category=:idcat')
|
||||
->getQuery()
|
||||
->setParameter("id", $id)
|
||||
->setParameter("idcat", $idcat)
|
||||
->setMaxResults(1)
|
||||
->getResult();
|
||||
$qb = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->where('e.submittime>:submittime')
|
||||
->setParameter("submittime", $submittime);
|
||||
if($by!="home") {
|
||||
$qb=$qb->andWhere('e.category=:idcat')->setParameter("idcat", $idcat);
|
||||
}
|
||||
$data = $qb->orderBy('e.submittime', 'ASC')->getQuery()->setMaxResults(1)->getResult();
|
||||
|
||||
// Si pas de suivant on recherche le premier
|
||||
if(!$data) {
|
||||
$data = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->Where('e.category=:idcat')
|
||||
->getQuery()
|
||||
->setParameter("idcat", $idcat)
|
||||
->setMaxResults(1)
|
||||
->getResult();
|
||||
$qb = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e');
|
||||
if($by!="home") {
|
||||
$qb=$qb->andWhere('e.category=:idcat')->setParameter("idcat", $idcat);
|
||||
}
|
||||
$data = $qb->orderBy('e.submittime', 'ASC')->getQuery()->setMaxResults(1)->getResult();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function getDataAllPrev($idcat,$id)
|
||||
protected function getDataAllPrev($idcat,$submittime,$by)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->where('e.id<:id')
|
||||
->andWhere('e.category=:idcat')
|
||||
->orderBy('e.id','DESC')
|
||||
->getQuery()
|
||||
->setParameter("id", $id)
|
||||
->setParameter("idcat", $idcat)
|
||||
->setMaxResults(1)
|
||||
->getResult();
|
||||
$qb = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->where('e.submittime<:submittime')
|
||||
->setParameter("submittime", $submittime);
|
||||
if($by!="home") {
|
||||
$qb=$qb->andWhere('e.category=:idcat')->setParameter("idcat", $idcat);
|
||||
}
|
||||
$data = $qb->orderBy('e.submittime', 'DESC')->getQuery()->setMaxResults(1)->getResult();
|
||||
|
||||
// Si pas de précedent on recherche le dernier
|
||||
if(!$data) {
|
||||
$data = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e')
|
||||
->Where('e.category=:idcat')
|
||||
->orderBy('e.id','DESC')
|
||||
->getQuery()
|
||||
->setParameter("idcat", $idcat)
|
||||
->setMaxResults(1)
|
||||
->getResult();
|
||||
$qb = $em->createQueryBuilder()
|
||||
->select('e')
|
||||
->from($this->entity, 'e');
|
||||
if($by!="home") {
|
||||
$qb=$qb->Where('e.category=:idcat')->setParameter("idcat", $idcat);
|
||||
}
|
||||
$data = $qb->orderBy('e.submittime', 'DESC')->getQuery()->setMaxResults(1)->getResult();
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
@ -9,6 +9,10 @@ use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
|
||||
class CategoryType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
@ -36,6 +40,28 @@ class CategoryType extends AbstractType
|
||||
]
|
||||
);
|
||||
|
||||
if($options["by"]=="admin") {
|
||||
$builder->add('user',
|
||||
EntityType::class, [
|
||||
"class" => "App:User",
|
||||
"label" => "Utilisateur",
|
||||
"choice_label"=> "username",
|
||||
]
|
||||
);
|
||||
}
|
||||
else {
|
||||
$builder->add('user',
|
||||
EntityType::class, [
|
||||
"class" => "App:User",
|
||||
"label" => "Utilisateur",
|
||||
"choice_label"=> "username",
|
||||
'query_builder' => function (EntityRepository $er) use ($options): QueryBuilder {
|
||||
return $er->createQueryBuilder('u')->where('u.id=:user')->setParameter('user',$options['user']->getId());
|
||||
},
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$builder->add('usecategoryconfig',
|
||||
ChoiceType::class, [
|
||||
"label" =>"Utiliser une configuration de style spécifique",
|
||||
@ -91,6 +117,8 @@ class CategoryType extends AbstractType
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Category',
|
||||
'mode' => 'string',
|
||||
'by' => 'string',
|
||||
'user' => 'App\Entity\User'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -7,9 +7,9 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
|
||||
|
Reference in New Issue
Block a user