src/Controller/BaseController.php line 57

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Ceviri;
  4. use App\Entity\Dil;
  5. use Gumlet\ImageResize;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use App\Controller;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. class BaseController extends AbstractController
  11. {
  12.     function botArama($bas$son$yazi)
  13.     {
  14.         @preg_match_all('/' preg_quote($bas'/') .
  15.             '(.*?)'preg_quote($son'/').'/i'$yazi$m);
  16.         return @$m[1];
  17.     }
  18.     function GetIP()
  19.     {
  20.         if (getenv("HTTP_CLIENT_IP")) {
  21.             $ip getenv("HTTP_CLIENT_IP");
  22.         } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
  23.             $ip getenv("HTTP_X_FORWARDED_FOR");
  24.             if (strstr($ip',')) {
  25.                 $tmp explode(','$ip);
  26.                 $ip trim($tmp[0]);
  27.             }
  28.         } else {
  29.             $ip getenv("REMOTE_ADDR");
  30.         }
  31.         return $ip;
  32.     }
  33.     public function IdBul($entity,$id){
  34.         $em=$this->getDoctrine()->getManager();
  35.         $qb $em->createQueryBuilder();
  36.         $veriler=$qb->select('x.id')
  37.             ->from('App:'.$entity'x')
  38.             ->join('x.dil','d')
  39.             ->where('x.dilgrup='.$id)
  40.             ->groupBy('x.dil')
  41.             ->getQuery()
  42.             ->getScalarResult();
  43.         return $veriler[0]['id'];
  44.     }
  45.     function varsayilanDil(){
  46.         $em=$this->getDoctrine()->getManager();
  47.         $qb $em->createQueryBuilder();
  48.         $diller=$qb->select('d.id,d.kisa,d.uzun')
  49.             ->from('App:Dil''d')
  50.             ->where("d.aktif=1 and d.varsayilan=1")
  51.             ->orderBy('d.id')
  52.             ->getQuery()
  53.             ->getScalarResult();
  54.         return $diller[0];
  55.     }
  56.     function gecerliAktifDil(){
  57.         $em=$this->getDoctrine()->getManager();
  58.         $qb $em->createQueryBuilder();
  59.         $diller=$qb->select('d.id')
  60.             ->from('App:Dil''d')
  61.             ->where("d.aktif=1")
  62.             ->orderBy('d.id')
  63.             ->getQuery()
  64.             ->getScalarResult();
  65.         return $diller[0]['id'];
  66.     }
  67.     public function ayarlar($alan,$dil='')
  68.     {
  69.         $em=$this->getDoctrine()->getManager();
  70.         if($dil=='') {
  71.             $qb $em->createQueryBuilder();
  72.             $dd $qb->select("e.id")
  73.                 ->from('App:Dil''e')
  74.                 ->where('e.aktif=1 and e.varsayilan=1')
  75.                 ->getQuery()
  76.                 ->getScalarResult();
  77.             $dil=$dd[0]['id'];
  78.         }
  79.         $qb $em->createQueryBuilder();
  80.         $ayarlar=$qb->select("e.$alan")
  81.             ->from('App:Ayarlar''e')
  82.             ->where('e.dil='.$dil)
  83.             ->getQuery()
  84.             ->getScalarResult();
  85.         return $ayarlar[0][$alan];
  86.     }
  87.     function uzantiBul($type){
  88.         if($type=='image/jpeg'){ return '.jpg'; }
  89.         elseif($type=='image/png'){ return '.png'; }
  90.         elseif($type=='image/gif'){ return '.gif'; }
  91.         elseif($type=='video/mp4'){ return '.mp4'; }
  92.         elseif($type=='application/rtf'){ return '.rtf'; }
  93.         elseif($type=='text/plain'){ return '.txt'; }
  94.         elseif($type=='application/vnd.ms-powerpoint'){ return '.ppt'; }
  95.         elseif($type=='application/vnd.openxmlformats-officedocument.presentationml.presentation'){ return '.pptx'; }
  96.         elseif($type=='application/xml'){ return '.xml'; }
  97.         elseif($type=='application/pdf'){ return '.pdf'; }
  98.         elseif($type=='text/xml'){ return '.xml'; }
  99.         elseif($type=='application/vnd.ms-excel'){ return '.xls'; }
  100.         elseif($type=='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'){ return '.xlsx'; }
  101.         elseif($type=='application/msword'){ return '.doc'; }
  102.         elseif($type=='application/zip'){ return '.zip'; }
  103.         elseif($type=='application/vnd.openxmlformats-officedocument.wordprocessingml.document'){ return '.docx'; }
  104.         else{ return '.belirsiz'; }
  105.     }
  106.     function rasgele($uzunluk)
  107.     {
  108.         $key='';
  109.         $karakterler "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  110.         for($i=0;$i<$uzunluk;$i++)
  111.         {
  112.             $key .= $karakterler{rand(0,35)};
  113.         }
  114.         return $key;
  115.     }
  116.     function rasgeleSayi($uzunluk)
  117.     {
  118.         $key='';
  119.         $karakterler "1234567890";
  120.         for($i=0;$i<$uzunluk;$i++)
  121.         {
  122.             $key .= $karakterler{rand(0,35)};
  123.         }
  124.         return $key;
  125.     }
  126.     function son_dilgrup($entity){
  127.         $em=$this->getDoctrine()->getManager();
  128.         $qb $em->createQueryBuilder();
  129.         $data=$qb->select('h.dilgrup')
  130.             ->from('App:'.$entity'h')
  131.             ->orderBy('h.dilgrup','desc')
  132.             ->getQuery()
  133.             ->getScalarResult();
  134.         if(count($data)>0){
  135.             $dilgrup intval($data[0]['dilgrup'])+1;
  136.         }else{
  137.             $dilgrup 1;
  138.         }
  139.         return $dilgrup;
  140.     }
  141.     function sonGrup($entity){
  142.         $em=$this->getDoctrine()->getManager();
  143.         $qb $em->createQueryBuilder();
  144.         $data=$qb->select('h.grup')
  145.             ->from('App:'.$entity'h')
  146.             ->orderBy('h.grup','desc')
  147.             ->getQuery()
  148.             ->getScalarResult();
  149.         if(count($data)>0){
  150.             $dilgrup intval($data[0]['grup'])+1;
  151.         }else{
  152.             $dilgrup 1;
  153.         }
  154.         return $dilgrup;
  155.     }
  156.     function seo($url,$dil=1){
  157.         if($dil==1) {
  158.             $tr = array('ş''Ş''ı''I''İ''ğ''Ğ''ü''Ü''ö''Ö''Ç''ç''('')''/'':'',');
  159.             $eng = array('s''s''i''i''i''g''g''u''u''o''o''c''c''''''-''-''');
  160.             $s str_replace($tr$eng$url);
  161.             $find = array('/[^A-Za-z0-9\-<>]/''/[\-]+/''/<[^>]*>/');
  162.             $repl = array('-''-''-');
  163.             $s preg_replace($find$repl$s);
  164.             $s strtolower($s);
  165.             $s preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;amp;.+?;/'''$s);
  166.             $s preg_replace('/\s+/''-'$s);
  167.             $s preg_replace('|-+|''-'$s);
  168.             $s preg_replace('/#/'''$s);
  169.             $s str_replace('.'''$s);
  170.             $s trim($s'-');
  171.             $s strtolower($s);
  172.             return $s;
  173.         }else{
  174.             $tr = array('('')''/'':'',');
  175.             $eng = array('''''-''-''');
  176.             $s str_replace($tr$eng$url);
  177.             $find = array('/[^A-Za-z0-9\-<>]/''/[\-]+/''/<[^>]*>/');
  178.             $repl = array('-''-''-');
  179.             $s preg_replace($find$repl$s);
  180.             $s strtolower($s);
  181.             $s preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;amp;.+?;/'''$s);
  182.             $s preg_replace('/\s+/''-'$s);
  183.             $s preg_replace('|-+|''-'$s);
  184.             $s preg_replace('/#/'''$s);
  185.             $s str_replace('.'''$s);
  186.             $s trim($s'-');
  187.             $s strtolower($s);
  188.             return $s;
  189.         }
  190.     }
  191.     function yandexToken(){
  192.         if ($this->get('session')->get('iamToken')){
  193.             return $this->get('session')->get('iamToken');
  194.         }else {
  195.             $curl curl_init();
  196.             curl_setopt_array($curl, array(
  197.                 CURLOPT_URL => 'https://iam.api.cloud.yandex.net/iam/v1/tokens',
  198.                 CURLOPT_RETURNTRANSFER => true,
  199.                 CURLOPT_ENCODING => '',
  200.                 CURLOPT_MAXREDIRS => 10,
  201.                 CURLOPT_TIMEOUT => 0,
  202.                 CURLOPT_FOLLOWLOCATION => true,
  203.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  204.                 CURLOPT_CUSTOMREQUEST => 'POST',
  205.                 CURLOPT_POSTFIELDS => '{
  206.     "yandexPassportOauthToken":"y0_AgAAAAAZYEETAATuwQAAAAEToav7AADO8OOAY3pJJ4glGitLIJdp7BdHYg"
  207. }',
  208.                 CURLOPT_HTTPHEADER => array(
  209.                     'Content-Type: application/json'
  210.                 ),
  211.             ));
  212.             $response curl_exec($curl);
  213.             $response json_decode($responsetrue);
  214.             $this->get('session')->set('iamToken'$response['iamToken']);
  215.             return $response['iamToken'];
  216.         }
  217.     }
  218.     function cevir($deger,$x,$dil){
  219.         if ($deger==''){
  220.             return "";
  221.         }
  222.         $token $this->yandexToken();
  223.         $curl curl_init();
  224.         curl_setopt_array($curl, array(
  225.             CURLOPT_URL => 'https://translate.api.cloud.yandex.net/translate/v2/translate',
  226.             CURLOPT_RETURNTRANSFER => true,
  227.             CURLOPT_ENCODING => '',
  228.             CURLOPT_MAXREDIRS => 10,
  229.             CURLOPT_TIMEOUT => 0,
  230.             CURLOPT_FOLLOWLOCATION => true,
  231.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  232.             CURLOPT_CUSTOMREQUEST => 'POST',
  233.             CURLOPT_POSTFIELDS =>'{
  234.     "folderId": "b1g1l9b33ueptm8liaou",
  235.     "texts": "'.$deger.'",
  236.     "targetLanguageCode": "'.$dil.'"
  237. }',
  238.             CURLOPT_HTTPHEADER => array(
  239.                 'Authorization: Bearer '.$token,
  240.                 'Content-Type: application/json'
  241.             ),
  242.         ));
  243.         $response curl_exec($curl);
  244.         $response json_decode($responsetrue);
  245.         return $response['translations'][0]['text'];
  246.     }
  247.     public function ceviri($deger,$suanDil='')
  248.     {
  249.         $em $this->getDoctrine()->getManager();
  250.         if ($suanDil==''){
  251.             $suanDil $this->get('session')->get('dil');
  252.         } else {
  253.             $qb $em->createQueryBuilder();
  254.             $dill=$qb->select('d.id,d.kisa,d.uzun')
  255.                 ->from('App:Dil''d')
  256.                 ->where('d.id='.$suanDil)
  257.                 ->getQuery()
  258.                 ->getScalarResult();
  259.             $suanDil $dill[0];
  260.         }
  261.         $qb $em->createQueryBuilder();
  262.         $ceviriTara=$qb->select('c.deger,c.id')
  263.             ->from('App:Ceviri''c')
  264.             ->join('c.dil','d')
  265.             ->where("c.deger='$deger'")
  266.             ->getQuery()
  267.             ->getScalarResult();
  268.         if (count($ceviriTara) > 0) {
  269.             if ($suanDil['id'] != 1) {
  270.                 $qb $em->createQueryBuilder();
  271.                 $ceviriTara2=$qb->select('c.deger')
  272.                     ->from('App:Ceviri''c')
  273.                     ->join('c.dil','d')
  274.                     ->where("d.id=".$suanDil['id']." and c.trId=".$ceviriTara[0]['id'])
  275.                     ->getQuery()
  276.                     ->getScalarResult();
  277.                 if (count($ceviriTara2) > 0) {
  278.                     $deger $ceviriTara2[0]['deger'];
  279.                 } else {
  280.                     if($deger=='İletişim') {
  281.                     }
  282.                     if ($suanDil['id'] != '1') {
  283.                         $deger $this->cevir($deger,'',$suanDil['kisa']);
  284.                         $dill $em->getReference(Dil::class,$suanDil['id']);
  285.                         $ceviri = new Ceviri();
  286.                         $ceviri->setDil($dill);
  287.                         $ceviri->setDeger($deger);
  288.                         $ceviri->setTrId($ceviriTara[0]['id']);
  289.                         $em->persist($ceviri);
  290.                         $em->flush();
  291.                     }
  292.                 }
  293.             }
  294.         }
  295.         else {
  296.             if ($suanDil['id'] == 1) {
  297.                 $dill $em->getReference(Dil::class,$suanDil['id']);
  298.                 $ceviri = new Ceviri();
  299.                 $ceviri->setDil($dill);
  300.                 $ceviri->setDeger($deger);
  301.                 $ceviri->setTrId(0);
  302.                 $em->persist($ceviri);
  303.                 $em->flush();
  304.             }
  305.             else {
  306.                 $dilTr $em->getReference(Dil::class,1);
  307.                 $ceviri = new Ceviri();
  308.                 $ceviri->setDil($dilTr);
  309.                 $ceviri->setDeger($deger);
  310.                 $ceviri->setTrId(0);
  311.                 $em->persist($ceviri);
  312.                 $em->flush();
  313.                 $deger $this->cevir($deger,'',$suanDil['kisa']);
  314.                 $dill $em->getReference(Dil::class,$suanDil['id']);
  315.                 $ceviriDil = new Ceviri();
  316.                 $ceviriDil->setDil($dill);
  317.                 $ceviriDil->setDeger($deger);
  318.                 $ceviriDil->setTrId($ceviri->getId());
  319.                 $em->persist($ceviriDil);
  320.                 $em->flush();
  321.             }
  322.         }
  323.         return $deger;
  324.     }
  325.     public function yetkiler($yetkiler){
  326.         if ($yetkiler==''){
  327.             return 1;
  328.         }
  329.         $yetkiler explode('~',str_replace(array('{','}'),array('',''),substr($yetkiler,0,strlen($yetkiler)-1)));
  330.         $return = [];
  331.         foreach ($yetkiler as $y){
  332.             $x explode(':',$y);
  333.             $z explode(',',$x[1]);
  334.             $return[$x[0]]['gorme']=$z[0];
  335.             $return[$x[0]]['ekleme']=$z[1];
  336.             $return[$x[0]]['duzenleme']=$z[2];
  337.             $return[$x[0]]['silme']=$z[3];
  338.         }
  339.         if($this->getUser()->getRoles()[0]=='ROLE_SUPERADMIN' or $this->getUser()->getRoles()[0]=='ROLE_ADMIN'){
  340.             return 1;
  341.         }else{
  342.             return $return;
  343.         }
  344.     }
  345.     public function domainSorgula(){
  346.         $em $this->getDoctrine()->getManager();
  347.         $suan = new \DateTime('now');
  348.         $tarih = new \DateTime($this->ayarlar('domainTarih'));
  349.         if (empty($this->ayarlar('domainTarih')) or $tarih->format('U') < $suan->format('U')) {
  350.             $domain str_replace(array('/''https:''http:'), array(''''''), $this->ayarlar('siteYolu'));
  351.             $ch curl_init();
  352.             curl_setopt($chCURLOPT_URL"https://www.whois.com/whois/" $domain);
  353.             curl_setopt($chCURLOPT_RETURNTRANSFER1);
  354.             curl_setopt($chCURLOPT_REFERER'https://www.google.com/');
  355.             $output curl_exec($ch);
  356.             curl_close($ch);
  357.             $dBol explode('.'$domain);
  358.             if (count($dBol) == 2) {
  359.                 preg_match_all('@<pre class="df-raw" id="registrarData">(.*?)</pre>@si'$output$icerik);
  360.                 $tarihB explode('Registrar Registration Expiration Date:'$icerik[0][0]);
  361.                 $tarihB explode('Registrar'$tarihB[1]);
  362.                 $tarih str_replace('T'' '$tarihB[0]);
  363.             } else {
  364.                 preg_match_all('@<pre class="df-raw" id="registryData">(.*?)</pre>@si'$output$icerik);
  365.                 $tarihB explode('Expires on..............:'$icerik[0][0]);
  366.                 $tarihB explode('.'$tarihB[1]);
  367.                 $tarih $tarihB[0];
  368.             }
  369.             //echo $tarih;
  370.             $tarih = new \DateTime($tarih);
  371.             if ($this->ayarlar('debug') != 1) {
  372.                 $qb $em->createQueryBuilder();
  373.                 $q $qb->update('App:Ayarlar''a')
  374.                     ->set('a.domainTarih'':domainTarih')
  375.                     ->setParameter('domainTarih'$tarih)
  376.                     ->getQuery()
  377.                     ->execute();
  378.             }
  379.         }
  380.         return $tarih;
  381.     }
  382.     public function hostingSorgulama(){
  383.         $em $this->getDoctrine()->getManager();
  384.         $suan = new \DateTime('now');
  385.         if (empty($this->ayarlar('hostingTarih'))) {
  386.             $domain str_replace(array('/''https:''http:'), array(''''''), $this->ayarlar('siteYolu'));
  387.             $ch curl_init();
  388.             curl_setopt($chCURLOPT_URL"https://174gj41p1.ni.net.tr:2087/json-api/listaccts?api.version=1&search=$domain&searchtype=domain");
  389.             curl_setopt($chCURLOPT_USERPWD'root' ":" 'aKuosv}_x3{K');
  390.             curl_setopt($chCURLOPT_RETURNTRANSFER1);
  391.             $output curl_exec($ch);
  392.             curl_close($ch);
  393.             $output json_decode($output);
  394.             $baslangicTarihi = new \DateTime();
  395.             $baslangicTarihi->setTimestamp($output->data->acct[0]->unix_startdate);
  396.             $baslangicTarihi->modify('+1 year');
  397.             if ($this->ayarlar('debug')!=1) {
  398.                 $qb $em->createQueryBuilder();
  399.                 $q $qb->update('App:Ayarlar''a')
  400.                     ->set('a.hostingTarih'':hostingTarih')
  401.                     ->setParameter('hostingTarih'$baslangicTarihi)
  402.                     ->getQuery()
  403.                     ->execute();
  404.             }
  405.         }else{
  406.             $baslangicTarihi = new \DateTime($this->ayarlar('hostingTarih'));
  407.             if ($baslangicTarihi->format('U') < $suan->format('U')) {
  408.                 if($baslangicTarihi->format('d.m.Y')!=$suan->format('d.m.Y')){
  409.                     $baslangicTarihi->modify('+1 year');
  410.                     if ($this->ayarlar('debug')!=1) {
  411.                         $qb $em->createQueryBuilder();
  412.                         $q $qb->update('App:Ayarlar''a')
  413.                             ->set('a.hostingTarih'':hostingTarih')
  414.                             ->setParameter('hostingTarih'$baslangicTarihi)
  415.                             ->getQuery()
  416.                             ->execute();
  417.                     }
  418.                 }
  419.             }
  420.         }
  421.         return $baslangicTarihi;
  422.     }
  423.     public function dilSay(){
  424.         $em $this->getDoctrine()->getManager();
  425.         $qb $em->createQueryBuilder();
  426.         $ayarlar=$qb->select("e.id")
  427.             ->from('App:Dil''e')
  428.             ->where('e.aktif=1')
  429.             ->getQuery()
  430.             ->getScalarResult();
  431.         return count($ayarlar);
  432.     }
  433.     function altKategoriListeSiteMap($dilgrup,$sSeo,$dil){
  434.         $em $this->getDoctrine()->getManager();
  435.         $qb $em->createQueryBuilder();
  436.         $kategoriler=$qb->select('k.dilgrup,k.seourl,d.kisa as dKisa,k.ustid')
  437.             ->from('App:Kategori''k')
  438.             ->join('k.dil','d')
  439.             ->where('k.ustid='.$dilgrup.' and d.id='.$dil)
  440.             ->orderBy('k.sira','ASC')
  441.             ->getQuery()
  442.             ->getScalarResult();
  443.         $siteyolu $this->ayarlar('siteYolu');
  444.         $suan = new \DateTime('now');
  445.         $veriler='';
  446.         foreach ($kategoriler as $k) {
  447.             if ($this->dilSay() > 1) {
  448.                 $veriler .= '<url>
  449.                                   <loc>' $siteyolu .$k['dKisa'].'/'.$sSeo.'/'.$this->altKategoriGeriYaz($k['ustid'],$dil) .$k['seourl'].'</loc>
  450.                                   <lastmod>' $suan->format('Y-m-d') . 'T' $suan->format('H:i:s') . '+00:00</lastmod>
  451.                                   <priority>0.80</priority>
  452.                                 </url>';
  453.             } else {
  454.                 $veriler .= '<url>
  455.                                   <loc>' $siteyolu .$sSeo.'/'.$this->altKategoriGeriYaz($k['ustid'],$dil) .$k['seourl'].'</loc>
  456.                                   <lastmod>' $suan->format('Y-m-d') . 'T' $suan->format('H:i:s') . '+00:00</lastmod>
  457.                                   <priority>0.80</priority>
  458.                                 </url>';
  459.             }
  460.             $veriler .= $this->altKategoriListeSiteMap($k['dilgrup'], $sSeo,$dil);;
  461.         }
  462.         return $veriler;
  463.     }
  464.     function altKategoriGeriYaz($ustid,$dil=1){
  465.         $em $this->getDoctrine()->getManager();
  466.         $qb $em->createQueryBuilder();
  467.         $kategoriler=$qb->select('k.id,k.dilgrup,k.adi,k.seourl,k.ustid')
  468.             ->from('App:Kategori''k')
  469.             ->join('k.dil','d')
  470.             ->where('k.dilgrup='.$ustid.' and d.id='.$dil)
  471.             ->groupBy('k.dilgrup')
  472.             ->orderBy('k.sira','ASC')
  473.             ->getQuery()
  474.             ->getScalarResult();
  475.         $veriler='';
  476.         foreach ($kategoriler as $k){
  477.             $veriler.=$this->altKategoriGeriYaz($k['ustid'],$dil).$k['seourl'].'/';
  478.         }
  479.         return $veriler;
  480.     }
  481.     public function iletisimBilgileri($alan){
  482.         $em $this->getDoctrine()->getManager();
  483.         $dil $this->get('session')->get('dil');
  484.         $qb $em->createQueryBuilder();
  485.         $iletisim=$qb->select('s.'.$alan)
  486.             ->from('App:Iletisim''s')
  487.             ->join('s.dil''d')
  488.             ->where('d.id='.$dil['id'])
  489.             ->getQuery()
  490.             ->getScalarResult();
  491.         return $iletisim[0][$alan];
  492.     }
  493.     public function imageResizer($resim,$resim2,$boyut=800){
  494.         $resimBol explode('.',$resim);
  495.         $uzanti $resimBol[count($resimBol)-1];
  496.         $yol 'gecici_yukleme/'.$resim;
  497.         $yol2 'gecici_yukleme/'.$resim2.'.webp';
  498.         list($width$height) = getimagesize($yol);
  499.         $oran $width $boyut;
  500.         $yeni_genislik $width $oran;
  501.         $yeni_yukseklik $height $oran;
  502.         if ($uzanti=='jpeg' or $uzanti=='jpg' or $uzanti=='JPEG' or $uzanti=='JPG'){
  503.             $mevcut_resim imagecreatefromjpeg($yol);
  504.         }else{
  505.             $mevcut_resim imagecreatefrompng($yol);
  506.         }
  507.         $yeni_resim imagecreatetruecolor($yeni_genislik$yeni_yukseklik);
  508.         imageAlphaBlending($yeni_resimfalse);
  509.         imageSaveAlpha($yeni_resimtrue);
  510. // By default, the canvas is black, so make it transparent
  511.         $trans imagecolorallocatealpha($yeni_resim000127);
  512.         imagefilledrectangle($yeni_resim00$yeni_genislik 1$yeni_yukseklik 1$trans);
  513.         imagecopyresampled($yeni_resim$mevcut_resim0000$yeni_genislik$yeni_yukseklik$width$height);
  514.         @unlink($yol);
  515.         imagewebp($yeni_resim$yol2 );
  516.         return $resim2.'.webp';
  517.     }
  518.     public function removeEntity($veriler){
  519.         $em $this->getDoctrine()->getManager();
  520.         foreach ($veriler as $veri){
  521.             $em->remove($veri);
  522.         }
  523.     }
  524.     public function uploadFile($file,$klasor="",$filePath=""){
  525.         if ($filePath==""){
  526.             $filePath 'gecici_yukleme/';
  527.         }
  528.         $filePath .= $file;
  529.         $yukleme_yeri 'uploads/';
  530.         copy($filePath$yukleme_yeri.$file);
  531.         @unlink($filePath);
  532.         return "";
  533.     }
  534.     function deleteFile($file)
  535.     {
  536.         @unlink($file);
  537.         return "";
  538.     }
  539.     function bilgiler()
  540.     {
  541.         $ch curl_init('https://www.sites.rvyazilim.net/ipKontrol');
  542.         curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  543.         $response curl_exec($ch);
  544.         $bilgiler json_decode($response,true);
  545.         return $bilgiler;
  546.     }
  547.     public function dilgrupBul($entity,$id){
  548.         $em $this->getDoctrine()->getManager();
  549.         $qb $em->createQueryBuilder();
  550.         $veriler=$qb->select('x.dilgrup')
  551.             ->from('App:'.$entity'x')
  552.             ->join('x.dil','d')
  553.             ->where('x.id='.$id)
  554.             ->groupBy('x.dil')
  555.             ->getQuery()
  556.             ->getScalarResult();
  557.         return $veriler[0]['dilgrup'];
  558.     }
  559.     function chatGPT($promp)
  560.     {
  561.         ini_set('max_execution_time'0);
  562.         $data = [];
  563.         $data['model'] = 'gpt-3.5-turbo';
  564.         $data['messages'][0]['role'] = 'user';
  565.         $data['messages'][0]['content'] = $promp;
  566.         $curl curl_init();
  567.         curl_setopt_array($curl, array(
  568.             CURLOPT_URL => 'https://api.openai.com/v1/chat/completions',
  569.             CURLOPT_RETURNTRANSFER => true,
  570.             CURLOPT_ENCODING => '',
  571.             CURLOPT_MAXREDIRS => 10,
  572.             CURLOPT_TIMEOUT => 0,
  573.             CURLOPT_FOLLOWLOCATION => true,
  574.             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  575.             CURLOPT_CUSTOMREQUEST => 'POST',
  576.             CURLOPT_POSTFIELDS =>json_encode($data),
  577.             CURLOPT_HTTPHEADER => array(
  578.                 'Authorization: Bearer xsdaqwe',
  579.                 'Content-Type: application/json'
  580.             ),
  581.         ));
  582.         $response curl_exec($curl);
  583.         $response json_decode($response,true);
  584.         curl_close($curl);
  585.         return $response['choices'][0]['message']['content'];
  586.     }
  587.     public function digerTasarimlar($grupNo){
  588.         $em $this->getDoctrine()->getManager();
  589.         $qb $em->createQueryBuilder();
  590.         $veriler=$qb->select('t.translate')
  591.             ->from('App:Tasarim''t')
  592.             ->where('t.grup='.$grupNo)
  593.             ->getQuery()
  594.             ->getScalarResult();
  595.         $translate="";
  596.         foreach ($veriler as $veri){
  597.             $translate .=$veri['translate'];
  598.         }
  599.         return $translate;
  600.     }
  601.     function emptyDir($dir) {
  602.         if (is_dir($dir)) {
  603.             $scn scandir($dir);
  604.             foreach ($scn as $files) {
  605.                 if ($files !== '.') {
  606.                     if ($files !== '..') {
  607.                         if (!is_dir($dir '/' $files)) {
  608.                             unlink($dir '/' $files);
  609.                         } else {
  610.                             $this->emptyDir($dir '/' $files);
  611.                             rmdir($dir '/' $files);
  612.                         }
  613.                     }
  614.                 }
  615.             }
  616.         }
  617.     }
  618. }