src/Controller/BaseController.php line 111

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