Datalife Engine Türkçe Yama İndir

Datalife Engine 13.2

  • Geliştirilmiş eklenti sistemi ve performans
  • Gecikmeli görüntü yükleme özelliği
  • Yeni görünmez spam önleme sistemi

Github'dayız

Kendi yapımımız olan modüllerin neredeyse tamamını ücretsiz olarak Github üzerinden yayımladık. Sadece bu modüller için "destek" verilecektir.

We are on Github

Almost all of our own modules have been released free of charge via Github. We support only these modules

Bitiriyoruz

2014 yılından itibaren verdiğimiz hizmeti tam 5 yıl sonra 03.04.2019'da siteyi kapatarak sonlandıracağız.

» » Tpl dosyasına if özelliği ekleme

Tpl dosyasına if özelliği ekleme

Tpl dosyalarında php kodu olan if else yapısını kazandırmak için aşağıdaki eklemeleri yapabiliriz.

engine\classes\templates.class.php dosyasında;
Bul:
function check_module($matches) { 

üstüne ekle;
function check_if($matches){
		if( !defined( 'LOGGED_IN' ) ) {
			$matches[0]=preg_replace('/\{if (.*)\}/i','<?php if($1): ?>',$matches[0]);
			$matches[0]=preg_replace('/\{elseif (.*)\}/i','<?php elseif($1): ?>',$matches[0]);
			$matches[0]=preg_replace('/\{else\}/i','<?php else: ?>',$matches[0]);
			$matches[0]=preg_replace('/\{\/if\}/i','<?php endif; ?>',$matches[0]);
			$matches[0]=preg_replace('/\$(\w*)/i',"\$this->dataValue['\$$1']",$matches[0]);
		}
		else{
			$matches[0]=preg_replace('/\{if (.*)\}/i',"<?php if($1): ?>",$matches[0]);
			$matches[0]=preg_replace('/\{elseif (.*)\}/i','<?php elseif($1): ?>',$matches[0]);
			$matches[0]=preg_replace('/\{else\}/i','<?php else: ?>',$matches[0]);
			$matches[0]=preg_replace('/\{\/if\}/i','<?php endif; ?>',$matches[0]);
			$matches[0]=preg_replace('/\$(\w*)/i','$this->dataValue[\'\$$1\']',$matches[0]);
		}	
		if( !defined( 'LOGGED_IN' ) ) {
			ob_start();
				eval(' ?>'.$matches[0].'<?php ');
			$out = ob_get_clean();
			return $out;	
		}
		else{
			ob_start();
				eval(' ?>'.$matches[0].'<?php ');
			$out = ob_get_clean();
			
			return $out;	
		}				
	}


Bul:
if (strpos ( $this->copy_template, "[declination=" ) !== false) {

Üstüne Ekle;
if (strpos ( $this->copy_template, "{if" ) !== false) {
			
			$this->copy_template =preg_replace_callback ( "#\{if (.+?)\}(.+?)\{\/if\}#is", array( &$this, 'check_if'), $this->copy_template );
		}

Kullanmak için;
{if {title}=="Anasayfa"}
  işlemler
{elseif {title}=="Hakkımızda"}
  işlemler
{else}
  işlemler
{/if}


Yapımcı: akcadogan
Bilgilendirme
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.
63
mrtk34 20 Nisan 2017 21:22
Süper, çalıştı, teşekkürler.
0
8
akcadogan 20 Nisan 2017 18:30
@mrtk34, Birde şu şekilde deneyin; template.class.php dosyasında;
function check_if($matches) {
		
		$regex = '/\{if (.+?)\}\s*(.+?)\s*\{\/if\}/ismg';
		if( !defined( 'LOGGED_IN' ) ) {
			$matches=preg_replace('/\{if (.*)\}/i','<?php if($1): ?>',$matches);
			$matches=preg_replace('/\{elseif (.*)\}/i','<?php elseif($1): ?>',$matches);
			$matches=preg_replace('/\{else\}/i','<?php else: ?>',$matches);
			$matches=preg_replace('/\{\/if\}/i','<?php endif; ?>',$matches);			
		}
		else{
			$matches=preg_replace('/\{if (.*)\}/i',"<?php if($1): ?>",$matches);
			$matches=preg_replace('/\{elseif (.*)\}/i','<?php elseif($1): ?>',$matches);
			$matches=preg_replace('/\{else\}/i','<?php else: ?>',$matches);
			$matches=preg_replace('/\{\/if\}/i','<?php endif; ?>',$matches);			
		}		
		if( !defined( 'LOGGED_IN' ) ) {
			ob_start();
				eval(' ?>'.$matches.'<?php ');
			$matches = ob_get_clean();
				
		}
		else{
			ob_start();
				eval(' ?>'.$matches.'<?php ');
			$matches = ob_get_clean();					
		}
		return $matches;
	}

if (strpos ( $this->copy_template, "{if" ) !== false) { aşağıdaki şekilde değiştir;
if (strpos ( $this->copy_template, "{if" ) !== false) {
			$this->copy_template = $this->check_if($this->copy_template);			
		}
0
63
mrtk34 20 Nisan 2017 18:05
Direkt olarak standart fullstory.tpl sinde kullandım. title orda çalışıyor, başka deneyen oldu mu arkadaşlar ?
0
8
akcadogan 20 Nisan 2017 16:00
@mrtk34,
Kullandığınız tpl dosyasında {title} parse ediliyor olmalı. Mesela main.tpl de. mesela shortstory.tpl de . https://dle-news.com/extras/online/index.html burada hangi tpl dosyasında hangi değişkenleri kullanabileceğiniz dösteriliyor. Kendi değişkenlerinizi yapmak içinde ilgili module dosyasında eklemeleri yapmanız gerekiyor. Örn: shortstory.tpl de {renk} kullanabilmek için /modules/show.short.php de ve /modules/show.custom.php de

$renk="beyaz";
$tpl->set('{renk}',$renk);

tanımlamasını yapmanız gerekiyor.
0
63
mrtk34 20 Nisan 2017 15:40
Test İçin: Aşağıdakini kullandım.

{if {title}=="Anasayfa"}
işlemler
{elseif {title}=="Hakkımızda"}
işlemler
{else}
işlemler
{/if}
0
8
akcadogan 20 Nisan 2017 10:41
@mrtk34,
tpl dosyasında kullandığınız kodu yazar mısınız
0
63
mrtk34 19 Nisan 2017 19:29
Parse error: syntax error, unexpected '14' (T_LNUMBER) in /home/siteadi/public_html/engine/classes/templates.class.php(422) : eval()'d code on line 1

Yukarıdaki şekilde bir hata aldım. Standart adımları uyguladım.
0
8
akcadogan 19 Nisan 2017 10:09
@Hagen,
Kod kısmında farklı ihtiyaçlar için kullanılabilir. Örneğin ben kategorileri div olarak yan yana listeleme de kullandım.

@mrtk34,
kullandığınız tpl(shortstory.tpl, fullstroy.tpl) dosyasında hangi değerler kullanılıyorsa hepsinde kullanabilirsiniz. Ayrıca kod kısmında kendi ekleyeceğiniz değişkenlerde olabilir.
Örn:
show.short.php de $tpl->set('{degiskenim}',$degiskenim); tanımladığınız değişken için;
shortstory.tpl de
{if {degiskenim}>0}
<h2>Değişken sıfırdan büyük</h2>
{else}
<h2>Değişken sıfırdan küçük</h2>
{/if} gibi...
0
63
mrtk34 19 Nisan 2017 09:19
{title} dışında farklı hangi değerler kullanılabilir ?
0
3 777
MaRZoCHi 18 Nisan 2017 23:36
Eklenti için teşekkürler..

--------------------
0
SON EKLENENLER