<?php
namespace App\Controller;
use App\Entity\Bildirim;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Imagick;
class PanelDefaultController extends BaseController
{
/**
* @Route("/storage/{file}", name="panel_storage")
*/
public function storage($file): Response
{
$link = 'https://rvcloudstorage.com/webSitesApp/'.$this->ayarlar('uploadFolder').'/'.$file;
if ($file=='resimyok.webp'){
$link = 'https://rvcloudstorage.com/webSitesApp/'.$file;
}
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$ch_header = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
return new Response( $response,Response::HTTP_OK, ['content-type' => $ch_header]);
}
/**
* @Route("/rv/wait", name="panel_wait")
*/
public function wait(): Response
{
return $this->redirectToRoute('panel_homepage');
}
/**
* @Route("/rv", name="panel_homepage")
*/
public function index(): Response
{
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$moduller=$qb->select('m.tabloAdi')
->from('App:Modul', 'm')
->getQuery()
->getScalarResult();
$this->get('session')->set('moduller',$moduller);
return $this->render('panel/anasayfa/index.html.twig');
}
/**
* @Route("/rv/cacheClear", name="panel_cacheClear")
*/
public function cacheClear(): Response
{
shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console make:migration");
shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console doctrine:migrations:migrate");
shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console cache:clear");
shell_exec("php ".$_SERVER['DOCUMENT_ROOT']."/bin/console cache:clear --env=prod");
shell_exec("".$_SERVER['DOCUMENT_ROOT']."/chmod 777 -R var/");
shell_exec("".$_SERVER['DOCUMENT_ROOT']."/chmod 777 -R var");
return new Response('');
}
/**
* @Route("/rv/alanAdiGetir", name="panel_alanAdiGetir")
*/
public function alanAdiGetir(): Response
{
$domainBitis = $this->domainSorgula();
$hostingBitis = $this->hostingSorgulama();
return $this->render('panel/anasayfa/alanadi.html.twig',array('tarih'=>$domainBitis,'baslangicTarihi'=>$hostingBitis));
}
/**
* @Route("/rv/goruntulenmeGetir", name="panel_goruntulenmeGetir")
*/
public function goruntulenmeGetir(): Response{
$em = $this->getDoctrine()->getManager();
$suan = new \DateTime('now');
$qb = $em->createQueryBuilder();
$istatistikSG=$qb->select('count(i.id) as toplam')
->from('App:Istatistik', 'i')
->getQuery()
->setResultCacheId('istatistikSG')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$bugun_istatistikSG=$qb->select('count(i.id) as toplam')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->getQuery()
->setResultCacheId('bugun_istatistikSG')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$bugun_istatistikK=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->groupBy('i.ip')
->getQuery()
->setResultCacheId('bugun_istatistikSG')
->setResultCacheLifetime(60)
->getScalarResult();
$dun = $suan->modify('-1 day');
$qb = $em->createQueryBuilder();
$dun_istatistikSG=$qb->select('count(i.id) as toplam')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$dun->format('Y-m-d')." 00:00:00' and i.tarih <= '".$dun->format('Y-m-d')." 23:59:00'")
->getQuery()
->setResultCacheId('dun_istatistikSG')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$dun_istatistikK=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$dun->format('Y-m-d')." 00:00:00' and i.tarih <= '".$dun->format('Y-m-d')." 23:59:00'")
->groupBy('i.ip')
->getQuery()
->setResultCacheId('bugun_istatistikSG')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$tarayici=$qb->select('count(i.id) as toplam, i.tarayici')
->from('App:Istatistik', 'i')
->groupBy('i.tarayici')
->orderBy('toplam','desc')
->getQuery()
->getScalarResult();
$gunlukZiyaretler = [];
$suan = new \DateTime('now');
$qb = $em->createQueryBuilder();
$istatistikSG2=$qb->select('count(i.id) as toplam')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->getQuery()
->setResultCacheId('istatistikSGg')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$istatistikK2=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->groupBy('i.ip')
->getQuery()
->setResultCacheId('istatistikKk')
->setResultCacheLifetime(60)
->getScalarResult();
$gunlukZiyaretler[0]['tarih'] = $suan->format('d/m');
$gunlukZiyaretler[0]['goruntuleme'] = $istatistikSG2[0]['toplam'];
$gunlukZiyaretler[0]['kullanici'] = count($istatistikK2);
for($i=1;$i<15;$i++){
$suan = new \DateTime('now');
$suan = $suan->modify('-'.$i.' day');
$qb = $em->createQueryBuilder();
$istatistikSG2=$qb->select('count(i.id) as toplam')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->getQuery()
->setResultCacheId('istatistikSGg')
->setResultCacheLifetime(60)
->getScalarResult();
$qb = $em->createQueryBuilder();
$istatistikK2=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih >= '".$suan->format('Y-m-d')." 00:00:00' and i.tarih <= '".$suan->format('Y-m-d')." 23:59:00'")
->groupBy('i.ip')
->getQuery()
->setResultCacheId('istatistikKk')
->setResultCacheLifetime(60)
->getScalarResult();
$gunlukZiyaretler[$i]['tarih'] = $suan->format('d/m');
$gunlukZiyaretler[$i]['goruntuleme'] = $istatistikSG2[0]['toplam'];
$gunlukZiyaretler[$i]['kullanici'] = count($istatistikK2);
}
$qb = $em->createQueryBuilder();
$trafik=$qb->select('count(i.id) as toplam, i.url')
->from('App:Istatistik', 'i')
->groupBy('i.url')
->orderBy('toplam','desc')
->setMaxResults(10)
->getQuery()
->getScalarResult();
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));
}
/**
* @Route("/rv/istatistikTemizle", name="panel_istatistikTemizle")
*/
public function istatistikTemizle(): Response {
$em = $this->getDoctrine()->getManager();
$qb=$em->createQueryBuilder();
$qb->delete('App:Istatistik', 'i')
->getQuery()
->execute();
return new Response('');
}
/**
* @Route("/rv/cronKontrol", name="panel_cronKontrol")
*/
public function cronKontrol(): Response{
$em = $this->getDoctrine()->getManager();
$suan = new \DateTime('now');
// DOMAİN VE HOSTİNG İÇİN
$tarihD = $this->domainSorgula();
$tarihH = $this->hostingSorgulama();
$tarihD->modify('-2 day');
$tarihH->modify('-2 day');
if($tarihD->format('d.m.Y')==$suan->format('d.m.Y')){
$konu = 'Alan adı süreniz dolmak üzere!';
$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.';
$bildirim = new Bildirim();
$bildirim->setBaslik($konu);
$bildirim->setMetin($metin);
$bildirim->setTarih(new \DateTime('now'));
$bildirim->setOkuma(0);
$em->persist($bildirim);
$em->flush();
if($this->ayarlar('bEposta')==1){
$message = \Swift_Message::newInstance()
->setSubject($konu.' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
$this->get('mailer')->send($message);
}
}
if($tarihH->format('d.m.Y')==$suan->format('d.m.Y')){
$konu = 'Hosting süreniz dolmak üzere!';
$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.';
$bildirim = new Bildirim();
$bildirim->setBaslik($konu);
$bildirim->setMetin($metin);
$bildirim->setTarih(new \DateTime('now'));
$bildirim->setOkuma(0);
$em->persist($bildirim);
$em->flush();
if($this->ayarlar('bEposta')==1){
$message = \Swift_Message::newInstance()
->setSubject($konu.' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
$this->get('mailer')->send($message);
}
}
$tarihD->modify('-3 day');
$tarihH->modify('-3 day');
if($tarihD->format('d.m.Y')==$suan->format('d.m.Y')){
$konu = 'Alan adı süreniz doluyor!';
$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.';
$bildirim = new Bildirim();
$bildirim->setBaslik($konu);
$bildirim->setMetin($metin);
$bildirim->setTarih(new \DateTime('now'));
$bildirim->setOkuma(0);
$em->persist($bildirim);
$em->flush();
if($this->ayarlar('bEposta')==1){
$message = \Swift_Message::newInstance()
->setSubject($konu.' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
$this->get('mailer')->send($message);
}
}
if($tarihH->format('d.m.Y')==$suan->format('d.m.Y')){
$konu = 'Hosting süreniz doluyor!';
$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.';
$bildirim = new Bildirim();
$bildirim->setBaslik($konu);
$bildirim->setMetin($metin);
$bildirim->setTarih(new \DateTime('now'));
$bildirim->setOkuma(0);
$em->persist($bildirim);
$em->flush();
if($this->ayarlar('bEposta')==1){
$message = \Swift_Message::newInstance()
->setSubject($konu.' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_mail.html.twig',array('konu'=>$konu,'icerik'=>$metin)), 'text/html');
$this->get('mailer')->send($message);
}
}
// HAFTALIK İSTATİSTİK
if ($suan->format('l')=='Monday'){
$suan->modify('-1 day');
$bitis = $suan->format('Y-m-d');
$suan->modify('-6 day');
$baslangic = $suan->format('Y-m-d');
$konu = 'Haftalık Site İstatistiğiniz';
$qb = $em->createQueryBuilder();
$istatistikKullanici=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
->groupBy('i.ip')
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$istatistikSG=$qb->select('i.id')
->from('App:Istatistik', 'i')
->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
->getQuery()
->getScalarResult();
$qb = $em->createQueryBuilder();
$trafik=$qb->select('count(i.id) as toplam, i.url')
->from('App:Istatistik', 'i')
->where("i.tarih between '".$baslangic." 00:00:00' and '".$bitis." 23:59:59'")
->groupBy('i.url')
->orderBy('toplam','desc')
->getQuery()
->getScalarResult();
$message = \Swift_Message::newInstance()
->setSubject($konu.' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta')=>$this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_istatistik_mail.html.twig',array('konu'=>$konu,'istatistikSG'=>$istatistikSG,'istatistikKullanici'=>$istatistikKullanici,'trafik'=>$trafik)), 'text/html');
$this->get('mailer')->send($message);
}
// OKUNMAYAN MESAJLAR
$qb = $em->createQueryBuilder();
$mesajlar=$qb->select('m.kayit,m.tarih')
->from('App:FormKayit', 'm')
->where('m.okuma=0')
->getQuery()
->getScalarResult();
$mesajSayisi = 0 ;
foreach ($mesajlar as $mesaj){
$tt = new \DateTime($mesaj['tarih']);
$xx = date_diff($tt, $suan);
if($xx->format('%a')>1){
$mesajSayisi++;
}
}
if ($mesajSayisi!=0){
if($this->ayarlar('bEposta')==1) {
$konu = 'Okunmamış mesajlarınız var!';
$metin = 'Mesaj kutunuzda ' . $mesajSayisi . ' adet okunmamış mesajınız bulunmaktadır. Okuduysanız okundu olarak işaretlemelisiniz.';
$message = \Swift_Message::newInstance()
->setSubject($konu . ' - RV Yönetim Paneli')
->setFrom(array($this->ayarlar('sistemPosta') => $this->ayarlar('siteAdi')))
->setTo(array($this->ayarlar('sistemPosta') => $this->ayarlar('siteAdi')))
->setBody($this->renderView('panel/cron_mail.html.twig', array('konu' => $konu, 'icerik' => $metin)), 'text/html');
$this->get('mailer')->send($message);
}
}
return new Response('');
}
/**
* @Route("/rv/siteyayimlama", name="panel_siteyayimlama")
*/
public function siteyayimlamaAction(Request $veri) {
return new Response('');
}
}