src/Controller/PanelDefaultController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Bildirim;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Imagick;
  9. class PanelDefaultController extends BaseController
  10. {
  11.     /**
  12.      * @Route("/storage/{file}", name="panel_storage")
  13.      */
  14.     public function storage($file): Response
  15.     {
  16.         $link 'https://rvcloudstorage.com/webSitesApp/'.$this->ayarlar('uploadFolder').'/'.$file;
  17.         if ($file=='resimyok.webp'){
  18.             $link 'https://rvcloudstorage.com/webSitesApp/'.$file;
  19.         }
  20.         $ch curl_init($link);
  21.         curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  22.         $response curl_exec($ch);
  23.         $ch_header =  curl_getinfo($chCURLINFO_CONTENT_TYPE);
  24.         return new Response$response,Response::HTTP_OK, ['content-type' => $ch_header]);
  25.     }
  26.     /**
  27.      * @Route("/rv/wait", name="panel_wait")
  28.      */
  29.     public function wait(): Response
  30.     {
  31.         return $this->redirectToRoute('panel_homepage');
  32.     }
  33.     /**
  34.      * @Route("/rv", name="panel_homepage")
  35.      */
  36.     public function index(): Response
  37.     {
  38.         $em $this->getDoctrine()->getManager();
  39.         $qb $em->createQueryBuilder();
  40.         $moduller=$qb->select('m.tabloAdi')
  41.             ->from('App:Modul''m')
  42.             ->getQuery()
  43.             ->getScalarResult();
  44.         $this->get('session')->set('moduller',$moduller);
  45.         return $this->render('panel/anasayfa/index.html.twig');
  46.     }
  47.     /**
  48.      * @Route("/rv/cacheClear", name="panel_cacheClear")
  49.      */
  50.     public function cacheClear(): Response
  51.     {
  52.         shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console make:migration");
  53.         shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console doctrine:migrations:migrate");
  54.         shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console cache:clear");
  55.         shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console cache:clear --env=prod");
  56.         shell_exec("".$_SERVER['DOCUMENT_ROOT']."/chmod 777 -R var/");
  57.         shell_exec("".$_SERVER['DOCUMENT_ROOT']."/chmod 777 -R var");
  58.         return new Response('');
  59.     }
  60.     /**
  61.      * @Route("/rv/alanAdiGetir", name="panel_alanAdiGetir")
  62.      */
  63.     public function alanAdiGetir(): Response
  64.     {
  65.         $domainBitis $this->domainSorgula();
  66.         $hostingBitis $this->hostingSorgulama();
  67.         return $this->render('panel/anasayfa/alanadi.html.twig',array('tarih'=>$domainBitis,'baslangicTarihi'=>$hostingBitis));
  68.     }
  69.     /**
  70.      * @Route("/rv/goruntulenmeGetir", name="panel_goruntulenmeGetir")
  71.      */
  72.     public function goruntulenmeGetir(): Response{
  73.         $em $this->getDoctrine()->getManager();
  74.         $suan = new \DateTime('now');
  75.         $qb $em->createQueryBuilder();
  76.         $istatistikSG=$qb->select('count(i.id) as toplam')
  77.             ->from('App:Istatistik''i')
  78.             ->getQuery()
  79.             ->setResultCacheId('istatistikSG')
  80.             ->setResultCacheLifetime(60)
  81.             ->getScalarResult();
  82.         $qb $em->createQueryBuilder();
  83.         $bugun_istatistikSG=$qb->select('count(i.id) as toplam')
  84.             ->from('App:Istatistik''i')
  85.             ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  86.             ->getQuery()
  87.             ->setResultCacheId('bugun_istatistikSG')
  88.             ->setResultCacheLifetime(60)
  89.             ->getScalarResult();
  90.         $qb $em->createQueryBuilder();
  91.         $bugun_istatistikK=$qb->select('i.id')
  92.             ->from('App:Istatistik''i')
  93.             ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  94.             ->groupBy('i.ip')
  95.             ->getQuery()
  96.             ->setResultCacheId('bugun_istatistikSG')
  97.             ->setResultCacheLifetime(60)
  98.             ->getScalarResult();
  99.         $dun $suan->modify('-1 day');
  100.         $qb $em->createQueryBuilder();
  101.         $dun_istatistikSG=$qb->select('count(i.id) as toplam')
  102.             ->from('App:Istatistik''i')
  103.             ->where("i.tarih >= '".$dun->format('Y-m-d')." 00:00:00' and i.tarih <= '".$dun->format('Y-m-d')." 23:59:00'")
  104.             ->getQuery()
  105.             ->setResultCacheId('dun_istatistikSG')
  106.             ->setResultCacheLifetime(60)
  107.             ->getScalarResult();
  108.         $qb $em->createQueryBuilder();
  109.         $dun_istatistikK=$qb->select('i.id')
  110.             ->from('App:Istatistik''i')
  111.             ->where("i.tarih >= '".$dun->format('Y-m-d')." 00:00:00' and i.tarih <= '".$dun->format('Y-m-d')." 23:59:00'")
  112.             ->groupBy('i.ip')
  113.             ->getQuery()
  114.             ->setResultCacheId('bugun_istatistikSG')
  115.             ->setResultCacheLifetime(60)
  116.             ->getScalarResult();
  117.         $qb $em->createQueryBuilder();
  118.         $tarayici=$qb->select('count(i.id) as toplam, i.tarayici')
  119.             ->from('App:Istatistik''i')
  120.             ->groupBy('i.tarayici')
  121.             ->orderBy('toplam','desc')
  122.             ->getQuery()
  123.             ->getScalarResult();
  124.         $gunlukZiyaretler = [];
  125.         $suan = new \DateTime('now');
  126.         $qb $em->createQueryBuilder();
  127.         $istatistikSG2=$qb->select('count(i.id) as toplam')
  128.             ->from('App:Istatistik''i')
  129.             ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  130.             ->getQuery()
  131.             ->setResultCacheId('istatistikSGg')
  132.             ->setResultCacheLifetime(60)
  133.             ->getScalarResult();
  134.         $qb $em->createQueryBuilder();
  135.         $istatistikK2=$qb->select('i.id')
  136.             ->from('App:Istatistik''i')
  137.             ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  138.             ->groupBy('i.ip')
  139.             ->getQuery()
  140.             ->setResultCacheId('istatistikKk')
  141.             ->setResultCacheLifetime(60)
  142.             ->getScalarResult();
  143.         $gunlukZiyaretler[0]['tarih'] = $suan->format('d/m');
  144.         $gunlukZiyaretler[0]['goruntuleme'] = $istatistikSG2[0]['toplam'];
  145.         $gunlukZiyaretler[0]['kullanici'] = count($istatistikK2);
  146.         for($i=1;$i<15;$i++){
  147.             $suan = new \DateTime('now');
  148.             $suan $suan->modify('-'.$i.' day');
  149.             $qb $em->createQueryBuilder();
  150.             $istatistikSG2=$qb->select('count(i.id) as toplam')
  151.                 ->from('App:Istatistik''i')
  152.                 ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  153.                 ->getQuery()
  154.                 ->setResultCacheId('istatistikSGg')
  155.                 ->setResultCacheLifetime(60)
  156.                 ->getScalarResult();
  157.             $qb $em->createQueryBuilder();
  158.             $istatistikK2=$qb->select('i.id')
  159.                 ->from('App:Istatistik''i')
  160.                 ->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
  161.                 ->groupBy('i.ip')
  162.                 ->getQuery()
  163.                 ->setResultCacheId('istatistikKk')
  164.                 ->setResultCacheLifetime(60)
  165.                 ->getScalarResult();
  166.             $gunlukZiyaretler[$i]['tarih'] = $suan->format('d/m');
  167.             $gunlukZiyaretler[$i]['goruntuleme'] = $istatistikSG2[0]['toplam'];
  168.             $gunlukZiyaretler[$i]['kullanici'] = count($istatistikK2);
  169.         }
  170.         $qb $em->createQueryBuilder();
  171.         $trafik=$qb->select('count(i.id) as toplam, i.url')
  172.             ->from('App:Istatistik''i')
  173.             ->groupBy('i.url')
  174.             ->orderBy('toplam','desc')
  175.             ->setMaxResults(10)
  176.             ->getQuery()
  177.             ->getScalarResult();
  178.         return $this->render('panel/anasayfa/goruntulenme.html.twig',array('gunlukZiyaretler'=>$gunlukZiyaretler,'dun_istatistikK'=>$dun_istatistikK,'bugun_istatistikK'=>$bugun_istatistikK,'bugun_istatistikSG'=>$bugun_istatistikSG,'dun_istatistikSG'=>$dun_istatistikSG,'istatistikSG'=>$istatistikSG,'tarayici'=>$tarayici,'trafik'=>$trafik));
  179.     }
  180.     /**
  181.      * @Route("/rv/istatistikTemizle", name="panel_istatistikTemizle")
  182.      */
  183.     public function istatistikTemizle(): Response {
  184.         $em $this->getDoctrine()->getManager();
  185.         $qb=$em->createQueryBuilder();
  186.         $qb->delete('App:Istatistik''i')
  187.             ->getQuery()
  188.             ->execute();
  189.         return new Response('');
  190.     }
  191.     /**
  192.      * @Route("/rv/cronKontrol", name="panel_cronKontrol")
  193.      */
  194.     public function cronKontrol(): Response{
  195.         $em $this->getDoctrine()->getManager();
  196.         $suan = new \DateTime('now');
  197.         // DOMAİN VE HOSTİNG İÇİN
  198.         $tarihD $this->domainSorgula();
  199.         $tarihH $this->hostingSorgulama();
  200.         $tarihD->modify('-2 day');
  201.         $tarihH->modify('-2 day');
  202.         if($tarihD->format('d.m.Y')==$suan->format('d.m.Y')){
  203.             $konu 'Alan adı süreniz dolmak üzere!';
  204.             $metin 'Alan adı sürenizin dolmasına 2 gün kalmıştır. Lütfen takip ediniz veya site yapımcınız ile iletişime geçiniz.';
  205.             $bildirim = new Bildirim();
  206.             $bildirim->setBaslik($konu);
  207.             $bildirim->setMetin($metin);
  208.             $bildirim->setTarih(new \DateTime('now'));
  209.             $bildirim->setOkuma(0);
  210.             $em->persist($bildirim);
  211.             $em->flush();
  212.             if($this->ayarlar('bEposta')==1){
  213.                 $message = \Swift_Message::newInstance()
  214.                     ->setSubject($konu.' - RV Yönetim Paneli')
  215.                     ->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  216.                     ->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  217.                     ->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
  218.                 $this->get('mailer')->send($message);
  219.             }
  220.         }
  221.         if($tarihH->format('d.m.Y')==$suan->format('d.m.Y')){
  222.             $konu 'Hosting süreniz dolmak üzere!';
  223.             $metin 'Hosting sürenizin dolmasına 2 gün kalmıştır. Lütfen takip ediniz veya site yapımcınız ile iletişime geçiniz.';
  224.             $bildirim = new Bildirim();
  225.             $bildirim->setBaslik($konu);
  226.             $bildirim->setMetin($metin);
  227.             $bildirim->setTarih(new \DateTime('now'));
  228.             $bildirim->setOkuma(0);
  229.             $em->persist($bildirim);
  230.             $em->flush();
  231.             if($this->ayarlar('bEposta')==1){
  232.                 $message = \Swift_Message::newInstance()
  233.                     ->setSubject($konu.' - RV Yönetim Paneli')
  234.                     ->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  235.                     ->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  236.                     ->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
  237.                 $this->get('mailer')->send($message);
  238.             }
  239.         }
  240.         $tarihD->modify('-3 day');
  241.         $tarihH->modify('-3 day');
  242.         if($tarihD->format('d.m.Y')==$suan->format('d.m.Y')){
  243.             $konu 'Alan adı süreniz doluyor!';
  244.             $metin 'Alan adı sürenizin dolmasına 5 gün kalmıştır. Lütfen takip ediniz veya site yapımcınız ile iletişime geçiniz.';
  245.             $bildirim = new Bildirim();
  246.             $bildirim->setBaslik($konu);
  247.             $bildirim->setMetin($metin);
  248.             $bildirim->setTarih(new \DateTime('now'));
  249.             $bildirim->setOkuma(0);
  250.             $em->persist($bildirim);
  251.             $em->flush();
  252.             if($this->ayarlar('bEposta')==1){
  253.                 $message = \Swift_Message::newInstance()
  254.                     ->setSubject($konu.' - RV Yönetim Paneli')
  255.                     ->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  256.                     ->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  257.                     ->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
  258.                 $this->get('mailer')->send($message);
  259.             }
  260.         }
  261.         if($tarihH->format('d.m.Y')==$suan->format('d.m.Y')){
  262.             $konu 'Hosting süreniz doluyor!';
  263.             $metin 'Hosting sürenizin dolmasına 5 gün kalmıştır. Lütfen takip ediniz veya site yapımcınız ile iletişime geçiniz.';
  264.             $bildirim = new Bildirim();
  265.             $bildirim->setBaslik($konu);
  266.             $bildirim->setMetin($metin);
  267.             $bildirim->setTarih(new \DateTime('now'));
  268.             $bildirim->setOkuma(0);
  269.             $em->persist($bildirim);
  270.             $em->flush();
  271.             if($this->ayarlar('bEposta')==1){
  272.                 $message = \Swift_Message::newInstance()
  273.                     ->setSubject($konu.' - RV Yönetim Paneli')
  274.                     ->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  275.                     ->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  276.                     ->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
  277.                 $this->get('mailer')->send($message);
  278.             }
  279.         }
  280.         // HAFTALIK İSTATİSTİK
  281.         if ($suan->format('l')=='Monday'){
  282.             $suan->modify('-1 day');
  283.             $bitis  $suan->format('Y-m-d');
  284.             $suan->modify('-6 day');
  285.             $baslangic $suan->format('Y-m-d');
  286.             $konu 'Haftalık Site İstatistiğiniz';
  287.             $qb $em->createQueryBuilder();
  288.             $istatistikKullanici=$qb->select('i.id')
  289.                 ->from('App:Istatistik''i')
  290.                 ->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
  291.                 ->groupBy('i.ip')
  292.                 ->getQuery()
  293.                 ->getScalarResult();
  294.             $qb $em->createQueryBuilder();
  295.             $istatistikSG=$qb->select('i.id')
  296.                 ->from('App:Istatistik''i')
  297.                 ->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
  298.                 ->getQuery()
  299.                 ->getScalarResult();
  300.             $qb $em->createQueryBuilder();
  301.             $trafik=$qb->select('count(i.id) as toplam, i.url')
  302.                 ->from('App:Istatistik''i')
  303.                 ->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
  304.                 ->groupBy('i.url')
  305.                 ->orderBy('toplam','desc')
  306.                 ->getQuery()
  307.                 ->getScalarResult();
  308.             $message = \Swift_Message::newInstance()
  309.                 ->setSubject($konu.' - RV Yönetim Paneli')
  310.                 ->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  311.                 ->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
  312.                 ->setBody($this->renderView('panel/cron_istatistik_mail.html.twig',array('konu'=>$konu,'istatistikSG'=>$istatistikSG,'istatistikKullanici'=>$istatistikKullanici,'trafik'=>$trafik)), 'text/html');
  313.             $this->get('mailer')->send($message);
  314.         }
  315.         // OKUNMAYAN MESAJLAR
  316.         $qb $em->createQueryBuilder();
  317.         $mesajlar=$qb->select('m.kayit,m.tarih')
  318.             ->from('App:FormKayit''m')
  319.             ->where('m.okuma=0')
  320.             ->getQuery()
  321.             ->getScalarResult();
  322.         $mesajSayisi ;
  323.         foreach ($mesajlar as $mesaj){
  324.             $tt = new \DateTime($mesaj['tarih']);
  325.             $xx date_diff($tt$suan);
  326.             if($xx->format('%a')>1){
  327.                 $mesajSayisi++;
  328.             }
  329.         }
  330.         if ($mesajSayisi!=0){
  331.             if($this->ayarlar('bEposta')==1) {
  332.                 $konu 'Okunmamış mesajlarınız var!';
  333.                 $metin 'Mesaj kutunuzda ' $mesajSayisi ' adet okunmamış mesajınız bulunmaktadır. Okuduysanız okundu olarak işaretlemelisiniz.';
  334.                 $message = \Swift_Message::newInstance()
  335.                     ->setSubject($konu ' - RV Yönetim Paneli')
  336.                     ->setFrom(array($this->ayarlar('sistemPosta') => $this->ayarlar('siteAdi')))
  337.                     ->setTo(array($this->ayarlar('sistemPosta') => $this->ayarlar('siteAdi')))
  338.                     ->setBody($this->renderView('panel/cron_mail.html.twig', array('konu' => $konu'icerik' => $metin)), 'text/html');
  339.                 $this->get('mailer')->send($message);
  340.             }
  341.         }
  342.         return new Response('');
  343.     }
  344.     /**
  345.      * @Route("/rv/siteyayimlama", name="panel_siteyayimlama")
  346.      */
  347.     public function siteyayimlamaAction(Request $veri) {
  348.         return new Response('');
  349.     }
  350. }