src/Controller/BlogController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Article;
  4. use App\Repository\ArticleRepository;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Knp\Component\Pager\PaginatorInterface;
  12. class BlogController extends AbstractController
  13. {
  14.     #[Route('/blog'name'app_blog')]
  15.     public function index(Request $requestArticleRepository $articleRepositoryPaginatorInterface $paginator): Response
  16.     {
  17.         
  18.          $lesArticles $paginator->paginate(
  19.             $articleRepository->findBy(['statut' => true], ['id' => 'desc']),
  20.             $request->query->getInt('page'1), /*page number*/
  21.             /*limit per page*/
  22.         );
  23.         
  24.         return $this->render('blog/index.html.twig', [
  25.             'articles' => $lesArticles,
  26.             'actif1' => '',
  27.             'actif2' => '',
  28.             'actif3' => '',
  29.             'actif4' => 'active',
  30.             'actif5' => '',
  31.         ]);
  32.     }
  33.     #[Route('/admin/blog'name'app_admin_blog')]
  34.     public function blog(ArticleRepository $articleRepository): Response
  35.     {
  36.        
  37.         $lesArticles $articleRepository->findBy([], ['id' => 'desc']);
  38.         // dd($lesArticles);
  39.         return $this->render('blog/article_liste.html.twig', [
  40.             'articles' => $lesArticles,
  41.             'active1' => '',
  42.             'active2' => '',
  43.             'active3' => '',
  44.             'active4' => '',
  45.             'active5' => '',
  46.             'active6' => 'active',
  47.             'active7' => '',
  48.             'actif1' => '',
  49.             'actif2' => '',
  50.             'actif3' => '',
  51.             'actif4' => 'active',
  52.             'actif5' => '',
  53.         ]);
  54.     }
  55.     #[Route('/admin/blog/article'name'app_admin_blog_article')]
  56.     public function blog_article(): Response
  57.     {
  58.         return $this->render('blog/article_add.html.twig', [
  59.             'active1' => '',
  60.             'active2' => '',
  61.             'active3' => '',
  62.             'active4' => '',
  63.             'active5' => '',
  64.             'active6' => 'active',
  65.             'active7' => '',
  66.             'actif1' => '',
  67.             'actif2' => '',
  68.             'actif3' => '',
  69.             'actif4' => 'active',
  70.             'actif5' => '',
  71.         ]);
  72.     }
  73.     #[Route('/blog/{id}-{titre}'name'app_admin_blog_detail')]
  74.     public function blog_detail($idArticleRepository $articleRepository): Response
  75.     {
  76.         $article $articleRepository->find($id);
  77.         return $this->render('blog/article_detail.html.twig',[
  78.             'article'=>$article,
  79.             'articles' => $articleRepository->findBy([],['id' => 'desc']),
  80.             'actif1' => '',
  81.             'actif2' => '',
  82.             'actif3' => '',
  83.             'actif4' => 'active',
  84.             'actif5' => '',
  85.         ]);
  86.     }
  87.     #[Route('/admin/blog/{id}/article'name'app_admin_blog_update')]
  88.     public function blog_update($idArticleRepository $articleRepository): Response
  89.     {
  90.       $article $articleRepository->find($id);
  91.         return $this->render('blog/article_update.html.twig', [
  92.             'article'=>$article,
  93.             'active1' => '',
  94.             'active2' => '',
  95.             'active3' => '',
  96.             'active4' => '',
  97.             'active5' => '',
  98.             'active6' => 'active',
  99.             'active7' => '',
  100.             'actif1' => '',
  101.             'actif2' => '',
  102.             'actif3' => '',
  103.             'actif4' => 'active',
  104.             'actif5' => '',
  105.         ]);
  106.     }
  107.     #[Route('/admin/blog/{id}/article/delete'name'app_admin_blog_delete')]
  108.     public function blog_delete($idArticleRepository $articleRepositoryEntityManagerInterface $emi): Response
  109.     {
  110.       $article $articleRepository->find($id);
  111.       $article->setStatut(false);
  112.       $emi->persist($article);
  113.       $emi->flush();
  114.       return $this->redirectToRoute('app_admin_blog');
  115.     }
  116.     #[Route('/admin/blog/article/save'name'app_admin_blog_article_save')]
  117.     public function blog_article_save(Request $requestEntityManagerInterface $emi): Response
  118.     {
  119.         if ($request->isMethod('post')) {
  120.             $data $request->request->all();
  121.            // dd($data);
  122.             $datas $request->request->all();
  123.             $file $request->files->get('fichier');
  124.             $article = new Article();
  125.             $article->setTitre($datas['titre']);
  126.             $article->setMiniDescription($datas['miniDescription']);
  127.             $article->setDescription($datas['description']);
  128.             $article->setUser($this->getUser());
  129.             if (isset($data['statut'])) {
  130.                 $article->setStatut(true);
  131.             }else{
  132.                 $article->setStatut(false);
  133.             }
  134.            
  135.             $article->setCreatedAt(new \DateTimeImmutable());
  136.             if ($file->guessExtension() === 'jpg' || $file->guessExtension() === 'jpeg' || $file->guessExtension() === 'png' || $file->guessExtension() === 'gif') {
  137.                 // this is needed to safely include the file name as part of the URL
  138.                 $safeFilename uniqid() . '.' $file->guessExtension();
  139.                 // Move the file to the directory where brochures are stored
  140.                 try {
  141.                     $file->move(
  142.                         'images/articles',
  143.                         $safeFilename
  144.                     );
  145.                 } catch (FileException $e) {
  146.                     // ... handle exception if something happens during file upload
  147.                 }
  148.                 $article->setImage($safeFilename);
  149.                 $emi->persist($article);
  150.                 $emi->flush();
  151.                 $this->addFlash('notif''Article bien enregistré');
  152.             } else {
  153.                 $this->addFlash('notif''Le fichier n\'a pas pu etre envoyer.. sassurez-vous qu\'il s\'agit bien d\'un fichier Image');
  154.             }
  155.         }
  156.         return $this->redirectToRoute('app_admin_blog');
  157.     }
  158.     #[Route('/admin/blog/article/{id}/update'name'app_admin_blog_article_update')]
  159.     public function blog_article_update(Request $requestEntityManagerInterface $emi,$id,ArticleRepository $articleRepository): Response
  160.     {
  161.         if ($request->isMethod('post')) {
  162.             $data $request->request->all();
  163.            // dd($data);
  164.             $datas $request->request->all();
  165.             $file $request->files->get('fichier');
  166.             $article $articleRepository->find($id); //mod
  167.             $article->setTitre($datas['titre']);
  168.             $article->setMiniDescription($datas['miniDescription']);
  169.             $article->setDescription($datas['description']);
  170.             $article->setUser($this->getUser());
  171.             if (isset($data['statut'])) {
  172.                 $article->setStatut(true);
  173.             }else{
  174.                 $article->setStatut(false);
  175.             }
  176.            
  177.             $article->setCreatedAt(new \DateTimeImmutable());
  178.            if ($file != null ) {
  179.    
  180.             if ($file->guessExtension() === 'jpg' || $file->guessExtension() === 'jpeg' || $file->guessExtension() === 'png' || $file->guessExtension() === 'gif') {
  181.                 // this is needed to safely include the file name as part of the URL
  182.                 $safeFilename uniqid() . '.' $file->guessExtension();
  183.                 // Move the file to the directory where brochures are stored
  184.                 try {
  185.                     $file->move(
  186.                         'images/articles',
  187.                         $safeFilename
  188.                     );
  189.                 } catch (FileException $e) {
  190.                     // ... handle exception if something happens during file upload
  191.                 }
  192.                 $article->setImage($safeFilename);
  193.                 $emi->persist($article);
  194.                 $emi->flush();
  195.                 $this->addFlash('notif''Article bien modifié');
  196.             } else {
  197.                 $this->addFlash('notif''Le fichier n\'a pas pu etre envoyer.. sassurez-vous qu\'il s\'agit bien d\'un fichier Image');
  198.             }
  199.      }else{
  200.          $articl $articleRepository->find($id);
  201.         $article->setImage($articl->getImage());
  202.         $emi->persist($article);
  203.         $emi->flush();
  204.      }
  205.         }
  206.         return $this->redirectToRoute('app_admin_blog');
  207.     }
  208. }