<?php
namespace App\Controller\Produit\Service;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Service\Servicetext\GeneralServicetext;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\Produit\Service\Typearticle;
use App\Form\Produit\Service\TypearticleType;
use App\Form\Produit\Service\ArticleType;
use App\Entity\Produit\Service\Article;
use Doctrine\ORM\EntityManagerInterface;
use App\Entity\Users\Adminuser\Parametreitem;
use App\Entity\Users\Adminuser\Parametre;
use App\Entity\Produit\Service\Commentairearticle;
use App\Form\Produit\Service\CommentairearticleType;
use App\Entity\Produit\Service\Detailarticle;
class ArticleController extends AbstractController
{
private $_entityManager;
public function __construct(EntityManagerInterface $em)
{
$this->_entityManager = $em;
}
public function updatearticle(GeneralServicetext $service, Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
if(isset($_GET['id']))
{
$id = $_GET['id'];
}else{
$id = $id;
}
$article = $em->getRepository(Article::class)
->find($id);
if($article != null)
{
$form = $this->createForm(ArticleType::class, $article);
if ($request->getMethod() == 'POST'){
$form->handleRequest($request);
if ($form->isValid()){
$article->setCreatedAt(new \Datetime());
$em->flush();
$this->get('session')->getFlashBag()->add('information','Modification effectuée avec succès');
}else{
$this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée!');
}
return $this->redirect($this->generateUrl('users_adminuser_accueil_admin_article'));
}
return $this->render('Theme/Users/Adminuser/Article/updatearticle.html.twig',
array('form'=>$form->createView(),'article'=>$article));
}else{
echo 'Echec ! Une erreur a été rencontrée.';
exit;
}
}
public function deletearticle(Article $article)
{
/*$repository = $this->_entityManager->getRepository(Article::class);
$liste_article = $repository->findArticleTypePagine($typearticle->getId(), 1, 10);*/
if(/*count($liste_article) == 0*/1)
{
$this->_entityManager->remove($article);
$this->_entityManager->flush();
$this->get('session')->getFlashBag()->add('information','Suppression effectuée avec succès');
}else{
$this->get('session')->getFlashBag()->add('information','Echec ! Cette catégorie contient les sous-catégories, Supprimez lès en premier.');
}
return $this->redirect($this->generateUrl('users_adminuser_accueil_admin_article'));
}
public function detailparam(Parametreitem $parametreitem)
{
if($parametreitem->getArticle() != null)
{
return $this->render('Theme/Produit/Service/Article/detailparam.html.twig',
array('parametreitem'=>$parametreitem));
}else{
return $this->redirect($this->generateUrl('users_user_accueil'));
}
}
public function articlesblog(GeneralServicetext $service, $type, $page, $search)
{
$typearticle = null;
if($type > 0)
$typearticle = $this->_entityManager->getRepository(Typearticle::class)->find($type);
if(isset($_POST['search']))
{
$search = $_POST['search'];
}else{
$search = $search;
}
if($typearticle == null)
{
$liste_article = $this->_entityManager->getRepository(Article::class)->myfindAll($page, 9, $search);
}else{
$liste_article = $this->_entityManager->getRepository(Article::class)->findArticleTypePagine($typearticle->getId(), $page, 9);
}
$aboutBlog = $this->_entityManager->getRepository(Parametre::class)
->findOneBy(array('typeParam'=>'detailblog'), array('rang'=>'asc'), 1);
$type_article = $this->_entityManager->getRepository(Typearticle::class)->findAll();
return $this->render($service->getThemeDirectory().'/Produit/Service/Article/articlesblog.html.twig',
array('liste_article'=>$liste_article, 'type'=>$type, 'page'=>$page, 'aboutBlog'=>$aboutBlog,
'nombrepage' => ceil(count($liste_article)/9), 'type_article'=>$type_article, 'typearticle'=>$typearticle));
}
public function descriptionarticle(Article $article)
{
$aboutBlog = $this->_entityManager->getRepository(Parametre::class)
->findOneBy(array('typeParam'=>'detailblog'), array('rang'=>'asc'), 1);
$type_article = $this->_entityManager->getRepository(Typearticle::class)->findAll();
$liste_article = $this->_entityManager->getRepository(Article::class)->myfindAll(1, 5);
$liste_commentaire = $this->_entityManager->getRepository(Commentairearticle::class)
->findBy(array('article'=>$article), array('createdAt'=>'desc'));
$keywords = explode(',', $article->getKeywords());
$comment = new Commentairearticle();
$form = $this->createForm(CommentairearticleType::class, $comment);
return $this->render('Theme/Produit/Service/Article/descriptionarticle.html.twig',
array('article'=>$article, 'aboutBlog'=>$aboutBlog, 'type_article'=>$type_article, 'liste_article'=>$liste_article,
'keywords'=>$keywords, 'liste_commentaire'=>$liste_commentaire, 'form'=>$form->createView()));
}
// public function detailArticle(Article $article, GeneralServicetext $service)
// {
// $parties_article = $this->_entityManager->getRepository(Detailarticle::class)
// ->findBy(array('article'=>$article), array('rang'=>'asc'));
// return $this->render($service->getThemeDirectory().'/Produit/Service/Article/detailArticle.html.twig',
// array('article'=>$article, 'parties_article'=>$parties_article));
// }
public function detailArticle(GeneralServicetext $service)
{
return $this->render($service->getThemeDirectory().'/Produit/Service/Article/detailArticle.html.twig',
array());
}
}