src/Twig/AppExtension.php line 239

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