@ini_set('default_charset', 'utf-8');
define('BLSTM_TD',true);
// class hazırlanıyor //
Class BLSTM
{
// değişkenler tanımlanıyor //
/******************************************/
// Tema dosyası aktarılamadığı zaman, ekrana yazılacak iletiyi bu değişkene yazabilirsiniz...
Private $ileti='Dosya Açılamıyor:';
// Tema dosyası aktarılamadığı zaman, ekrana yazılacak iletiyi bu değişkene yazabilirsiniz...
/******************************************/
// Derlenmiş tema dosyalarının nereye kaydedileceğini bu değişkene yazabilirsiniz...
Static $derleme_klasor = "Ayarlar/TemaMotoru/derle/";
// Derlenmiş tema dosyalarının nereye kaydedileceğini bu değişkene yazabilirsiniz...
/******************************************/
// Temaların içerisinde bulunduğu klasörün ismini bu değişkene yazabilirsiniz...
// Kullandığınız Tema dosyasının adını bu değişkene yazabilirsiniz...
Static $tema = "Sablonlar/Tema/";
// Kullandığınız Tema dosyasının adını bu değişkene yazabilirsiniz...
// Temaların içerisinde bulunduğu klasörün ismini bu değişkene yazabilirsiniz...
/******************************************/
// Tema dosyalarının uzantısı belirleniyor...
Static $tema_dosyasi_uzantisi = ".php";
// Tema dosyalarının uzantısı belirleniyor...
/******************************************/
Private $dosya;
/******************************************/
Private $aDosya;
/******************************************/
Private $DosyaKontrolTema;
/******************************************/
Private $TemaDerlemeTarih;
/******************************************/
Private $DosyayiOku;
/******************************************/
Private $BaglantiOlustur;
/******************************************/
Private $DdosyaTarihi;
/******************************************/
Private $Tema;
/******************************************/
Private $PHP;
/******************************************/
// değişkenler tanımlanıyor - sonu //
Static function ayar( $gelen, $deger = null )
{
if( is_array( $gelen ) )
{
foreach( $gelen as $key => $deger )
{
self::ayar( $key, $deger );
}
}
else if( property_exists( __CLASS__, $gelen ) )
{
self::$$gelen = $deger;
}
}
// tema dosyası aktarılıyor //
Public function __construct( $dosya , $hariciDizin='')
{
if( !($dosyaAc = @fopen( self::$tema.$hariciDizin.$dosya.self::$tema_dosyasi_uzantisi,'r' ) ) ) die( $this->ileti.' "'.self::$tema.$hariciDizin.$dosya.self::$tema_dosyasi_uzantisi.'"' );
$dosya_sonuc = @fread( $dosyaAc, filesize( self::$tema.$hariciDizin.$dosya.self::$tema_dosyasi_uzantisi ) );
@fclose( $dosyaAc );
$this->dosya = $dosya; // değişken aktarılıyor //
$this->aDosya = $dosya.'.php'; // ana dosya adı düzenleniyor //
$this->DosyaKontrolTema = filemtime( self::$tema.$hariciDizin.$dosya.self::$tema_dosyasi_uzantisi); // dosya tarihi alınıyor //
// değiştirilecek kodlar //
$KodDeposu = array( /*'\<\?' => '<?','\?\>' => '?>',*/
'\<\{include\=(.*?)\}\>' => '<?php include(\'\\1\'); ?>',
'\<\{if(.*?)\}\>' => '<?php if\\1: ?>',
'\<\{elseif(.*?)\}\>' => '<?php elseif\\1: ?>',
'\<\{else\}\>' => '<?php else: ?>',
'\<\{endif\}\>' => '<?php endif; ?>',
'\<\{while(.*?)\}\>' => '<?php while\\1: ?>',
'\<\{endwhile\}\>' => '<?php endwhile; ?>',
'\<\{foreach(.*?)\}\>' => '<?php foreach\\1: ?>',
'\<\{endforeach\}\>' => '<?php endforeach; ?>',
'\<\{for(.*?)\}\>' => '<?php for\\1: ?>',
'\<\{endfor\}\>' => '<?php endfor; ?>',
'\<\{FonkPrintF=(.*?)\}\>' => '<?php printf\\1; ?>',
'\<\{Fonksiyon=(.*?)\}\>' => '<?php echo \\1; ?>',
'\<\[\$(.*?)\=(.*?)\]\>' => '<?php \$\\1= \\2; ?>',
'\<\{FonkDeg=\((.*?),(.*?)\)\}\>' => '<?php \\1= \\2; ?>',
'\<\{FonkSade=(.*?)\}\>' => '<?php \\1; ?>',
'\<\{FonkKosul=(.*?)\}\>' => '\\1',
'\<\{sorgux\((.*?)\|(.*?)\)\}\>' => '<?php \\1X = $SQL->sorgu("\\2"); \\1 = array(); while(\\1_1 = $SQL->fetch_assoc(\\1X)): \\1[] = \\1_1; endwhile; ?>',
'\<\{sorgu\((.*?)\|(.*?)\)\}\>' => '<?php \\1_2 = $SQL->sorgu("\\2"); \\1 = $SQL->fetch_assoc(\\1_2); ?>',
'\<\{sorgu\((.*?)\)\}\>' => '<?php $SORGU = $SQL->sorgu("\\1"); ?>',
'\<\{\#(.*?)\}\>' => '<?php echo \\1; ?>',
'\<\{\$(.*?)\}\>' => '<?php echo $\\1; ?>',
'\<\{\+\+\((.*?)\)\+\+\((.*?)\)\+\+\}\>' => '<?php \\1 +=(\\2); ?>',
'\<\{\.\.\((.*?)\)\.\.\((.*?)\)\.\.\}\>' => '<?php \\1 .=(\\2); ?>',
'\<\{\+\+\$(.*?)\+\+\}\>' => '<?php $\\1++; ?>',
'\<\{(.*?)\((.*?)\)\}\>' => '<?php echo \\1(\\2); ?>');
// değiştirilecek kodları - sonu //
$this->Tema = $this->DerlemeDosyaOku();
if(($this->DosyaKontrolTema != @$this->Tema[1]))
{
// koşullar, değişkenler ve döngüler dönüştürülüyor //
foreach( $KodDeposu as $anahtar => $deger )
{
$dosya_sonuc = preg_replace( "|$anahtar|si", "$deger", $dosya_sonuc );
}
// koşullar, değişkenler ve döngüler dönüştürülüyor - sonu //
$this->DerlemeYap( $dosya_sonuc ); // dosya fonksiyona aktarılıyor //
$this->DosyaAktar( $this->dosya.'.php' );
}
else
{
if( !( @fopen( self::$derleme_klasor.$this->aDosya,'r' ) ) )
{
// koşullar ve döngüler dönüştürülüyor //
foreach( $KodDeposu as $anahtar => $deger )
{
$dosya_sonuc = preg_replace( "|$anahtar|si", "$deger", $dosya_sonuc );
}
// koşullar ve döngüler dönüştürülüyor - sonu //
$this->DerlemeYap( $dosya_sonuc ); // dosya fonksiyona aktarılıyor //
}
$this->DosyaAktar( $this->dosya.'.php' );
}
}
// tema dosyası aktarılıyor - sonu //
// derleme yapılıyor ve yeni tema dosyası aktarılıyor //
Private function DerlemeYap( $yaz )
{
// tema dosyası ismi kontrol ediliyor //
$this->dosya = $this->DosyaKontrol( $this->dosya );
// tema dosyası ismi kontrol ediliyor - sonu //
// yeni dosya oluşturuluyor //
$dosya = @fopen( self::$derleme_klasor.$this->dosya.'.php','w' ) or die( 'Derleme Dosyası oluşturulamadı!..' );
@fwrite( $dosya,"<?php
/*///////////////////////////////////////////////////////////////////////////////*/
/*/ BLS Tema Motoru (BLS-TM) V2 /*/
/*/-----------------------------------------------------------------------------/*/
/*/ Telif - Copyright (c) 2011 Yücel KAHRAMAN (ByLegenS) /*/
/*/ http://www.netgenel.net - [email protected] /*/
/*/ http://www.phpkf.com /*/
/*/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. /*/
/*///////////////////////////////////////////////////////////////////////////////*/
\$JHJlc2ltMTIzMiA9IG1kNShyYW5kKDExMTExLDk5OTk5OTk5OTkpKTs={$this->DosyaKontrolTema};
?>
{$yaz}"); // dosya içeriği yazılıyor //
@fclose( $dosya ); // dosya kapatılıyor //
}
// derleme yapılıyor ve yeni tema dosyası aktarılıyor - sonu //
Private function DerlemeDosyaOku()
{
$this->DdosyaTarihi= self::$derleme_klasor.$this->dosya.'.php'; // dosya belirleniyor.
$this->BaglantiOlustur[email protected]fopen ($this->DdosyaTarihi,'r'); // bağlantı oluşturuluyor.
$this->DosyayiOku = @fread( $this->BaglantiOlustur, @filesize($this->DdosyaTarihi) ); // dosya okunuyor.
@fclose($this->BaglantiOlustur); // bağlantı kapatılıyor.
preg_match('/\$JHJlc2ltMTIzMiA9IG1kNShyYW5kKDExMTExLDk5OTk5OTk5OTkpKTs\=(.*?)\;/', $this->DosyayiOku, $this->TemaDerlemeTarih); // değişkenler aranıyor.
return $this->TemaDerlemeTarih; // veri döndürülüyor.
}
// dosya akratma işlemi yapılıyor //
Private function DosyaAktar( $tema_isim )
{
extract( $GLOBALS ); // değişkenler tanımlanıyor...
// tema dosyası ismi kontrol ediliyor //
$this->dosya = $this->DosyaKontrol( $tema_isim );
// tema dosyası ismi kontrol ediliyor - sonu //
// yeni dosya çekiliyor //
$tema_isim = ( self::$derleme_klasor.$tema_isim );
if ( !file_exists( $tema_isim ) ) exit();
include( $tema_isim );
// yeni dosya çekiliyor //
}
// dosya akratma işlemi yapılıyor - sonu //
// dosya kontrol ediliyor //
Private function DosyaKontrol( $gelen_dosya )
{
// tema dosyası ismi kontrol ediliyor //
if ( preg_match( '/(https\:\/)/', $gelen_dosya ) == 1 ) die( 'Dosya isminde web adresi bulunmakta!..<br><br>'.$gelen_dosya );
elseif ( preg_match( '/(http\:\/)/', $gelen_dosya ) == 1 ) die( 'Dosya isminde web adresi bulunmakta!..<br><br>'.$gelen_dosya );
elseif ( preg_match( '/(ftp\:\/)/', $gelen_dosya ) == 1 ) die( 'Dosya isminde ftp adresi bulunmakta!..<br><br>'.$gelen_dosya );
else return( $gelen_dosya );
// tema dosyası ismi kontrol ediliyor - sonu //
}
// dosya kontrol ediliyor - sonu //
}
// class hazırlanıyor - sonu //