src/Controller/SettingsVideoController.php line 99

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use App\Twig\AppExtension;
  9. use App\Entity\SettingsVideos;
  10. use App\Repository\SettingsVideosRepository;
  11. use App\Form\Filters\TestimonialFilter;
  12. use App\Form\SettingsVideoForm;
  13. #[Route('/settings-videos')]
  14. class SettingsVideoController extends AbstractController
  15. {
  16.     #[Route('/'methods: ['GET'], name'settings_video_index')]
  17.     public function index(Request $request,EntityManagerInterface $entityManager,AppExtension $appExtension): Response
  18.     {
  19.         $returnArray = array();
  20.         $crmMenu $entityManager->getRepository(\App\Entity\CrmMenu::class)->findBy(['type' => 'mini','enable' => 1],['order' => 'ASC']);
  21.         if ($crmMenu) {
  22.             $returnArray = array();        
  23.             foreach ($crmMenu as $menu) {
  24.                 if($menu->getUrl() == 'user_logout'){
  25.                     continue;
  26.                 }
  27.                 $items = array();
  28.                 $items['main_menu'] = $menu->getLabel();
  29.                 $items['main_url'] = $menu->getUrl();
  30.                 $submenu $entityManager->getRepository(\App\Entity\CrmMenu::class)->findBy(['submenu' => $menu->getMenuId(),'enable' => 1], ['order' => 'ASC']);
  31.                 if ($submenu) {
  32.                     $subMenuItems = array();
  33.                     foreach ($submenu as $sub) {
  34.                         $lastMenu $displayMenu $subMenu = array();
  35.                         $subMenu['sub_menu'] = $sub->getLabel();
  36.                         $subMenu['sub_url'] = $sub->getUrl();
  37.                         if($sub->getExtraLink()){
  38.                             $displayMenu[] = $sub->getUrl();
  39.                             $extraLink explode(',',$sub->getExtraLink());
  40.                             $lastMenu array_merge($displayMenu,$extraLink);
  41.                             if ($lastMenu) {
  42.                                 $lastMenuItems = array();
  43.                                 foreach ($lastMenu as $last) {
  44.                                     $menuName $appExtension->getMenuName($last);
  45.                                     if($menuName){
  46.                                         $lastMenuItems[$last] = $menuName;
  47.                                     }
  48.                                 }
  49.                                 if($lastMenuItems){
  50.                                     $subMenu['sub_sub_menu'] = $lastMenuItems;
  51.                                 }                                
  52.                             }
  53.                         }
  54.                         $subMenuItems[] = $subMenu;
  55.                     }
  56.                     $items['sub_menu'] = $subMenuItems;
  57.                 }
  58.                 $returnArray[] = $items;
  59.             }
  60.         }
  61.         return $this->renderForm('settings-videos/index.html.twig', [
  62.             'crmMenu' => $returnArray,
  63.         ]);
  64.     }
  65.     #[Route('/add'methods: ['GET''POST'], name'settings_video_add')]
  66.     public function settingsVideosAdd(Request $request,EntityManagerInterface $entityManager,AppExtension $appExtension){
  67.         $params $request->query->all();
  68.         $route $params['route'];
  69.         $settingsVideos = new SettingsVideos();
  70.         $form $this->createForm(SettingsVideoForm::class, $settingsVideos);
  71.         $form->handleRequest($request);
  72.         if($form->isSubmitted() && $form->isValid()) {
  73.             $params $request->request->all();
  74.             $route $request->request->get('route');
  75.             $settingsVideos->setRouteName($route);
  76.             $settingsVideos->setVideoTitle($params['settings_video_form']['video_title']);
  77.             $settingsVideos->setVideoUrl($params['settings_video_form']['video_url']);
  78.             $entityManager->persist($settingsVideos);
  79.             $entityManager->flush();
  80.             $this->addFlash('success''Created successfully.');
  81.             return $this->redirectToRoute('settings_video_index', [], Response::HTTP_SEE_OTHER);
  82.         }
  83.         return $this->renderForm('settings-videos/add.html.twig', [
  84.             'route' => $route,
  85.             'form' => $form,
  86.             'settingsVideos' => $settingsVideos,
  87.         ]);
  88.     }
  89.     #[Route('/delete'methods: ['GET''POST'], name'settings_video_delete')]
  90.     public function settingsVideosDelete(Request $request,EntityManagerInterface $entityManager){
  91.         $params $request->query->all();
  92.         $route $params['route'];
  93.         if ($this->isCsrfTokenValid('delete'.$route$request->request->get('_token'))) {
  94.             $route $request->request->get('route');
  95.             $settingsVideos $entityManager->getRepository(\App\Entity\SettingsVideos::class)->findOneBy(['routeName' => $route]);
  96.             if($settingsVideos){
  97.                 $entityManager->remove($settingsVideos);
  98.                 $entityManager->flush();
  99.             }
  100.             $this->addFlash('error''Delete successfully.');
  101.             return $this->redirectToRoute('settings_video_index', [], Response::HTTP_SEE_OTHER);
  102.         }
  103.         return $this->renderForm('settings-videos/_delete_form.html.twig', [
  104.             'route' => $route
  105.         ]);
  106.     }
  107.     #[Route('/edit'methods: ['GET''POST'], name'settings_video_edit')]
  108.     public function settingsVideosEdit(Request $request,EntityManagerInterface $entityManager){
  109.         $params $request->query->all();
  110.         $route $params['route'];
  111.         $settingsVideos $entityManager->getRepository(\App\Entity\SettingsVideos::class)->findOneBy(['routeName' => $route]);
  112.         $form $this->createForm(SettingsVideoForm::class, $settingsVideos);
  113.         $form->handleRequest($request);
  114.         if($form->isSubmitted() && $form->isValid()) {
  115.             $params $request->request->all();
  116.             $route $request->request->get('route');
  117.             $settingsVideos->setRouteName($route);
  118.             $settingsVideos->setVideoTitle($params['settings_video_form']['video_title']);
  119.             $settingsVideos->setVideoUrl($params['settings_video_form']['video_url']);
  120.             $entityManager->persist($settingsVideos);
  121.             $entityManager->flush();
  122.             $this->addFlash('success''Update successfully.');
  123.             return $this->redirectToRoute('settings_video_index', [], Response::HTTP_SEE_OTHER);
  124.         }
  125.         return $this->renderForm('settings-videos/edit.html.twig', [
  126.             'route' => $route,
  127.             'form' => $form,
  128.             'settingsVideos' => $settingsVideos,
  129.         ]);
  130.     }
  131. }