<?php
namespace App\Controller;
use App\Entity\Dil;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Controller\BaseController;
use App\Entity\Kategori;
use App\Entity\Sayfa;
class PanelKategoriController extends BaseController
{
/**
* @Route("/admin/kategori/{dilgrup}", name="kategori_homepage")
*/
public function index($dilgrup): Response
{
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id,d.kisa')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$sayfa=$qb->select('s.id,s.adi,m.alan,m.tip,m.bosluk,m.cokluDil,m.tabloAdi,s.dilgrup')
->from('App:Sayfa', 's')
->join('s.modul', 'm')
->where('s.id='.$dilgrup)
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
->from('App:Kategori', 'k')
->join('k.sayfa','s')
->where('s.id='.$dilgrup.' and k.ustid=0')
->groupBy('k.dilgrup')
->orderBy('k.sira','ASC')
->getQuery()
->getScalarResult();
return $this->render('panel/kategori/index.html.twig',array('diller'=>$diller,'sayfa'=>$sayfa[0],'kategoriler'=>$kategoriler));
}
/**
* @Route("/admin/kategori/{dilgrup}/getir", name="kategori_getir")
*/
public function getir($dilgrup): Response
{
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,d.kisa as dKisa')
->from('App:Kategori', 'k')
->join('k.dil','d')
->join('k.sayfa','s')
->where('s.id='.$dilgrup.' and k.ustid=0')
->groupBy('k.dilgrup')
->orderBy('k.sira','ASC')
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$sayfa=$qb->select('s.id,s.adi,m.alan,m.tip,m.bosluk,m.cokluDil,m.tabloAdi,s.dilgrup,s.seo')
->from('App:Sayfa', 's')
->join('s.modul', 'm')
->where('s.id='.$dilgrup)
->getQuery()
->getScalarResult();
return $this->render('panel/kategori/getir.html.twig',array('kategoriler'=>$kategoriler,'sayfa'=>$sayfa[0]));
}
/**
* @Route("/admin/kategori/{dilgrup}/ekle", name="kategori_ekle")
*/
public function ekle($dilgrup, Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$adi = $request->request->get('adi');
$ustKategori = $request->request->get('kategori');
if(!empty($_FILES['resim'])){
$resim=$this->seo($adi[0]).'_resim_'.time().'_';
move_uploaded_file($_FILES['resim']['tmp_name'], "gecici_yukleme/".$resim.$this->uzantiBul($_FILES['resim']['type']));
$resim = $this->imageResizer($resim.$this->uzantiBul($_FILES['resim']['type']),$resim);
$this->uploadFile($resim);
}else{
$resim=null;
}
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
$sayfaSecim = $em->getReference(Sayfa::class,$dilgrup);
$son_dilgrup = $this->son_dilgrup('Kategori');
foreach ($diller as $key=>$dil){
$dilSecim = $em->getReference(Dil::class,$dil['id']);
$kategori = new Kategori();
$kategori->setAdi($adi[$key]);
$kategori->setTitle($adi[$key]);
$kategori->setSeourl($this->seo($adi[$key],$dil['id']));
$kategori->setUstid($ustKategori);
$kategori->setResim($resim);
$kategori->setDil($dilSecim);
$kategori->setDilgrup($son_dilgrup);
$kategori->setSira(0);
$kategori->setSayfa($sayfaSecim);
$em->persist($kategori);
}
$em->flush();
return new Response('');
}
/**
* @Route("/admin/kategori/{dilgrup}/duzenleAc", name="kategori_duzenleAc")
*/
public function duzenleAc($dilgrup,Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$id = $request->request->get('id');
$qb = $em->createQueryBuilder();
$kategori=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,d.kisa as dKisa,k.resim,k.ustid')
->from('App:Kategori', 'k')
->join('k.dil','d')
->where('k.dilgrup='.$id)
->orderBy('d.id')
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id,d.kisa')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
->from('App:Kategori', 'k')
->join('k.sayfa','s')
->where('s.id='.$dilgrup.' and k.ustid=0')
->groupBy('k.dilgrup')
->orderBy('k.sira','ASC')
->getQuery()
->getScalarResult();
return $this->render('panel/kategori/duzenleAc.html.twig',array('kategori'=>$kategori,'diller'=>$diller,'kategoriler'=>$kategoriler));
}
/**
* @Route("/admin/kategori/{dilgrup}/duzenle", name="kategori_duzenle")
*/
public function duzenle($dilgrup, Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$dilgrup = $request->request->get('id');
$adi = $request->request->get('adi');
$ustKategori = $request->request->get('kategori');
$qb = $em->createQueryBuilder();
$kategori=$qb->select('k.resim')
->from('App:Kategori', 'k')
->join('k.dil','d')
->where('k.dilgrup='.$dilgrup)
->getQuery()
->getScalarResult();
if(!empty($_FILES['resim'])){
$resim=$this->seo($adi[0]).'_resim_'.time().'_';
move_uploaded_file($_FILES['resim']['tmp_name'], "gecici_yukleme/".$resim.$this->uzantiBul($_FILES['resim']['type']));
$resim = $this->imageResizer($resim.$this->uzantiBul($_FILES['resim']['type']),$resim);
$this->uploadFile($resim);
//@unlink('uploads/'.$kategori[0]['resim']);
$this->deleteFile($kategori[0]['resim']);
}
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
foreach ($diller as $key=>$dil){
$dilSecim = $em->getReference(Dil::class,$dil['id']);
$qb = $em->createQueryBuilder();
$q = $qb->update('App:Kategori', 's')
->set('s.adi', ':adi')
->set('s.ustid', ':ustid')
->set('s.dil', ':dil')
->set('s.dilgrup', ':dilgrup')
->where("s.dil = ".$dil['id']." and s.dilgrup=$dilgrup")
->setParameter('adi', $adi[$key])
->setParameter('dil', $dilSecim)
->setParameter('dilgrup', $dilgrup)
->setParameter('ustid', $ustKategori)
->getQuery()
->execute();
}
if(!empty($_FILES['resim'])){
$qb = $em->createQueryBuilder();
$q = $qb->update('App:Kategori', 's')
->set('s.resim', ':resim')
->where("s.dilgrup=$dilgrup")
->setParameter('resim', $resim)
->getQuery()
->execute();
}
return new Response('');
}
/**
* @Route("/admin/kategori/{dilgrup}/sil", name="kategori_sil")
*/
public function sil($dilgrup, Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$id = $request->request->get('id');
$qb = $em->createQueryBuilder();
$kategori=$qb->select('k.resim')
->from('App:Kategori', 'k')
->where('k.dilgrup='.$id)
->getQuery()
->getScalarResult();
if(!empty($kategori[0]['resim'])) {
//@unlink('uploads/' . $kategori[0]['resim']);
$this->deleteFile($kategori[0]['resim']);
}
$kkk = $em->getRepository(Kategori::class)->findBy(array('dilgrup'=>$id));
$this->removeEntity($kkk);
$em->flush();
return new Response('');
}
/**
* @Route("/admin/kategori/{dilgrup}/seoAyarAc", name="kategori_seoAyarAc")
*/
public function seoAyarAc($dilgrup,Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$id = $request->request->get('id');
$qb = $em->createQueryBuilder();
$kategori=$qb->select('k.id,k.dilgrup,k.seourl,k.title,k.description,k.keywords,k.ustid')
->from('App:Kategori', 'k')
->where('k.dilgrup='.$id)
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id,d.kisa')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
$dilgrupBul = $this->dilgrupBul('Sayfa',$dilgrup);
$qb = $em->createQueryBuilder();
$sayfa=$qb->select('s.seo')
->from('App:Sayfa', 's')
->where('s.dilgrup='.$dilgrupBul)
->orderBy('s.dil')
->getQuery()
->getScalarResult();
return $this->render('panel/kategori/seoAyarAc.html.twig',array('kategori'=>$kategori,'diller'=>$diller,'sayfa'=>$sayfa));
}
/**
* @Route("/admin/kategori/{dilgrup}/seoAyar", name="kategori_seoAyar")
*/
public function seoAyar(Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$dilgrup = $request->request->get('id');
$seourl = $request->request->get('seourl');
$title = $request->request->get('title');
$keywords = $request->request->get('keywords');
$description = $request->request->get('description');
$qb = $em->createQueryBuilder();
$diller=$qb->select('d.id')
->from('App:Dil', 'd')
->where("d.aktif=1")
->orderBy('d.id')
->getQuery()
->getScalarResult();
foreach ($diller as $key=>$dil){
$qb = $em->createQueryBuilder();
$q = $qb->update('App:Kategori', 's')
->set('s.seourl', ':seourl')
->set('s.title', ':title')
->set('s.keywords', ':keywords')
->set('s.description', ':description')
->where("s.dil = ".$dil['id']." and s.dilgrup=$dilgrup")
->setParameter('seourl', $this->seo($seourl[$key],$dil['id']))
->setParameter('title', $title[$key])
->setParameter('keywords', $keywords[$key])
->setParameter('description', $description[$key])
->getQuery()
->execute();
}
return new Response('');
}
/**
* @Route("/admin/kategori/{dilgrup}/sirala", name="kategori_sirala")
*/
public function sirala($dilgrup,Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$listItem = $request->request->get('listItem');
foreach ($listItem as $sira=>$id){
$qb = $em->createQueryBuilder();
$q = $qb->update('App:Kategori', 'k')
->set('k.sira', ':sira')
->where("k.dilgrup=$id")
->setParameter('sira', $sira)
->getQuery()
->execute();
}
return new Response('');
}
/**
* @Route("/admin/kategori/{dilgrup}/temizle", name="kategori_temizle")
*/
public function temizle($dilgrup,Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$kategoriler = $em->getRepository(Kategori::class)->findBy(array('sayfa'=>$dilgrup));
foreach ($kategoriler as $kategori){
if(!empty($kategori->getResim())) {
//@unlink('uploads/' .$kategori->getResim());
$this->deleteFile($kategori->getResim());
}
$em->remove($kategori);
}
$em->flush();
return new Response('');
}
}