src/Controller/PanelKategoriController.php line 297

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Dil;
  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\Controller\BaseController;
  9. use App\Entity\Kategori;
  10. use App\Entity\Sayfa;
  11.  
  12. class PanelKategoriController extends BaseController
  13. {
  14.     /**
  15.      * @Route("/admin/kategori/{dilgrup}", name="kategori_homepage")
  16.      */
  17.     public function index($dilgrup): Response
  18.     {
  19.         $em $this->getDoctrine()->getManager();
  20.         $qb $em->createQueryBuilder();
  21.         $diller=$qb->select('d.id,d.kisa')
  22.             ->from('App:Dil''d')
  23.             ->where("d.aktif=1")
  24.             ->orderBy('d.id')
  25.             ->getQuery()
  26.             ->getScalarResult();
  27.         $qb $em->createQueryBuilder();
  28.         $sayfa=$qb->select('s.id,s.adi,m.alan,m.tip,m.bosluk,m.cokluDil,m.tabloAdi,s.dilgrup')
  29.             ->from('App:Sayfa''s')
  30.             ->join('s.modul''m')
  31.             ->where('s.id='.$dilgrup)
  32.             ->getQuery()
  33.             ->getScalarResult();
  34.         $qb $em->createQueryBuilder();
  35.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
  36.             ->from('App:Kategori''k')
  37.             ->join('k.sayfa','s')
  38.             ->where('s.id='.$dilgrup.' and k.ustid=0')
  39.             ->groupBy('k.dilgrup')
  40.             ->orderBy('k.sira','ASC')
  41.             ->getQuery()
  42.             ->getScalarResult();
  43.         return $this->render('panel/kategori/index.html.twig',array('diller'=>$diller,'sayfa'=>$sayfa[0],'kategoriler'=>$kategoriler));
  44.     }
  45.     /**
  46.      * @Route("/admin/kategori/{dilgrup}/getir", name="kategori_getir")
  47.      */
  48.     public function getir($dilgrup): Response
  49.     {
  50.         $em $this->getDoctrine()->getManager();
  51.         $qb $em->createQueryBuilder();
  52.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,d.kisa as dKisa')
  53.             ->from('App:Kategori''k')
  54.             ->join('k.dil','d')
  55.             ->join('k.sayfa','s')
  56.             ->where('s.id='.$dilgrup.' and k.ustid=0')
  57.             ->groupBy('k.dilgrup')
  58.             ->orderBy('k.sira','ASC')
  59.             ->getQuery()
  60.             ->getScalarResult();
  61.         $qb $em->createQueryBuilder();
  62.         $sayfa=$qb->select('s.id,s.adi,m.alan,m.tip,m.bosluk,m.cokluDil,m.tabloAdi,s.dilgrup,s.seo')
  63.             ->from('App:Sayfa''s')
  64.             ->join('s.modul''m')
  65.             ->where('s.id='.$dilgrup)
  66.             ->getQuery()
  67.             ->getScalarResult();
  68.         return $this->render('panel/kategori/getir.html.twig',array('kategoriler'=>$kategoriler,'sayfa'=>$sayfa[0]));
  69.     }
  70.     /**
  71.      * @Route("/admin/kategori/{dilgrup}/ekle", name="kategori_ekle")
  72.      */
  73.     public function ekle($dilgrupRequest $request): Response
  74.     {
  75.         $em $this->getDoctrine()->getManager();
  76.         $adi $request->request->get('adi');
  77.         $ustKategori $request->request->get('kategori');
  78.         if(!empty($_FILES['resim'])){
  79.             $resim=$this->seo($adi[0]).'_resim_'.time().'_';
  80.             move_uploaded_file($_FILES['resim']['tmp_name'], "gecici_yukleme/".$resim.$this->uzantiBul($_FILES['resim']['type']));
  81.             $resim $this->imageResizer($resim.$this->uzantiBul($_FILES['resim']['type']),$resim);
  82.             $this->uploadFile($resim);
  83.         }else{
  84.             $resim=null;
  85.         }
  86.         $qb $em->createQueryBuilder();
  87.         $diller=$qb->select('d.id')
  88.             ->from('App:Dil''d')
  89.             ->where("d.aktif=1")
  90.             ->orderBy('d.id')
  91.             ->getQuery()
  92.             ->getScalarResult();
  93.         $sayfaSecim $em->getReference(Sayfa::class,$dilgrup);
  94.         $son_dilgrup $this->son_dilgrup('Kategori');
  95.         foreach ($diller as $key=>$dil){
  96.             $dilSecim $em->getReference(Dil::class,$dil['id']);
  97.             $kategori = new Kategori();
  98.             $kategori->setAdi($adi[$key]);
  99.             $kategori->setTitle($adi[$key]);
  100.             $kategori->setSeourl($this->seo($adi[$key],$dil['id']));
  101.             $kategori->setUstid($ustKategori);
  102.             $kategori->setResim($resim);
  103.             $kategori->setDil($dilSecim);
  104.             $kategori->setDilgrup($son_dilgrup);
  105.             $kategori->setSira(0);
  106.             $kategori->setSayfa($sayfaSecim);
  107.             $em->persist($kategori);
  108.         }
  109.         $em->flush();
  110.         return new Response('');
  111.     }
  112.     /**
  113.      * @Route("/admin/kategori/{dilgrup}/duzenleAc", name="kategori_duzenleAc")
  114.      */
  115.     public function duzenleAc($dilgrup,Request $request): Response
  116.     {
  117.         $em $this->getDoctrine()->getManager();
  118.         $id $request->request->get('id');
  119.         $qb $em->createQueryBuilder();
  120.         $kategori=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,d.kisa as dKisa,k.resim,k.ustid')
  121.             ->from('App:Kategori''k')
  122.             ->join('k.dil','d')
  123.             ->where('k.dilgrup='.$id)
  124.             ->orderBy('d.id')
  125.             ->getQuery()
  126.             ->getScalarResult();
  127.         $qb $em->createQueryBuilder();
  128.         $diller=$qb->select('d.id,d.kisa')
  129.             ->from('App:Dil''d')
  130.             ->where("d.aktif=1")
  131.             ->orderBy('d.id')
  132.             ->getQuery()
  133.             ->getScalarResult();
  134.         $qb $em->createQueryBuilder();
  135.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
  136.             ->from('App:Kategori''k')
  137.             ->join('k.sayfa','s')
  138.             ->where('s.id='.$dilgrup.' and k.ustid=0')
  139.             ->groupBy('k.dilgrup')
  140.             ->orderBy('k.sira','ASC')
  141.             ->getQuery()
  142.             ->getScalarResult();
  143.         return $this->render('panel/kategori/duzenleAc.html.twig',array('kategori'=>$kategori,'diller'=>$diller,'kategoriler'=>$kategoriler));
  144.     }
  145.     /**
  146.      * @Route("/admin/kategori/{dilgrup}/duzenle", name="kategori_duzenle")
  147.      */
  148.     public function duzenle($dilgrupRequest $request): Response
  149.     {
  150.         $em $this->getDoctrine()->getManager();
  151.         $dilgrup $request->request->get('id');
  152.         $adi $request->request->get('adi');
  153.         $ustKategori $request->request->get('kategori');
  154.         $qb $em->createQueryBuilder();
  155.         $kategori=$qb->select('k.resim')
  156.             ->from('App:Kategori''k')
  157.             ->join('k.dil','d')
  158.             ->where('k.dilgrup='.$dilgrup)
  159.             ->getQuery()
  160.             ->getScalarResult();
  161.         if(!empty($_FILES['resim'])){
  162.             $resim=$this->seo($adi[0]).'_resim_'.time().'_';
  163.             move_uploaded_file($_FILES['resim']['tmp_name'], "gecici_yukleme/".$resim.$this->uzantiBul($_FILES['resim']['type']));
  164.             $resim $this->imageResizer($resim.$this->uzantiBul($_FILES['resim']['type']),$resim);
  165.             $this->uploadFile($resim);
  166.             //@unlink('uploads/'.$kategori[0]['resim']);
  167.             $this->deleteFile($kategori[0]['resim']);
  168.         }
  169.         $qb $em->createQueryBuilder();
  170.         $diller=$qb->select('d.id')
  171.             ->from('App:Dil''d')
  172.             ->where("d.aktif=1")
  173.             ->orderBy('d.id')
  174.             ->getQuery()
  175.             ->getScalarResult();
  176.         foreach ($diller as $key=>$dil){
  177.             $dilSecim $em->getReference(Dil::class,$dil['id']);
  178.             $qb $em->createQueryBuilder();
  179.             $q $qb->update('App:Kategori''s')
  180.                 ->set('s.adi'':adi')
  181.                 ->set('s.ustid'':ustid')
  182.                 ->set('s.dil'':dil')
  183.                 ->set('s.dilgrup'':dilgrup')
  184.                 ->where("s.dil = ".$dil['id']." and s.dilgrup=$dilgrup")
  185.                 ->setParameter('adi'$adi[$key])
  186.                 ->setParameter('dil'$dilSecim)
  187.                 ->setParameter('dilgrup'$dilgrup)
  188.                 ->setParameter('ustid'$ustKategori)
  189.                 ->getQuery()
  190.                 ->execute();
  191.         }
  192.         if(!empty($_FILES['resim'])){
  193.             $qb $em->createQueryBuilder();
  194.             $q $qb->update('App:Kategori''s')
  195.                 ->set('s.resim'':resim')
  196.                 ->where("s.dilgrup=$dilgrup")
  197.                 ->setParameter('resim'$resim)
  198.                 ->getQuery()
  199.                 ->execute();
  200.         }
  201.         return new Response('');
  202.     }
  203.     /**
  204.      * @Route("/admin/kategori/{dilgrup}/sil", name="kategori_sil")
  205.      */
  206.     public function sil($dilgrupRequest $request): Response
  207.     {
  208.         $em $this->getDoctrine()->getManager();
  209.         $id $request->request->get('id');
  210.         $qb $em->createQueryBuilder();
  211.         $kategori=$qb->select('k.resim')
  212.             ->from('App:Kategori''k')
  213.             ->where('k.dilgrup='.$id)
  214.             ->getQuery()
  215.             ->getScalarResult();
  216.         if(!empty($kategori[0]['resim'])) {
  217.             //@unlink('uploads/' . $kategori[0]['resim']);
  218.             $this->deleteFile($kategori[0]['resim']);
  219.         }
  220.         $kkk $em->getRepository(Kategori::class)->findBy(array('dilgrup'=>$id));
  221.         $this->removeEntity($kkk);
  222.         $em->flush();
  223.         return new Response('');
  224.     }
  225.     /**
  226.      * @Route("/admin/kategori/{dilgrup}/seoAyarAc", name="kategori_seoAyarAc")
  227.      */
  228.     public function seoAyarAc($dilgrup,Request $request): Response
  229.     {
  230.         $em $this->getDoctrine()->getManager();
  231.         $id $request->request->get('id');
  232.         $qb $em->createQueryBuilder();
  233.         $kategori=$qb->select('k.id,k.dilgrup,k.seourl,k.title,k.description,k.keywords,k.ustid')
  234.             ->from('App:Kategori''k')
  235.             ->where('k.dilgrup='.$id)
  236.             ->getQuery()
  237.             ->getScalarResult();
  238.         $qb $em->createQueryBuilder();
  239.         $diller=$qb->select('d.id,d.kisa')
  240.             ->from('App:Dil''d')
  241.             ->where("d.aktif=1")
  242.             ->orderBy('d.id')
  243.             ->getQuery()
  244.             ->getScalarResult();
  245.         $dilgrupBul $this->dilgrupBul('Sayfa',$dilgrup);
  246.         $qb $em->createQueryBuilder();
  247.         $sayfa=$qb->select('s.seo')
  248.             ->from('App:Sayfa''s')
  249.             ->where('s.dilgrup='.$dilgrupBul)
  250.             ->orderBy('s.dil')
  251.             ->getQuery()
  252.             ->getScalarResult();
  253.         return $this->render('panel/kategori/seoAyarAc.html.twig',array('kategori'=>$kategori,'diller'=>$diller,'sayfa'=>$sayfa));
  254.     }
  255.     /**
  256.      * @Route("/admin/kategori/{dilgrup}/seoAyar", name="kategori_seoAyar")
  257.      */
  258.     public function seoAyar(Request $request): Response
  259.     {
  260.         $em $this->getDoctrine()->getManager();
  261.         $dilgrup $request->request->get('id');
  262.         $seourl $request->request->get('seourl');
  263.         $title $request->request->get('title');
  264.         $keywords $request->request->get('keywords');
  265.         $description $request->request->get('description');
  266.         $qb $em->createQueryBuilder();
  267.         $diller=$qb->select('d.id')
  268.             ->from('App:Dil''d')
  269.             ->where("d.aktif=1")
  270.             ->orderBy('d.id')
  271.             ->getQuery()
  272.             ->getScalarResult();
  273.         foreach ($diller as $key=>$dil){
  274.             $qb $em->createQueryBuilder();
  275.             $q $qb->update('App:Kategori''s')
  276.                 ->set('s.seourl'':seourl')
  277.                 ->set('s.title'':title')
  278.                 ->set('s.keywords'':keywords')
  279.                 ->set('s.description'':description')
  280.                 ->where("s.dil = ".$dil['id']." and s.dilgrup=$dilgrup")
  281.                 ->setParameter('seourl'$this->seo($seourl[$key],$dil['id']))
  282.                 ->setParameter('title'$title[$key])
  283.                 ->setParameter('keywords'$keywords[$key])
  284.                 ->setParameter('description'$description[$key])
  285.                 ->getQuery()
  286.                 ->execute();
  287.         }
  288.         return new Response('');
  289.     }
  290.     /**
  291.      * @Route("/admin/kategori/{dilgrup}/sirala", name="kategori_sirala")
  292.      */
  293.     public function sirala($dilgrup,Request $request): Response
  294.     {
  295.         $em $this->getDoctrine()->getManager();
  296.         $listItem $request->request->get('listItem');
  297.         foreach ($listItem as $sira=>$id){
  298.             $qb $em->createQueryBuilder();
  299.             $q $qb->update('App:Kategori''k')
  300.                 ->set('k.sira'':sira')
  301.                 ->where("k.dilgrup=$id")
  302.                 ->setParameter('sira'$sira)
  303.                 ->getQuery()
  304.                 ->execute();
  305.         }
  306.         return new Response('');
  307.     }
  308.     /**
  309.      * @Route("/admin/kategori/{dilgrup}/temizle", name="kategori_temizle")
  310.      */
  311.     public function temizle($dilgrup,Request $request): Response
  312.     {
  313.         $em $this->getDoctrine()->getManager();
  314.         $kategoriler $em->getRepository(Kategori::class)->findBy(array('sayfa'=>$dilgrup));
  315.         foreach ($kategoriler as $kategori){
  316.             if(!empty($kategori->getResim())) {
  317.                 //@unlink('uploads/' .$kategori->getResim());
  318.                 $this->deleteFile($kategori->getResim());
  319.             }
  320.             $em->remove($kategori);
  321.         }
  322.         $em->flush();
  323.         return new Response('');
  324.     }
  325. }