src/Twig/AppExtension.php line 843

Open in your IDE?
  1. <?php
  2. // src/Twig/AppExtension.php
  3. namespace App\Twig;
  4. use App\Entity\Dil;
  5. use SebastianBergmann\Environment\Runtime;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Twig\Extension\AbstractExtension;
  8. use Twig\TwigFilter;
  9. use App\Twig\AppRuntime;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use App\Entity\Ceviri;
  12. use App\Entity\Istatistik;
  13. class AppExtension extends AbstractExtension
  14. {
  15.     private $em;
  16.     private $session;
  17.     public function __construct(SessionInterface $session ,EntityManagerInterface $em) {
  18.         $this->em $em;
  19.         $this->session $session;
  20.     }
  21.     public function getFilters()
  22.     {
  23.         return [
  24.             /*            new TwigFilter('test', [AppRuntime::class, 'test']),*/
  25.             new TwigFilter('imgOlustur', [$this'imgOlustur']),
  26.             new TwigFilter('timthumb', [$this'timthumb']),
  27.             new TwigFilter('seo', [$this'seo']),
  28.             new TwigFilter('tarih_yaz', [$this'tarih_yaz']),
  29.             new TwigFilter('base64_encode', [$this'base64_encode']),
  30.             new TwigFilter('base64_decode', [$this'base64_decode']),
  31.             new TwigFilter('yandexToken', [$this'yandexToken']),
  32.             new TwigFilter('cevir', [$this'cevir']),
  33.             new TwigFilter('ceviri', [$this'ceviri']),
  34.             new TwigFilter('ayarlar', [$this'ayarlar']),
  35.             new TwigFilter('dilSay', [$this'dilSay']),
  36.             new TwigFilter('panelSayfaGetir', [$this'panelSayfaGetir']),
  37.             new TwigFilter('panelKategoriGetir', [$this'panelKategoriGetir']),
  38.             new TwigFilter('mesajSay', [$this'mesajSay']),
  39.             new TwigFilter('mesajBul', [$this'mesajBul']),
  40.             new TwigFilter('bildirimSay', [$this'bildirimSay']),
  41.             new TwigFilter('bildirimBul', [$this'bildirimBul']),
  42.             new TwigFilter('altKategoriBul', [$this'altKategoriBul']),
  43.             new TwigFilter('altKategoriBul2', [$this'altKategoriBul2']),
  44.             new TwigFilter('altKategoriGeriYaz', [$this'altKategoriGeriYaz']),
  45.             new TwigFilter('altKategoriListe', [$this'altKategoriListe']),
  46.             new TwigFilter('kategoriDetay', [$this'kategoriDetay']),
  47.             new TwigFilter('istatistik', [$this'istatistik']),
  48.             new TwigFilter('yetkiler', [$this'yetkiler']),
  49.             new TwigFilter('GetIP', [$this'GetIP']),
  50.             new TwigFilter('get_browser_name', [$this'get_browser_name']),
  51.             new TwigFilter('html_entity_decode', [$this'html_entity_decode']),
  52.             
  53.             new TwigFilter('site_istatistik', [$this'site_istatistik']),
  54.             new TwigFilter('site_anaLink', [$this'site_anaLink']),
  55.             new TwigFilter('site_menuGetir', [$this'site_menuGetir']),
  56.             new TwigFilter('site_footerMetin', [$this'site_footerMetin']),
  57.             new TwigFilter('site_footerSayfa', [$this'site_footerSayfa']),
  58.             new TwigFilter('site_iletisimBilgileri', [$this'site_iletisimBilgileri']),
  59.             new TwigFilter('site_sosyalAglar', [$this'site_sosyalAglar']),
  60.             new TwigFilter('site_sliders', [$this'site_sliders']),
  61.             new TwigFilter('site_sayfaIcerik', [$this'site_sayfaIcerik']),
  62.             new TwigFilter('site_sayfaIcerikDirek', [$this'site_sayfaIcerikDirek']),
  63.             new TwigFilter('site_sayfaIcerikKategori', [$this'site_sayfaIcerikKategori']),
  64.             new TwigFilter('site_dilGetir', [$this'site_dilGetir']),
  65.             new TwigFilter('site_dilGetir2', [$this'site_dilGetir2']),
  66.             new TwigFilter('site_popupGetir', [$this'site_popupGetir']),
  67.             new TwigFilter('site_bannerGetir', [$this'site_bannerGetir']),
  68.             new TwigFilter('site_formGetir', [$this'site_formGetir']),
  69.             new TwigFilter('site_kategoriGeriLi', [$this'site_kategoriGeriLi']),
  70.             new TwigFilter('site_sayfaKategori', [$this'site_sayfaKategori']),
  71.             new TwigFilter('site_formVeriGetir', [$this'site_formVeriGetir']),
  72.             new TwigFilter('digerDiller', [$this'digerDiller']),
  73.             new TwigFilter('taslakBul', [$this'taslakBul']),
  74.             new TwigFilter('popupGetir', [$this'popupGetir']),
  75.             new TwigFilter('IdBul', [$this'IdBul']),
  76.             new TwigFilter('anasayfaIcerikleri', [$this'anasayfaIcerikleri']),
  77.             new TwigFilter('ustMenuler', [$this'ustMenuler']),
  78.             new TwigFilter('veriYenile', [$this'veriYenile']),
  79.             new TwigFilter('kategoriVeriYenile', [$this'kategoriVeriYenile']),
  80.             new TwigFilter('icerikSolMenuler', [$this'icerikSolMenuler']),
  81.             new TwigFilter('footerSayfaDilgrup', [$this'footerSayfaDilgrup']),
  82.         ];
  83.     }
  84.     public function html_entity_decode($degisken){
  85.         $degisken html_entity_decode($degiskenENT_QUOTES,"UTF-8");
  86.         return $degisken;
  87.     }
  88.     public function timthumb($resim$yol$w$h$zc$q)
  89.     {
  90.         return $this->ayarlar('siteYolu') . 'timthumb.php?src=' $yol $resim '&w=' $w '&h=' $h '&zc=' $zc '&q=' $q;
  91.     }
  92.     function seo($url,$dil=1)
  93.     {
  94.         if($dil==1) {
  95.             $tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',':',',');
  96.             $eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','');
  97.             $s str_replace($tr,$eng,$url);
  98.             $find = array('/[^A-Za-z0-9\-<>]/''/[\-]+/''/<[^>]*>/');
  99.             $repl = array('-''-''-');
  100.             $s preg_replace($find$repl$s);
  101.             $s strtolower($s);
  102.             $s preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;amp;.+?;/'''$s);
  103.             $s preg_replace('/\s+/''-'$s);
  104.             $s preg_replace('|-+|''-'$s);
  105.             $s preg_replace('/#/'''$s);
  106.             $s str_replace('.'''$s);
  107.             $s trim($s'-');
  108.             $s strtolower($s);
  109.             return $s;
  110.         }else{
  111.             $tr = array('('')''/'':'',');
  112.             $eng = array('''''-''-''');
  113.             $s str_replace($tr$eng$url);
  114.             $find = array('/[^A-Za-z0-9\-<>]/''/[\-]+/''/<[^>]*>/');
  115.             $repl = array('-''-''-');
  116.             $s preg_replace($find$repl$s);
  117.             $s strtolower($s);
  118.             $s preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;amp;.+?;/'''$s);
  119.             $s preg_replace('/\s+/''-'$s);
  120.             $s preg_replace('|-+|''-'$s);
  121.             $s preg_replace('/#/'''$s);
  122.             $s str_replace('.'''$s);
  123.             $s trim($s'-');
  124.             $s strtolower($s);
  125.             return $s;
  126.         }
  127.     }
  128.     public function tarih_yaz($tarih){
  129.         $aylar = array('January','February','March','April','May','June','July','August','September','October','November','December','Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  130.         $aylar2 = array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık','Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi');
  131.         $return str_replace($aylar$aylar2$tarih);
  132.         return $return;
  133.     }
  134.     public function base64_encode($veri){
  135.         return base64_encode($veri);
  136.     }
  137.     public function base64_decode($veri){
  138.         return base64_decode($veri);
  139.     }
  140.     function yandexToken(){
  141.         $curl curl_init();
  142.         curl_setopt_array($curl, array(
  143.             CURLOPT_URL => 'https://iam.api.cloud.yandex.net/iam/v1/tokens',
  144.             CURLOPT_RETURNTRANSFER => true,
  145.             CURLOPT_ENCODING => '',
  146.             CURLOPT_MAXREDIRS => 10,
  147.             CURLOPT_TIMEOUT => 0,
  148.             CURLOPT_FOLLOWLOCATION => true,
  149.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  150.             CURLOPT_CUSTOMREQUEST => 'POST',
  151.             CURLOPT_POSTFIELDS =>'{
  152.     "yandexPassportOauthToken":"y0_AgAAAAAZYEETAATuwQAAAAEToav7AADO8OOAY3pJJ4glGitLIJdp7BdHYg"
  153. }',
  154.             CURLOPT_HTTPHEADER => array(
  155.                 'Content-Type: application/json'
  156.             ),
  157.         ));
  158.         $response curl_exec($curl);
  159.         $response json_decode($responsetrue);
  160.         return $response['iamToken'];
  161.     }
  162.     function cevir($deger,$dil){
  163.         $token $this->yandexToken();
  164.         $curl curl_init();
  165.         curl_setopt_array($curl, array(
  166.             CURLOPT_URL => 'https://translate.api.cloud.yandex.net/translate/v2/translate',
  167.             CURLOPT_RETURNTRANSFER => true,
  168.             CURLOPT_ENCODING => '',
  169.             CURLOPT_MAXREDIRS => 10,
  170.             CURLOPT_TIMEOUT => 0,
  171.             CURLOPT_FOLLOWLOCATION => true,
  172.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  173.             CURLOPT_CUSTOMREQUEST => 'POST',
  174.             CURLOPT_POSTFIELDS =>'{
  175.     "folderId": "b1g1l9b33ueptm8liaou",
  176.     "texts": "'.$deger.'",
  177.     "targetLanguageCode": "'.$dil.'"
  178. }',
  179.             CURLOPT_HTTPHEADER => array(
  180.                 'Authorization: Bearer '.$token,
  181.                 'Content-Type: application/json'
  182.             ),
  183.         ));
  184.         $response curl_exec($curl);
  185.         $response json_decode($responsetrue);
  186.         return $response['translations'][0]['text'];
  187.     }
  188.     public function ceviri($deger,$suanDil='')
  189.     {
  190.         $em $this->em;
  191.         if ($suanDil=='') {
  192.             $suanDil $this->session->get('dil');
  193.         }else{
  194.             $qb $em->createQueryBuilder();
  195.             $dill=$qb->select('d.id,d.kisa,d.uzun')
  196.                 ->from('App:Dil''d')
  197.                 ->where('d.id='.$suanDil)
  198.                 ->getQuery()
  199.                 ->getScalarResult();
  200.             $suanDil $dill[0];
  201.         }
  202.         $qb $em->createQueryBuilder();
  203.         $ceviriTara=$qb->select('c.deger,c.id')
  204.             ->from('App:Ceviri''c')
  205.             ->join('c.dil','d')
  206.             ->where("c.deger='$deger'")
  207.             ->getQuery()
  208.             ->getScalarResult();
  209.         if (count($ceviriTara) > 0) {
  210.             if ($suanDil['id'] != 1) {
  211.                 $qb $em->createQueryBuilder();
  212.                 $ceviriTara2=$qb->select('c.deger')
  213.                     ->from('App:Ceviri''c')
  214.                     ->join('c.dil','d')
  215.                     ->where("d.id=".$suanDil['id']." and c.trId=".$ceviriTara[0]['id'])
  216.                     ->getQuery()
  217.                     ->getScalarResult();
  218.                 if (count($ceviriTara2) > 0) {
  219.                     $veri $ceviriTara2[0]['deger'];
  220.                 } else {
  221.                     if ($this->session->get('dil')['id'] != '1') {
  222.                         $deger $this->cevir($deger,$suanDil['kisa']);
  223.                         $dill $em->getReference(Dil::class,$suanDil['id']);
  224.                         $ceviri = new Ceviri();
  225.                         $ceviri->setDil($dill);
  226.                         $ceviri->setDeger($deger);
  227.                         $ceviri->setTrId($ceviriTara[0]['id']);
  228.                         $em->persist($ceviri);
  229.                         $em->flush();
  230.                         $veri $deger;
  231.                     }
  232.                 }
  233.             } else {
  234.                 $veri $deger;
  235.             }
  236.         }
  237.         else {
  238.             if ($suanDil['id'] == 1) {
  239.                 $dill $em->getReference(Dil::class,$suanDil['id']);
  240.                 $ceviri = new Ceviri();
  241.                 $ceviri->setDil($dill);
  242.                 $ceviri->setDeger($deger);
  243.                 $ceviri->setTrId(0);
  244.                 $em->persist($ceviri);
  245.                 $em->flush();
  246.                 $veri $deger;
  247.             }
  248.             else {
  249.                 $dilTr $em->getReference(Dil::class,1);
  250.                 $ceviri = new Ceviri();
  251.                 $ceviri->setDil($dilTr);
  252.                 $ceviri->setDeger($deger);
  253.                 $ceviri->setTrId(0);
  254.                 $em->persist($ceviri);
  255.                 $em->flush();
  256.                 $deger $this->cevir($deger,$suanDil['kisa']);
  257.                 $dill $em->getReference(Dil::class,$suanDil['id']);
  258.                 $ceviriDil = new Ceviri();
  259.                 $ceviriDil->setDil($dill);
  260.                 $ceviriDil->setDeger($deger);
  261.                 $ceviriDil->setTrId($ceviri->getId());
  262.                 $em->persist($ceviriDil);
  263.                 $em->flush();
  264.                 $veri $deger;
  265.             }
  266.         }
  267.         return $veri;
  268.     }
  269.     public function ayarlar($alan,$dil='')
  270.     {
  271.         if($dil=='') {
  272.             $em $this->em;
  273.             $qb $em->createQueryBuilder();
  274.             $dd $qb->select("e.id")
  275.                 ->from('App:Dil''e')
  276.                 ->where('e.aktif=1 and e.varsayilan=1')
  277.                 ->getQuery()
  278.                 ->setResultCacheId('varsayilan_dil')
  279.                 ->setResultCacheLifetime(60)
  280.                 ->getScalarResult();
  281.             $dil=$dd[0]['id'];
  282.         }
  283.         $em $this->em;
  284.         $qb $em->createQueryBuilder();
  285.         $ayarlar=$qb->select("e.$alan")
  286.             ->from('App:Ayarlar''e')
  287.             ->where('e.dil='.$dil)
  288.             ->getQuery()
  289.             ->setResultCacheId($alan)
  290.             ->setResultCacheLifetime(60)
  291.             ->getScalarResult();
  292.         return $ayarlar[0][$alan];
  293.     }
  294.     public function dilSay(){
  295.         $em $this->em;
  296.         $qb $em->createQueryBuilder();
  297.         $ayarlar=$qb->select("e.id")
  298.             ->from('App:Dil''e')
  299.             ->where('e.aktif=1')
  300.             ->getQuery()
  301.             ->setResultCacheId('dil_aktif')
  302.             ->setResultCacheLifetime(60)
  303.             ->getScalarResult();
  304.         return count($ayarlar);
  305.     }
  306.     public function panelSayfaGetir(){
  307.         $em $this->em;
  308.         $qb $em->createQueryBuilder();
  309.         $sayfalar=$qb->select("s.adi,s.dilgrup,s.id")
  310.             ->from('App:Sayfa''s')
  311.             ->orderBy('s.sira','ASC')
  312.             ->groupBy('s.dilgrup')
  313.             ->getQuery()
  314.             ->getScalarResult();
  315.         $veri ='';
  316.         foreach ($sayfalar as $key=>$sayfa){
  317.             $veri.='<li><a class="d-flex align-items-center" href="/admin/icerik/'.$sayfa['id'].'/"><i data-feather="circle"></i><span class="menu-item text-truncate" data-i18n="'.$sayfa['adi'].'">'.$sayfa['adi'].'</span></a></li>';
  318.         }
  319.         return $veri;
  320.     }
  321.     public function panelKategoriGetir(){
  322.         $em $this->em;
  323.         $qb $em->createQueryBuilder();
  324.         $sayfalar=$qb->select("s.id,s.adi,s.dilgrup")
  325.             ->from('App:Sayfa''s')
  326.             ->where('s.kategori=1')
  327.             ->orderBy('s.sira','ASC')
  328.             ->groupBy('s.dilgrup')
  329.             ->getQuery()
  330.             ->getScalarResult();
  331.         $veri ='';
  332.         foreach ($sayfalar as $key=>$sayfa){
  333.             $veri.='<li><a class="d-flex align-items-center" href="/admin/kategori/'.$sayfa['id'].'/"><i data-feather="circle"></i><span class="menu-item text-truncate" data-i18n="'.$sayfa['adi'].'">'.$sayfa['adi'].'</span></a></li>';
  334.         }
  335.         return $veri;
  336.     }
  337.     public function mesajSay(){
  338.         $em $this->em;
  339.         $qb $em->createQueryBuilder();
  340.         $veriler=$qb->select("m.id")
  341.             ->from('App:FormKayit''m')
  342.             ->where('m.okuma=0')
  343.             ->getQuery()
  344.             ->getScalarResult();
  345.         return count($veriler);
  346.     }
  347.     public function mesajBul(){
  348.         $em $this->em;
  349.         $qb $em->createQueryBuilder();
  350.         $veriler=$qb->select("m.kayit,f.alan,f.adi,m.okuma,m.tarih")
  351.             ->from('App:FormKayit''m')
  352.             ->join('m.form','f')
  353.             ->orderBy('f.tarih','DESC')
  354.             ->orderBy('m.okuma','ASC')
  355.             ->getQuery()
  356.             ->getScalarResult();
  357.         return $veriler;
  358.     }
  359.     public function bildirimSay(){
  360.         $em $this->em;
  361.         $qb $em->createQueryBuilder();
  362.         $veriler=$qb->select("b.id")
  363.             ->from('App:Bildirim''b')
  364.             ->where('b.okuma=0')
  365.             ->getQuery()
  366.             ->getScalarResult();
  367.         return count($veriler);
  368.     }
  369.     public function bildirimBul(){
  370.         $em $this->em;
  371.         $qb $em->createQueryBuilder();
  372.         $veriler=$qb->select("b.id,b.baslik,b.metin,b.okuma,b.tarih")
  373.             ->from('App:Bildirim''b')
  374.             ->orderBy('b.tarih','DESC')
  375.             ->orderBy('b.okuma','ASC')
  376.             ->getQuery()
  377.             ->getScalarResult();
  378.         return $veriler;
  379.     }
  380.     function altKategoriBul($dilgrup,$selected=0,$kendisi=0,$bosluk=''){
  381.         $em $this->em;
  382.         $qb $em->createQueryBuilder();
  383.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
  384.             ->from('App:Kategori''k')
  385.             ->where('k.ustid='.$dilgrup)
  386.             ->groupBy('k.dilgrup')
  387.             ->orderBy('k.sira','ASC')
  388.             ->getQuery()
  389.             ->getScalarResult();
  390.         $bosluk.='&nbsp;&nbsp;&nbsp;&nbsp;';
  391.         $veriler='';
  392.         foreach ($kategoriler as $k){
  393.             $select='';
  394.             if($selected==$k['id']){
  395.                 $select 'selected';
  396.             }
  397.             $disabled='';
  398.             if($kendisi==$k['id']){
  399.                 $disabled 'disabled';
  400.             }
  401.             $veriler.='<option '.$disabled.' '.$select.' value="'.$k['id'].'">'.$bosluk.$k['adi'].'</option>'.$this->altKategoriBul($k['dilgrup'],$selected,$kendisi,$bosluk);
  402.         }
  403.         return $veriler;
  404.     }
  405.     function altKategoriBul2($dilgrup,$selected=0,$kendisi=0,$bosluk=''){
  406.         $em $this->em;
  407.         $qb $em->createQueryBuilder();
  408.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi')
  409.             ->from('App:Kategori''k')
  410.             ->where('k.ustid='.$dilgrup)
  411.             ->groupBy('k.dilgrup')
  412.             ->orderBy('k.sira','ASC')
  413.             ->getQuery()
  414.             ->getScalarResult();
  415.         $bosluk.='&nbsp;&nbsp;&nbsp;&nbsp;';
  416.         $veriler='';
  417.         foreach ($kategoriler as $k){
  418.             $select='';
  419.             if($selected==$k['dilgrup']){
  420.                 $select 'selected';
  421.             }
  422.             $disabled='';
  423.             if($kendisi==$k['dilgrup']){
  424.                 $disabled 'disabled';
  425.             }
  426.             $veriler.='<option '.$disabled.' '.$select.' value="'.$k['dilgrup'].'">'.$bosluk.$k['adi'].'</option>'.$this->altKategoriBul($k['dilgrup'],$selected,$kendisi,$bosluk);
  427.         }
  428.         return $veriler;
  429.     }
  430.     function altKategoriGeriYaz($ustid,$dil=1){
  431.         $em $this->em;
  432.         $qb $em->createQueryBuilder();
  433.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,k.ustid')
  434.             ->from('App:Kategori''k')
  435.             ->join('k.dil','d')
  436.             ->where('k.dilgrup='.$ustid.' and d.id='.$dil)
  437.             ->groupBy('k.dilgrup')
  438.             ->orderBy('k.sira','ASC')
  439.             ->getQuery()
  440.             ->getScalarResult();
  441.         $veriler='';
  442.         foreach ($kategoriler as $k){
  443.             $veriler.=$this->altKategoriGeriYaz($k['ustid'],$dil).$k['seourl'].'/';
  444.         }
  445.         return $veriler;
  446.     }
  447.     function altKategoriListe($dilgrup,$sSeo){
  448.         $em $this->em;
  449.         $qb $em->createQueryBuilder();
  450.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,d.kisa as dKisa,k.ustid')
  451.             ->from('App:Kategori''k')
  452.             ->join('k.dil','d')
  453.             ->where('k.ustid='.$dilgrup)
  454.             ->groupBy('k.dilgrup')
  455.             ->orderBy('k.sira','ASC')
  456.             ->getQuery()
  457.             ->getScalarResult();
  458.         $veriler='';
  459.         if(count($kategoriler)>0) {
  460.             $veriler .= '<ul class="kategori_sirala' $dilgrup '">';
  461.             foreach ($kategoriler as $k) {
  462.                 if ($this->dilSay() > 1) {
  463.                     $link '<a class="text-primary" href="' $this->ayarlar('siteYolu') . $k['dKisa'] . '/' $sSeo '/' $this->altKategoriGeriYaz($k['ustid']) . $k['seourl'] . '" target="_blank"> ' $this->ayarlar('siteYolu') . $k['dKisa'] . '/' $sSeo '/' $this->altKategoriGeriYaz($k['ustid']) . $k['seourl'] . ' </a>';
  464.                 } else {
  465.                     $link '<a class="text-primary" href="' $this->ayarlar('siteYolu') . $sSeo '/' $this->altKategoriGeriYaz($k['ustid']) . $k['seourl'] . '" target="_blank"> ' $this->ayarlar('siteYolu') . $sSeo '/' $this->altKategoriGeriYaz($k['ustid']) . $k['seourl'] . ' </a>';
  466.                 }
  467.                 $veriler .= ' <div id="listItem_' $k['dilgrup'] . '">';
  468.                 $veriler .= '<li class="kategoriLi row" >
  469.             <div class="col-md-9">' $k['adi'] . '
  470.                 <br>
  471.                 
  472.                 ' $link '
  473.             
  474.             </div>
  475.             <div class="col-md-3 text-right">
  476.                 <a class="btn btn-sm btn-info waves-effect waves-light handle' $dilgrup ' text-white"><i data-feather="move"></i></a>
  477.                 <button class="btn btn-sm btn-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">İŞLEM</button>
  478.                 <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
  479.                     <a class="dropdown-item" href="javascript:void(0);" onclick="seoAyarAc(' $k['dilgrup'] . ');" data-toggle="modal" data-target=".seoAyar">Seo Ayarları</a>
  480.                     <a class="dropdown-item" href="javascript:void(0);" onclick="kategoriDuzenleAc(' $k['dilgrup'] . ');" data-toggle="modal" data-target=".kategoriDuzenle">Düzenle</a>
  481.                     <a class="dropdown-item" href="javascript:void(0);" onclick="kategoriSil(' $k['dilgrup'] . ')">Sil</a>
  482.                 </div>
  483.             </div>
  484.         </li>';
  485.                 $veriler .= $this->altKategoriListe($k['dilgrup'], $sSeo);;
  486.                 $veriler .= '</div>';
  487.             }
  488.             $veriler .= '</ul>';
  489.             $veriler .= '<script>
  490.             $().ready(function() {
  491.               kategoriSirala(' $dilgrup ');
  492.             });
  493.             </script>';
  494.         }
  495.         return $veriler;
  496.     }
  497.     public function kategoriDetay($dilgrup,$alan){
  498.         if($dilgrup==''){
  499.             return '';
  500.         }
  501.         $em $this->em;
  502.         $qb $em->createQueryBuilder();
  503.         $kategori=$qb->select("e.$alan")
  504.             ->from('App:Kategori''e')
  505.             ->where('e.dilgrup='.$dilgrup)
  506.             ->getQuery()
  507.             ->getScalarResult();
  508.         return $kategori[0][$alan];
  509.     }
  510.     public function istatistik($start,$end){
  511.         $em $this->em;
  512.         $qb $em->createQueryBuilder();
  513.         $istatistikKullanici=$qb->select('i.id')
  514.             ->from('App:Istatistik''i')
  515.             ->where("i.tarih > '$start 00:00:00' and i.tarih < '$end 23:59:59'")
  516.             ->groupBy('i.ip')
  517.             ->getQuery()
  518.             ->getScalarResult();
  519.         $qb $em->createQueryBuilder();
  520.         $istatistikSG=$qb->select('i.id')
  521.             ->from('App:Istatistik''i')
  522.             ->where("i.tarih > '$start 00:00:00' and i.tarih < '$end 23:59:59'")
  523.             ->getQuery()
  524.             ->getScalarResult();
  525.         return count($istatistikKullanici).'--'.count($istatistikSG);
  526.     }
  527.     public function yetkiler($yetkiler,$rol){
  528.         if ($yetkiler==''){
  529.             return 1;
  530.         }
  531.         $yetkiler explode('~',str_replace(array('{','}'),array('',''),substr($yetkiler,0,strlen($yetkiler)-1)));
  532.         $return = [];
  533.         foreach ($yetkiler as $y){
  534.             $x explode(':',$y);
  535.             $z explode(',',$x[1]);
  536.             $return[$x[0]]['gorme']=$z[0];
  537.             $return[$x[0]]['ekleme']=$z[1];
  538.             $return[$x[0]]['duzenleme']=$z[2];
  539.             $return[$x[0]]['silme']=$z[3];
  540.         }
  541.         if($rol=='ROLE_DEV' or $rol=='ROLE_ADMIN'){
  542.             return 1;
  543.         }else{
  544.             return $return;
  545.         }
  546.     }
  547.     function GetIP()
  548.     {
  549.         if (getenv("HTTP_CLIENT_IP")) {
  550.             $ip getenv("HTTP_CLIENT_IP");
  551.         } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
  552.             $ip getenv("HTTP_X_FORWARDED_FOR");
  553.             if (strstr($ip',')) {
  554.                 $tmp explode(','$ip);
  555.                 $ip trim($tmp[0]);
  556.             }
  557.         } else {
  558.             $ip getenv("REMOTE_ADDR");
  559.         }
  560.         return $ip;
  561.     }
  562.     function get_browser_name($user_agent)
  563.     {
  564.         if (strpos($user_agent'Opera') || strpos($user_agent'OPR/')) return 'Opera';
  565.         elseif (strpos($user_agent'Edge')) return 'Edge';
  566.         elseif (strpos($user_agent'Chrome')) return 'Chrome';
  567.         elseif (strpos($user_agent'Safari')) return 'Safari';
  568.         elseif (strpos($user_agent'Firefox')) return 'Firefox';
  569.         elseif (strpos($user_agent'MSIE') || strpos($user_agent'Trident/7')) return 'İnternet Explorer';
  570.         return 'Diğer';
  571.     }
  572.     public function site_istatistik($bos)
  573.     {
  574.         if($this->ayarlar('debug')!=1) {
  575.             $em $this->em;
  576.             $tarih = new \DateTime('now');
  577.             $ip $this->GetIP();
  578.             if (@$_SERVER['HTTP_REFERER']!=''){
  579.                 $referer $_SERVER['HTTP_REFERER'];
  580.             }else{
  581.                 $referer '';
  582.             }
  583.             $user_agent $this->get_browser_name($_SERVER['HTTP_USER_AGENT']);
  584.             $request_uri $this->ayarlar('siteYolu') . substr($_SERVER['REQUEST_URI'], 1strlen($_SERVER['REQUEST_URI']) - 1);
  585.             $istatistik = new Istatistik();
  586.             $istatistik->setTarih($tarih);
  587.             $istatistik->setIp($ip);
  588.             $istatistik->setReferer($referer);
  589.             $istatistik->setTarayici($user_agent);
  590.             $istatistik->setUrl($request_uri);
  591.             $em->persist($istatistik);
  592.             $em->flush();
  593.             return '';
  594.         }
  595.     }
  596.     public function site_anaLink(){
  597.         $dil $this->session->get('dil');
  598.         if ($this->dilSay()>1){
  599.             return $this->ayarlar('siteYolu').$dil['kisa'].'/';
  600.         }else{
  601.             return $this->ayarlar('siteYolu');
  602.         }
  603.     }
  604.     public function site_menuGetir(){
  605.         $em $this->em;
  606.         $dil $this->session->get('dil');
  607.         $qb $em->createQueryBuilder();
  608.         $sayfalar=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan')
  609.             ->from('App:Sayfa''s')
  610.             ->join('s.dil''d')
  611.             ->join('s.modul''m')
  612.             ->where('d.id='.$dil['id'].'and s.menu=1')
  613.             ->orderBy('s.sira','ASC')
  614.             ->getQuery()
  615.             ->setResultCacheId('menu_sayfalar')
  616.             ->setResultCacheLifetime(60)
  617.             ->getScalarResult();
  618.         $menu = [];
  619.         $menu[] =['link'=>$this->site_anaLink(),'adi'=>$this->ceviri('Anasayfa')];
  620.         foreach ($sayfalar as $sayfa){
  621.             $sId $this->IdBul('Sayfa',$sayfa['dilgrup']);
  622.             $sLink $this->site_anaLink().$sayfa['seo'];
  623.                 //  ($sayfa['dilgrup']==6) alanı alt menü görünmesin istiyorsak
  624.                 if (($sayfa['tekVeri'] == and $sayfa['icIcerik'] == 0) or $sayfa['tekVeri'] == or ($sayfa['dilgrup'] == 3)) {
  625.                     $menu[] =['link'=>$sLink,'adi'=>$sayfa['adi']];
  626.                 } else {
  627.                     if ($sayfa['kategori'] == 0) {
  628.                         //İçerikler
  629.                         $sayfaAlan explode(','$sayfa['alan']);
  630.                         $icerikalani = [];
  631.                         foreach ($sayfaAlan as $sA) {
  632.                             if ($sA == 'seo url' or $sA == 'sayfa başlığı' or $sA == 'anahtar kelimeler' or $sA == 'sayfa açıklaması') {
  633.                             } else {
  634.                                 $icerikalani[] = str_replace(' '''$sA);
  635.                             }
  636.                         }
  637.                         $qb $em->createQueryBuilder();
  638.                         $icerikler $qb->select('t.' $this->seo($icerikalani[0]) . ' as baslik,t.seourl,t.dilgrup,d.kisa as dKisa,k.dilgrup as kategoriId,d.id as did,s.dilgrup as sayfaId')
  639.                             ->from('App:' $sayfa['tabloAdi'], 't')
  640.                             ->leftjoin('t.kategori''k')
  641.                             ->join('t.sayfa''s')
  642.                             ->join('t.dil''d')
  643.                             ->where('s.id=' $sId ' and d.id=' $dil['id'])
  644.                             ->addOrderBy('t.sira''ASC')
  645.                             ->addOrderBy('t.id''DESC')
  646.                             ->setMaxResults(10)
  647.                             ->getQuery()
  648.                             ->setResultCacheId('menu_icerikler')
  649.                             ->setResultCacheLifetime(60)
  650.                             ->getScalarResult();
  651.                     }
  652.                     else {
  653.                         //Kategoriler
  654.                         $qb $em->createQueryBuilder();
  655.                         $icerikler $qb->select('k.dilgrup,k.adi as baslik,k.seourl')
  656.                             ->from('App:Kategori''k')
  657.                             ->join('k.sayfa''s')
  658.                             ->join('k.dil''d')
  659.                             ->where('s.id=' $sId ' and k.ustid=0 and d.id=' $dil['id'])
  660.                             ->orderBy('k.sira''ASC')
  661.                             ->setMaxResults(10)
  662.                             ->getQuery()
  663.                             ->setResultCacheId('menu_kategoriler')
  664.                             ->setResultCacheLifetime(60)
  665.                             ->getScalarResult();
  666.                     }
  667.                   $altMenuler = [];
  668.                     foreach ($icerikler as $icerik) {
  669.                         $kat '';
  670.                         if (!empty($icerik['kategoriId'])) {
  671.                             $kat $this->altKategoriGeriYaz($icerik['kategoriId'], $dil['id']);
  672.                         }
  673.                         $sLink2 $this->site_anaLink() . $sayfa['seo'] . '/' $kat $icerik['seourl'];
  674.                         $altMenuler[] =['link'=>$sLink2,'adi'=>ucfirst($icerik['baslik'])];
  675.                     }
  676.                     $menu[] =['link'=>$sLink,'adi'=>$sayfa['adi'],'altmenuler'=>$altMenuler];
  677.                 }
  678.         }
  679.         return $menu;
  680.     }
  681.     public function site_footerMetin(){
  682.         $em $this->em;
  683.         $dil $this->session->get('dil');
  684.         $qb $em->createQueryBuilder();
  685.         $metin=$qb->select('s.kurumsalaciklama')
  686.             ->from('App:Footermetin''s')
  687.             ->join('s.dil''d')
  688.             ->where('d.id='.$dil['id'])
  689.             ->getQuery()
  690.             ->setResultCacheId('footermetin')
  691.             ->setResultCacheLifetime(60)
  692.             ->getScalarResult();
  693.         return $metin[0]['kurumsalaciklama'];
  694.     }
  695.     public function site_footerSayfa($sDilgrup,$max=10){
  696.         $em $this->em;
  697.         $dil $this->session->get('dil');
  698.         $qb $em->createQueryBuilder();
  699.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan')
  700.             ->from('App:Sayfa''s')
  701.             ->join('s.dil''d')
  702.             ->join('s.modul''m')
  703.             ->where('d.id='.$dil['id'].'and s.menu=1 and s.dilgrup='.$sDilgrup)
  704.             ->orderBy('s.sira','ASC')
  705.             ->getQuery()
  706.             ->setResultCacheId('footer_sayfa')
  707.             ->setResultCacheLifetime(60)
  708.             ->getScalarResult();
  709.         $sayfa $sayfa[0];
  710.         $sId $this->IdBul('Sayfa',$sayfa['dilgrup']);
  711.         if ($sayfa['kategori'] == 0) {
  712.             //İçerikler
  713.             $sayfaAlan explode(','$sayfa['alan']);
  714.             $icerikalani '';
  715.             foreach ($sayfaAlan as $sA) {
  716.                 if ($sA == 'seo url' or $sA == 'sayfa başlığı' or $sA == 'anahtar kelimeler' or $sA == 'sayfa açıklaması') {
  717.                 } else {
  718.                     $icerikalani .= 't.'.$this->seo(str_replace(' '''$sA)).',';
  719.                 }
  720.             }
  721.             $qb $em->createQueryBuilder();
  722.             $icerikler $qb->select$icerikalani' t.seourl,t.dilgrup,d.kisa as dKisa,k.dilgrup as kategoriId,d.id as did,s.dilgrup as sayfaId')
  723.                 ->from('App:' $sayfa['tabloAdi'], 't')
  724.                 ->leftjoin('t.kategori''k')
  725.                 ->join('t.sayfa''s')
  726.                 ->join('t.dil''d')
  727.                 ->where('s.id=' $sId ' and d.id=' $dil['id'])
  728.                 ->addOrderBy('t.sira''ASC')
  729.                 ->addOrderBy('t.id''DESC')
  730.                 ->setMaxResults($max)
  731.                 ->getQuery()
  732.                 ->setResultCacheId('footer_icerik')
  733.                 ->setResultCacheLifetime(60)
  734.                 ->getScalarResult();
  735.         }
  736.         else {
  737.             //Kategoriler
  738.             $qb $em->createQueryBuilder();
  739.             $icerikler $qb->select('k.dilgrup,k.adi as baslik,k.seourl,k.resim')
  740.                 ->from('App:Kategori''k')
  741.                 ->join('k.sayfa''s')
  742.                 ->join('k.dil''d')
  743.                 ->where('s.id=' $sId ' and k.ustid=0 and d.id=' $dil['id'])
  744.                 ->orderBy('k.sira''ASC')
  745.                 ->setMaxResults($max)
  746.                 ->getQuery()
  747.                 ->setResultCacheId('footer_kategori')
  748.                 ->setResultCacheLifetime(60)
  749.                 ->getScalarResult();
  750.         }
  751.         $veri = [];
  752.         $veri[]=$sayfa;
  753.         $veri[]=$icerikler;
  754.         return $veri;
  755.     }
  756.     public function site_iletisimBilgileri($alan){
  757.         $em $this->em;
  758.         $dil $this->session->get('dil');
  759.         $qb $em->createQueryBuilder();
  760.         $iletisim=$qb->select('s.'.$alan)
  761.             ->from('App:Iletisim''s')
  762.             ->join('s.dil''d')
  763.             ->where('d.id='.$dil['id'])
  764.             ->getQuery()
  765.             ->setResultCacheId($alan)
  766.             ->setResultCacheLifetime(60)
  767.             ->getScalarResult();
  768.         return $iletisim[0][$alan];
  769.     }
  770.     public function site_sosyalAglar(){
  771.         $em $this->em;
  772.         $qb $em->createQueryBuilder();
  773.         $sosyalAglar=$qb->select('s.ad,s.url')
  774.             ->from('App:SosyalAg''s')
  775.             ->getQuery()
  776.             ->setResultCacheId('sosyal_aglar')
  777.             ->setResultCacheLifetime(60)
  778.             ->getScalarResult();
  779.         $veri = [];
  780.         foreach ($sosyalAglar as $ss){
  781.             if($ss['ad']=='Facebook' and $ss['url']!=''){
  782.                 $veri[]= ['link'=>$ss['url'],'adi'=>$ss['ad'],'ikon'=>'fab fa-facebook'];
  783.             }
  784.             elseif($ss['ad']=='Twitter' and $ss['url']!=''){
  785.                 $veri[]= ['link'=>$ss['url'],'adi'=>$ss['ad'],'ikon'=>'fab fa-twitter'];
  786.             }
  787.             elseif($ss['ad']=='İnstagram' and $ss['url']!=''){
  788.                 $veri[]= ['link'=>$ss['url'],'adi'=>$ss['ad'],'ikon'=>'fab fa-instagram'];
  789.             }
  790.             elseif($ss['ad']=='Pinterest' and $ss['url']!=''){
  791.                 $veri[]= ['link'=>$ss['url'],'adi'=>$ss['ad'],'ikon'=>'fab fa-pinterest'];
  792.             }
  793.             elseif($ss['ad']=='Youtube' and $ss['url']!=''){
  794.                 $veri[]= ['link'=>$ss['url'],'adi'=>$ss['ad'],'ikon'=>'fab fa-youtube'];
  795.             }
  796.         }
  797.         return $veri;
  798.     }
  799.     public function site_sliders()
  800.     {
  801.         $em $this->em;
  802.         $dil $this->session->get('dil');
  803.         $em $this->em;
  804.         $qb $em->createQueryBuilder();
  805.         $sliders=$qb->select('s.resim,s.aciklama,s.baslik')
  806.             ->from('App:Slider''s')
  807.             ->join('s.dil''d')
  808.             ->where('d.id='.$dil['id'])
  809.             ->orderBy('s.sira')
  810.             ->getQuery()
  811.             ->setResultCacheId('slider')
  812.             ->setResultCacheLifetime(60)
  813.             ->getScalarResult();
  814.         return $sliders;
  815.     }
  816.     public function site_sayfaIcerik($sDilgrup,$max=10){
  817.         $em $this->em;
  818.         $dil $this->session->get('dil');
  819.         $qb $em->createQueryBuilder();
  820.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan,s.description')
  821.             ->from('App:Sayfa''s')
  822.             ->join('s.dil''d')
  823.             ->join('s.modul''m')
  824.             ->where('d.id='.$dil['id'].' and s.dilgrup='.$sDilgrup)
  825.             ->orderBy('s.sira','ASC')
  826.             ->getQuery()
  827.             ->setResultCacheId('sabit_sayfa')
  828.             ->setResultCacheLifetime(60)
  829.             ->getScalarResult();
  830.         $sId $this->IdBul('Sayfa',$sayfa[0]['dilgrup']);
  831.         $sayfa $sayfa[0];
  832.         $icerikler="";
  833.         if ($sayfa['kategori'] == 0) {
  834.             //İçerikler
  835.             $sayfaAlan explode(','$sayfa['alan']);
  836.             $icerikalani = [];
  837.             foreach ($sayfaAlan as $sA) {
  838.                 $icerikalani[] = 't.'.$this->seo(str_replace(' '''$sA));
  839.             }
  840.             $qb $em->createQueryBuilder();
  841.             $icerikler $qb->select(implode(',',$icerikalani).',t.dilgrup,k.dilgrup as kategoriId,d.id as did,s.dilgrup as sayfaId')
  842.                 ->from('App:' $sayfa['tabloAdi'], 't')
  843.                 ->leftjoin('t.kategori''k')
  844.                 ->join('t.sayfa''s')
  845.                 ->join('t.dil''d')
  846.                 ->where('s.id=' $sId ' and d.id=' $dil['id'])
  847.                 ->addOrderBy('t.sira''ASC')
  848.                 ->addOrderBy('t.id''DESC')
  849.                 ->setMaxResults($max)
  850.                 ->getQuery()
  851.                 ->setResultCacheId('sabit_icerik')
  852.                 ->setResultCacheLifetime(60)
  853.                 ->getScalarResult();
  854.         }
  855.         if ($sayfa['icIcerik']==1){
  856.             foreach ($icerikler as $key=>$ii){
  857.                 $alt='';
  858.                 if($sayfa['kategori']==1){
  859.                     $alt $this->altKategoriGeriYaz($ii['kategoriId'],$dil['id']);
  860.                 }
  861.                 $link $this->site_anaLink().$sayfa['seo'].'/'.$alt.$ii['seourl'];
  862.                 $icerikler[$key]['link']=$link;
  863.                 if (in_array('t.resimler',$icerikalani)){
  864.                     $resim explode(',',$ii['resimler']);
  865.                     $icerikler[$key]['resim'] = $resim[0];
  866.                 }
  867.             }
  868.         }
  869.         $veri = [];
  870.         $veri[]=$sayfa;
  871.         $veri[]=$icerikler;
  872.         return $veri;
  873.     }
  874.     public function site_sayfaIcerikDirek($sDilgrup,$max=10){
  875.         $em $this->em;
  876.         $dil $this->session->get('dil');
  877.         $qb $em->createQueryBuilder();
  878.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan,s.description')
  879.             ->from('App:Sayfa''s')
  880.             ->join('s.dil''d')
  881.             ->join('s.modul''m')
  882.             ->where('d.id='.$dil['id'].' and s.dilgrup='.$sDilgrup)
  883.             ->orderBy('s.sira','ASC')
  884.             ->getQuery()
  885.             ->setResultCacheId('sabit_sayfa')
  886.             ->setResultCacheLifetime(60)
  887.             ->getScalarResult();
  888.         $sId $this->IdBul('Sayfa',$sayfa[0]['dilgrup']);
  889.         $sayfa $sayfa[0];
  890.         //İçerikler
  891.         $sayfaAlan explode(','$sayfa['alan']);
  892.         $icerikalani = [];
  893.         foreach ($sayfaAlan as $sA) {
  894.             $icerikalani[] = 't.'.$this->seo(str_replace(' '''$sA));
  895.         }
  896.         $qb $em->createQueryBuilder();
  897.         $icerikler $qb->select(implode(',',$icerikalani).',t.dilgrup,k.dilgrup as kategoriId,d.id as did,s.dilgrup as sayfaId')
  898.             ->from('App:' $sayfa['tabloAdi'], 't')
  899.             ->leftjoin('t.kategori''k')
  900.             ->join('t.sayfa''s')
  901.             ->join('t.dil''d')
  902.             ->where('s.id=' $sId ' and d.id=' $dil['id'])
  903.             ->addOrderBy('t.sira''ASC')
  904.             ->addOrderBy('t.id''DESC')
  905.             ->setMaxResults($max)
  906.             ->getQuery()
  907.             ->setResultCacheId('sabit_icerik')
  908.             ->setResultCacheLifetime(60)
  909.             ->getScalarResult();
  910.         if ($sayfa['icIcerik']==1){
  911.             foreach ($icerikler as $key=>$ii){
  912.                 $alt='';
  913.                 if($sayfa['kategori']==1){
  914.                     $alt $this->altKategoriGeriYaz($ii['kategoriId'],$dil['id']);
  915.                 }
  916.                 $link $this->site_anaLink().$sayfa['seo'].'/'.$alt.$ii['seourl'];
  917.                 $icerikler[$key]['link']=$link;
  918.                 if (in_array('t.resimler',$icerikalani)){
  919.                     $resim explode(',',$ii['resimler']);
  920.                     $icerikler[$key]['resim'] = $resim[0];
  921.                 }
  922.             }
  923.         }
  924.         $veri = [];
  925.         $veri[]=$sayfa;
  926.         $veri[]=$icerikler;
  927.         return $veri;
  928.     }
  929.     public function site_sayfaIcerikKategori($sDilgrup,$kat,$max=10){
  930.         $em $this->em;
  931.         $dil $this->session->get('dil');
  932.         $qb $em->createQueryBuilder();
  933.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan,s.description')
  934.             ->from('App:Sayfa''s')
  935.             ->join('s.dil''d')
  936.             ->join('s.modul''m')
  937.             ->where('d.id='.$dil['id'].' and s.dilgrup='.$sDilgrup)
  938.             ->orderBy('s.sira','ASC')
  939.             ->getQuery()
  940.             ->setResultCacheId('sabit_sayfa')
  941.             ->setResultCacheLifetime(60)
  942.             ->getScalarResult();
  943.         $sayfa $sayfa[0];
  944.         //İçerikler
  945.         $sayfaAlan explode(','$sayfa['alan']);
  946.         $icerikalani = [];
  947.         foreach ($sayfaAlan as $sA) {
  948.             $icerikalani[] = 't.'.$this->seo(str_replace(' '''$sA));
  949.         }
  950.         $qb $em->createQueryBuilder();
  951.         $icerikler $qb->select(implode(',',$icerikalani).',t.dilgrup,t.kategoriId,d.id as did,t.sayfaId')
  952.             ->from('App:' $sayfa['tabloAdi'], 't')
  953.             ->join('t.dil''d')
  954.             ->where('t.sayfaId=' $sayfa['dilgrup'] . ' and t.kategoriId=' $kat ' and d.id=' $dil['id'])
  955.             ->addOrderBy('t.sira''ASC')
  956.             ->addOrderBy('t.id''DESC')
  957.             ->setMaxResults($max)
  958.             ->getQuery()
  959.             ->setResultCacheId('sabit_kategori')
  960.             ->setResultCacheLifetime(60)
  961.             ->getScalarResult();
  962.         $veri = [];
  963.         $veri[]=$sayfa;
  964.         $veri[]=$icerikler;
  965.         return $veri;
  966.     }
  967.     public function site_dilGetir(){
  968.         $em $this->em;
  969.         $dil $this->session->get('dil');
  970.         $qb $em->createQueryBuilder();
  971.         $diller=$qb->select('d.id,d.kisa,d.uzun')
  972.             ->from('App:Dil''d')
  973.             ->where('d.aktif=1 and d.id not in('.$dil['id'].')')
  974.             ->orderBy('d.aktif','DESC')
  975.             ->getQuery()
  976.             ->setResultCacheId('dil_getir')
  977.             ->setResultCacheLifetime(60)
  978.             ->getScalarResult();
  979.         $veri='';
  980.         foreach ($diller as $d){
  981.             $veri .='<li><a href="'.$this->ayarlar('siteYolu').$d['kisa'].'/"><img src="/assets/flag/'.$d['kisa'].'.webp" width="18" height="14" alt="'.$d['kisa'].'"> '.$this->ceviri($d['uzun']).' ('.strtoupper($d['kisa']).')</a></li>';
  982.         }
  983.         return $veri;
  984.     }
  985.     public function site_dilGetir2(){
  986.         $em $this->em;
  987.         $dil $this->session->get('dil');
  988.         $qb $em->createQueryBuilder();
  989.         $diller=$qb->select('d.id,d.kisa,d.uzun')
  990.             ->from('App:Dil''d')
  991.             ->where('d.aktif=1')
  992.             ->orderBy('d.aktif','DESC')
  993.             ->getQuery()
  994.             ->setResultCacheId('dil_getir')
  995.             ->setResultCacheLifetime(60)
  996.             ->getScalarResult();
  997.         $veri='';
  998.         foreach ($diller as $d){
  999.             $active "";
  1000.             if ($d['id']==$dil['id']){
  1001.                 $active 'selected';
  1002.             }
  1003.             $veri .=' <a class="dropdown-item '.$active.'" href="'.$this->ayarlar('siteYolu').$d['kisa'].'/">
  1004.                                         <img src="/assets/flag/'.$d['kisa'].'.webp" alt="'.$d['kisa'].'">
  1005.                                         '.$this->ceviri($d['uzun']).'
  1006.                                     </a>';
  1007.         }
  1008.         return $veri;
  1009.     }
  1010.     /*  public function site_popupGetir($sDilgrup){
  1011.           $em = $this->em;
  1012.           $veri = '';
  1013.           if($sDilgrup==0){
  1014.               if ($this->ayarlar('popup')!=''){
  1015.                   if(!$this->session->get('system_popup'.$sDilgrup)) {
  1016.                       $veri .= '<a href="/uploads/' . $this->ayarlar('popup') . '" class="system_popup" data-fancybox style="display: none;"></a>';
  1017.                       $this->session->set('system_popup'.$sDilgrup,1);
  1018.                   }
  1019.               }
  1020.           }else{
  1021.               $qb = $em->createQueryBuilder();
  1022.               $sayfa=$qb->select('s.popup')
  1023.                   ->from('App:Sayfa', 's')
  1024.                   ->where("s.dilgrup =".$sDilgrup)
  1025.                   ->getQuery()
  1026.                   ->setResultCacheId('popup')
  1027.                   ->setResultCacheLifetime(60)
  1028.                   ->getScalarResult();
  1029.               if ($sayfa[0]['popup']!=''){
  1030.                   if(!$this->session->get('system_popup'.$sDilgrup)) {
  1031.                       $veri .= '<a href="/uploads/' . $sayfa[0]['popup'] . '" class="system_popup" data-fancybox style="display: none;"></a>';
  1032.                       $this->session->set('system_popup'.$sDilgrup,1);
  1033.                   }
  1034.               }
  1035.           }
  1036.           return $veri;
  1037.       }*/
  1038.     public function site_bannerGetir($sDilgrup){
  1039.         $em $this->em;
  1040.         $veri '';
  1041.         $qb $em->createQueryBuilder();
  1042.         $sayfa=$qb->select('s.bannerDurum,s.bannerUrl')
  1043.             ->from('App:Sayfa''s')
  1044.             ->where("s.dilgrup =".$sDilgrup)
  1045.             ->getQuery()
  1046.             ->setResultCacheId('banner_getir')
  1047.             ->setResultCacheLifetime(60)
  1048.             ->getScalarResult();
  1049.         if ($sayfa[0]['bannerDurum']=='1'){
  1050.             $veri.=$this->ayarlar('siteYolu').'storage/'.$sayfa[0]['bannerUrl'];
  1051.         }
  1052.         return $veri;
  1053.     }
  1054.     public function site_formGetir($formId){
  1055.         $em $this->em;
  1056.         $veri='';
  1057.         $qb $em->createQueryBuilder();
  1058.         $form=$qb->select('f.adi,f.tip,f.veri,f.alan,f.zorunlu,f.id')
  1059.             ->from('App:Form''f')
  1060.             ->where("f.id =".$formId)
  1061.             ->getQuery()
  1062.             ->setResultCacheId('sabit_formlar')
  1063.             ->setResultCacheLifetime(60)
  1064.             ->getScalarResult();
  1065.         $tipler explode('~',$form[0]['tip']);
  1066.         $alanlar explode('~',$form[0]['alan']);
  1067.         $zorunlular explode('~',$form[0]['zorunlu']);
  1068.         $fVeriler explode('~',$form[0]['veri']);
  1069.         $veri .= '<form method="post" enctype="multipart/form-data" class="'.$this->seo($form[0]['adi']).'" action="'.$this->site_anaLink().'form-kayit">';
  1070.         $veri .= '<input type="hidden" name="id" value="'.$formId.'">';
  1071.         $veri .= '<div class="row">';
  1072.         foreach ($tipler as $key=>$tip){
  1073.             if ($zorunlular[$key]==1){$required='required'$zorunlu'<span style="color:#ff0000;">* </span>';}else{ $required=''$zorunlu='';}
  1074.             if($tip=='input'){
  1075.                 if($this->ceviri($alanlar[$key])=='T.C. Kimlik Numaranız'){
  1076.                         $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1077.                         $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1078.                         $veri.='<input data-inputmask="\'mask\': \'99999999999\', \'clearIncomplete\': true" type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1079.                         $veri.='</div>';
  1080.                 } elseif($this->ceviri($alanlar[$key])=='Kimlik Seri No'){
  1081.                         $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1082.                         $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1083.                         $veri.='<input data-inputmask="\'mask\': \'*********\', \'definitions\': { \'*\': { \'validator\': \'[a-zA-Z0-9]\' } }, \'clearIncomplete\': true" maxlength="9" type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1084.                         $veri.='</div>';
  1085.                 }elseif($this->ceviri($alanlar[$key])=='Telefon Doğrulama'){
  1086.                           $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px; display:none;">';
  1087.                             $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1088.                             $veri.='<input type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.' value="Hayır">';
  1089.                             $veri.='</div>';
  1090.                 }else{
  1091.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1092.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1093.                 $veri.='<input type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1094.                 $veri.='</div>';
  1095.                 }
  1096.             }
  1097.             elseif($tip=='inputPhone'){
  1098.                 $veri.='<div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 10px;">';
  1099.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1100.                 $veri.='<input data-inputmask="\'mask\': \'0(999) 999 99 99\', \'clearIncomplete\': true" type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1101.                 $veri.='</div>';
  1102.             }
  1103.             elseif($tip=='inputEmail'){
  1104.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1105.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1106.                 $veri.='<input type="email" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1107.                 $veri.='</div>';
  1108.             }
  1109.             elseif($tip=='inputNumeric'){
  1110.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1111.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1112.                 $veri.='<input type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput numeric" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1113.                 $veri.='</div>';
  1114.             }
  1115.             elseif($tip=='inputPrice'){
  1116.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1117.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1118.                 $veri.='<input type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput priceFormat" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1119.                 $veri.='</div>';
  1120.             }
  1121.             elseif($tip=='inputDate'){
  1122.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1123.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).': '.$zorunlu.'</b><br>';
  1124.                 $veri.='<input data-inputmask="\'mask\': \'99/99/9999\'" type="text" name="'.$this->seo($alanlar[$key]).'" class="form-control formInput" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1125.                 $veri.='</div>';
  1126.             }
  1127.             elseif($tip=='textarea'){
  1128.                 $veri.='<div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 10px;">';
  1129.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).' '.$zorunlu.':</b><br>';
  1130.                 $veri.='<textarea class="form-control formTextarea" name="'.$this->seo($alanlar[$key]).'" rows="3" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'></textarea>';
  1131.                 $veri.='</div>';
  1132.             }
  1133.             elseif($tip=='select'){
  1134.                 $veri.='<div class="col-lg-6 col-md-6 col-sm-12" style="margin-top: 10px;">';
  1135.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).' '.$zorunlu.':</b><br>';
  1136.                 $veri.='<select class="form-control form-select formSelect" '.$required.' name="'.$this->seo($alanlar[$key]).'">';
  1137.                 $veri.='<option value="">'.$this->ceviri($alanlar[$key].' Seçiniz').'</option>';
  1138.                 $icVeriler explode(',',$fVeriler[$key]);
  1139.                 foreach ($icVeriler as $iV){
  1140.                     $veri.='<option value="'.$this->ceviri($iV).'">'.$this->ceviri($iV).'</option>';
  1141.                 }
  1142.                 $veri.='</select>';
  1143.                 $veri.='</div>';
  1144.             }
  1145.             elseif($tip=='checkbox'){
  1146.  
  1147.                 
  1148.                 $veri.='<div class="col-lg-12 col-md-12 col-sm-12 formCheck" style="margin-top: 10px;">';
  1149.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).' '.$zorunlu.':</b><br>';
  1150.                 $veri.='<div class="row">';
  1151.                 $icVeriler explode(',',$fVeriler[$key]);
  1152.                 foreach ($icVeriler as $keyCheck=>$iV){
  1153.                     $veri.=' <div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 3px;">
  1154.                                   <input type="checkbox" class="'.$this->seo($alanlar[$key]).'" name="'.$this->seo($alanlar[$key]).'[]" value="'.$this->ceviri($iV).'" id="'.$this->seo($iV).$keyCheck.'" '.$required.'>
  1155.                                   <label for="'.$this->seo($iV).$keyCheck.'">
  1156.                                     '.$this->ceviri($iV).
  1157.                                   </label>
  1158.                               </div>';
  1159.                 }
  1160.                 $veri.='</div>';
  1161.                 if($this->ceviri($alanlar[$key])=='KVKK Onayı'){
  1162.                     $veri.='<a href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#kvkk"> KVKK aydınlatma metnimize ulaşabilirsiniz. </a>';
  1163.                 }
  1164.                 $veri.='</div>';
  1165.             }
  1166.             elseif($tip=='radio'){
  1167.                 $veri.='<div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 10px;">';
  1168.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).' '.$zorunlu.':</b><br>';
  1169.                 $veri.='<div class="row">';
  1170.                 $icVeriler explode(',',$fVeriler[$key]);
  1171.                 foreach ($icVeriler as $keyRadio=>$iV){
  1172.                     $veri.=' <div class="col-lg-4 col-md-6 col-sm-12 formRadio" style="margin-top: 3px;">
  1173.                                  <input type="radio" value="'.$this->ceviri($iV).'" class="'.$this->seo($alanlar[$key]).'" name="'.$this->seo($alanlar[$key]).'" id="'.$this->seo($iV).$keyRadio.'" '.$required.'>
  1174.                                   <label for="'.$this->seo($iV).$keyRadio.'">
  1175.                                     '.$this->ceviri($iV).
  1176.                                   </label>
  1177.                               </div>';
  1178.                 }
  1179.                 $veri.='</div>';
  1180.                 $veri.='</div>';
  1181.             }
  1182.             elseif($tip=='file'){
  1183.                 $veri.='<div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 10px;">';
  1184.                 $veri.='<b style="font-size: 13px;">'.$this->ceviri($alanlar[$key]).' '.$zorunlu.':</b><br>';
  1185.                 $veri.='<input type="file" class="form-control fromFile" id="'.$this->seo($alanlar[$key]).'" name="'.$this->seo($alanlar[$key]).'" placeholder="'.$this->ceviri($alanlar[$key]).'" '.$required.'>';
  1186.                 $veri.='</div>';
  1187.             }
  1188.         }
  1189.         $veri.='<div class="col-lg-5 col-md-5 col-sm-5" style="margin-top: 10px;">';
  1190.         $veri.='<b style="font-size: 13px;">'.$this->ceviri('Güvenlik Kodu').' <span style="color:#ff0000;">* </span>:</b><br>';
  1191.         $veri.='<div style="padding: 10px; margin-top: 5px;  background-color: #000; text-align: center;"><img src="'.$this->ayarlar('siteYolu').'captcha?time='.(new \DateTime('now'))->format('U').'" width="80"></div>';
  1192.         $veri.='</div>';
  1193.         $veri.='<div class="col-lg-7 col-md-7 col-sm-7" style="margin-top: 7px; padding-top: 27px;">';
  1194.         $veri.='<input type="text" name="captcha" class="form-control formInput" placeholder="'.$this->ceviri('Güvenlik kodunu giriniz.').'" required onblur="return hepsiBuyuk(this)">';
  1195.         $veri.='</div>';
  1196.         $veri.='<div class="col-lg-12 col-md-12 col-sm-12 hata_'.$this->seo($form[0]['adi']).'" style="margin-top: 10px;">';
  1197.         $veri.='</div>';
  1198.         $veri.='<div class="col-lg-12 col-md-12 col-sm-12" style="margin-top: 10px;">';
  1199.         $veri.='<button class="formBtn" type="button" onclick="formKayit(\''.$this->seo($form[0]['adi']).'\','.$form[0]['id'].');">'.$this->ceviri('Gönder').'</button>';
  1200.         $veri.='</div>';
  1201.         $veri .= '</div>';
  1202.         $veri .= '</form>';
  1203.         return $veri;
  1204.     }
  1205.     function site_kategoriGeriLi($ustid,$dil=1){
  1206.         $em $this->em;
  1207.         $qb $em->createQueryBuilder();
  1208.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,k.ustid,k.adi')
  1209.             ->from('App:Kategori''k')
  1210.             ->join('k.dil','d')
  1211.             ->where('k.dilgrup='.$ustid.' and d.id='.$dil)
  1212.             ->groupBy('k.dilgrup')
  1213.             ->orderBy('k.sira','ASC')
  1214.             ->getQuery()
  1215.             ->setResultCacheId('katgerili')
  1216.             ->setResultCacheLifetime(60)
  1217.             ->getScalarResult();
  1218.         $veriler='';
  1219.         foreach ($kategoriler as $k){
  1220.             $veriler.=$this->site_kategoriGeriLi($k['ustid'],$dil).$k['adi'].'#'.$this->altKategoriGeriYaz($k['ustid'],$dil).$k['seourl'].'~';
  1221.         }
  1222.         return $veriler;
  1223.     }
  1224.     public function site_sayfaKategori($sDilgrup,$max=10){
  1225.         $em $this->em;
  1226.         $dil $this->session->get('dil');
  1227.         $qb $em->createQueryBuilder();
  1228.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan,s.description')
  1229.             ->from('App:Sayfa''s')
  1230.             ->join('s.dil''d')
  1231.             ->join('s.modul''m')
  1232.             ->where('d.id='.$dil['id'].' and s.dilgrup='.$sDilgrup)
  1233.             ->orderBy('s.sira','ASC')
  1234.             ->getQuery()
  1235.             ->setResultCacheId('sayfa_kategori')
  1236.             ->setResultCacheLifetime(60)
  1237.             ->getScalarResult();
  1238.         $sayfa $sayfa[0];
  1239.         $sId $this->IdBul('Sayfa',$sayfa['dilgrup']);
  1240.         if ($sayfa['kategori'] == 1) {
  1241.             //İçerikler
  1242.             $qb $em->createQueryBuilder();
  1243.             $kategoriler $qb->select('k.adi,k.ustid,k.resim,k.dilgrup,k.seourl')
  1244.                 ->from('App:Kategori''k')
  1245.                 ->join('k.dil''d')
  1246.                 ->join('k.sayfa''s')
  1247.                 ->where('s.id=' $sId ' and d.id=' $dil['id'])
  1248.                 ->addOrderBy('k.sira''ASC')
  1249.                 ->addOrderBy('k.id''DESC')
  1250.                 ->setMaxResults($max)
  1251.                 ->getQuery()
  1252.                 ->setResultCacheId('sayfa_kategoriic')
  1253.                 ->setResultCacheLifetime(60)
  1254.                 ->getScalarResult();
  1255.             foreach ($kategoriler as $key=>$ii){
  1256.                 $link $this->site_anaLink().$sayfa['seo'].'/'.$ii['seourl'];
  1257.                 $kategoriler[$key]['link']=$link;
  1258.             }
  1259.         }
  1260.         $veri = [];
  1261.         $veri[]=$sayfa;
  1262.         $veri[]=$kategoriler;
  1263.         return $veri;
  1264.     }
  1265.     public function site_formVeriGetir($formid){
  1266.         $em $this->em;
  1267.         $qb $em->createQueryBuilder();
  1268.         $veri=$qb->select('fk.tarih,fk.kayit')
  1269.             ->from('App:FormKayit''fk')
  1270.             ->join('fk.form''f')
  1271.             ->where('f.id='.$formid)
  1272.             ->orderBy('fk.tarih','DESC')
  1273.             ->getQuery()
  1274.             ->setResultCacheId('formVerisi')
  1275.             ->setResultCacheLifetime(60)
  1276.             ->getScalarResult();
  1277.         return $veri;
  1278.     }
  1279.     public function digerDiller($id){
  1280.         $em $this->em;
  1281.         $qb $em->createQueryBuilder();
  1282.         $sabitler=$qb->select('c.id,d.kisa as diladi,d.aktif,c.deger,c.trId')
  1283.             ->from('App:Ceviri''c')
  1284.             ->join('c.dil''d')
  1285.             ->where('c.trId='.$id.' and d.aktif=1')
  1286.             ->getQuery()
  1287.             ->getScalarResult();
  1288.         return $sabitler;
  1289.     }
  1290.     public function taslakBul($dilgrup){
  1291.         return $this->session->get('taslak_'.$dilgrup);
  1292.     }
  1293.     public function popupGetir($sayfaId){
  1294.         $em $this->em;
  1295.         $qb $em->createQueryBuilder();
  1296.         $popup=$qb->select('p.id,p.veri,p.tip,p.link,p.dilgrup')
  1297.             ->from('App:Popup''p')
  1298.             ->where("p.sayfaId=".$sayfaId)
  1299.             ->orderBy('p.dil','asc')
  1300.             ->getQuery()
  1301.             ->getScalarResult();
  1302.         return $popup;
  1303.     }
  1304.     public function site_popupGetir($path){
  1305.         $em $this->em;
  1306.         $dil $this->session->get('dil');
  1307.         $path2 explode('/',$path);
  1308.         if ($this->dilSay()>1) {
  1309.             if (count($path2) > 2) {
  1310.                 $path str_replace$dil['kisa'].'/'''$path);
  1311.             } else {
  1312.                 $path str_replace($dil['kisa'], ''$path);
  1313.             }
  1314.         }
  1315.         $path explode('/',$path);
  1316.         if (empty($path[1])){
  1317.             if(!$this->session->get('system_popup0')) {
  1318.                 $qb $em->createQueryBuilder();
  1319.                 $popup $qb->select('p.veri,p.link,p.tip,p.dilgrup')
  1320.                     ->from('App:Popup''p')
  1321.                     ->join('p.dil''d')
  1322.                     ->where("p.sayfaId=0 and d.id=" $dil['id'])
  1323.                     ->getQuery()
  1324.                     ->getScalarResult();
  1325.                 $this->session->set('system_popup0',1);
  1326.             } else {
  1327.                 $popup "";
  1328.             }
  1329.         } else {
  1330.             $qb $em->createQueryBuilder();
  1331.             $sayfa=$qb->select('s.dilgrup')
  1332.                 ->from('App:Sayfa''s')
  1333.                 ->join('s.dil','d')
  1334.                 ->where("s.seo='".$path[1]."'")
  1335.                 ->getQuery()
  1336.                 ->getScalarResult();
  1337.             if(!$this->session->get('system_popup'.$sayfa[0]['dilgrup'])) {
  1338.                 $qb $em->createQueryBuilder();
  1339.                 $popup $qb->select('p.veri,p.link,p.tip,p.dilgrup')
  1340.                     ->from('App:Popup''p')
  1341.                     ->join('p.dil''d')
  1342.                     ->where("p.sayfaId=" $sayfa[0]['dilgrup'] . " and d.id=" $dil['id'])
  1343.                     ->getQuery()
  1344.                     ->getScalarResult();
  1345.                 $this->session->set('system_popup'.$sayfa[0]['dilgrup'],1);
  1346.             } else {
  1347.                 $popup "";
  1348.             }
  1349.         }
  1350.         if (empty($popup)){
  1351.             return "";
  1352.         }else{
  1353.             return $popup[0];
  1354.         }
  1355.     }
  1356.     public function IdBul($entity,$id){
  1357.         $em $this->em;
  1358.         $qb $em->createQueryBuilder();
  1359.         $veriler=$qb->select('x.id')
  1360.             ->from('App:'.$entity'x')
  1361.             ->join('x.dil','d')
  1362.             ->where('x.dilgrup='.$id)
  1363.             ->groupBy('x.dil')
  1364.             ->getQuery()
  1365.             ->getScalarResult();
  1366.         return $veriler[0]['id'];
  1367.     }
  1368.     public function imgOlustur($resim,$yukseklik=300,$radius=0,$size='cover'){
  1369.         if ($resim==''){
  1370.             $resim="resimyok.webp";
  1371.         }
  1372.         return '<div style="background-image: url(/storage/'.$resim.');background-size: '.$size.'; background-repeat: no-repeat; overflow: hidden; width: 100%; height: '.$yukseklik.'px; background-position: center;border-radius: '.$radius.'px;"></div>';
  1373.     }
  1374.     function anasayfaIcerikleri()
  1375.     {
  1376.         $em $this->em;
  1377.         $dil $this->session->get('dil');
  1378.         $qb $em->createQueryBuilder();
  1379.         $sayfalar=$qb->select('s.id,s.adi,s.dilgrup,s.seo,s.kategori,s.tekVeri,s.icIcerik,m.tabloAdi,m.alan')
  1380.             ->from('App:Sayfa''s')
  1381.             ->join('s.dil''d')
  1382.             ->join('s.modul''m')
  1383.             ->where('d.id='.$dil['id'])
  1384.             ->orderBy('s.sira','ASC')
  1385.             ->getQuery()
  1386.             ->setResultCacheId('menu_sayfalar')
  1387.             ->setResultCacheLifetime(60)
  1388.             ->getScalarResult();
  1389.         $veriler = [];
  1390.         foreach ($sayfalar as $sayfa){
  1391.             $sId $this->IdBul('Sayfa',$sayfa['dilgrup']);
  1392.             $sLink $this->site_anaLink().$sayfa['seo'];
  1393.             if ($sayfa['kategori'] == 0) {
  1394.                 $veriler[$sayfa['dilgrup']]= $this->site_sayfaIcerik($sayfa['dilgrup']);
  1395.             }
  1396.             else {
  1397.                 $veriler[$sayfa['dilgrup']]= $this->site_sayfaKategori($sayfa['dilgrup']);
  1398.             }
  1399.         }
  1400.         return $veriler;
  1401.     }
  1402.     function ustMenuler($sayfa,$kategori="",$icerik="",$kategoriV="")
  1403.     {
  1404.         $em $this->em;
  1405.         $dil $this->session->get('dil');
  1406.         $veriler = [];
  1407.         $veriler[] = ['adi'=>$this->ceviri('Anasayfa'),'link'=>$this->site_anaLink()];
  1408.         $qb $em->createQueryBuilder();
  1409.         $sayfa=$qb->select('s.id,s.adi,s.dilgrup,s.seo')
  1410.             ->from('App:Sayfa''s')
  1411.             ->join('s.dil''d')
  1412.             ->join('s.modul''m')
  1413.             ->where('d.id='.$dil['id'].' and s.dilgrup='.$sayfa)
  1414.             ->getQuery()
  1415.             ->setResultCacheId('menuSayfa')
  1416.             ->setResultCacheLifetime(60)
  1417.             ->getScalarResult();
  1418.         $veriler[] = ['adi'=>$sayfa[0]['adi'],'link'=>$this->site_anaLink().$sayfa[0]['seo']];
  1419.         if ($kategori!=''){
  1420.             $kattlar explode('~',$this->site_kategoriGeriLi($kategori,$dil['id']));
  1421.             foreach ($kattlar as $kat){
  1422.                 if($kat!=''){
  1423.                     $x explode('#',$kat);
  1424.                     $veriler[] = ['adi'=>$x[0],'link'=>$this->site_anaLink().$sayfa[0]['seo'].'/'.$x[1]];
  1425.                 }
  1426.             }
  1427.         }
  1428.         if ($icerik!='-'){
  1429.             $ii explode('-',$icerik);
  1430.             $veriler[] = ['adi'=>$ii[0],'link'=>'#'];
  1431.         }
  1432.         if ($kategoriV!=''){
  1433.             $veriler[] = ['adi'=>$kategoriV,'link'=>'#'];
  1434.         }
  1435.         return $veriler;
  1436.     }
  1437.     function veriYenile($veriler,$sayfaSeo,$kategori=0)
  1438.     {
  1439.         $em $this->em;
  1440.         $dil $this->session->get('dil');
  1441.         $yeniVeri=[];
  1442.         foreach ($veriler as $key=>$veri){
  1443.             $alt='';
  1444.             if($kategori==1){
  1445.                 $alt $this->altKategoriGeriYaz($veri['kategoriId'],$dil['id']);
  1446.             }
  1447.             $veri['link'] = $this->site_anaLink().$sayfaSeo.'/'.$alt.$veri['seourl'];
  1448.             if (array_key_exists('resimler'$veri)) {
  1449.                 $veri['resim'] = explode(',',$veri['resimler'])[0];
  1450.             }
  1451.             $yeniVeri[]=$veri;
  1452.         }
  1453.         return $yeniVeri;
  1454.     }
  1455.     function kategoriVeriYenile($veriler,$sayfaSeo)
  1456.     {
  1457.         $em $this->em;
  1458.         $dil $this->session->get('dil');
  1459.         $yeniVeri=[];
  1460.         foreach ($veriler as $key=>$veri){
  1461.             $alt $this->altKategoriGeriYaz($veri['ustid'],$dil['id']);
  1462.             $veri['link'] = $this->site_anaLink().$sayfaSeo.'/'.$alt.$veri['seourl'];
  1463.             $yeniVeri[]=$veri;
  1464.         }
  1465.         return $yeniVeri;
  1466.     }
  1467.     function icerikSolMenuler($sayfaDilgrup,$kategoriDilgrup)
  1468.     {
  1469.         $em $this->em;
  1470.         $dil $this->session->get('dil');
  1471.         $yeniVeri=[];
  1472.         if ($kategoriDilgrup!=''){
  1473.             $veriler $this->site_sayfaIcerikDirek($sayfaDilgrup);
  1474.         }else{
  1475.             $veriler $this->site_sayfaIcerik($sayfaDilgrup);
  1476.         }
  1477.         foreach ($veriler[1] as $veri) {
  1478.             $yeniVeri[]=$veri;
  1479.         }
  1480.         return $yeniVeri;
  1481.     }
  1482.     function footerSayfaDilgrup()
  1483.     {
  1484.         $em $this->em;
  1485.         $qb $em->createQueryBuilder();
  1486.         $sss=$qb->select('s.dilgrup')
  1487.             ->from('App:Sayfa''s')
  1488.             ->where('s.footer=1')
  1489.             ->getQuery()
  1490.             ->getScalarResult();
  1491.         return $sss[0]['dilgrup'];
  1492.     }
  1493. }