Datalife Engine Türkçe İndir

Datalife Engine 13.0

  • Sitenizi otomatik güncelleyebileceğiniz sistem
  • Tek tıklama ile plugin kurma/kaldırma sistemi
  • Geliştirilmiş site araması ve SEO optimizasyonları

Yeni Başlayanlar

Datalife Engine ile yeni tanışıyorsanız, aşağıdaki linkleri kullanarak sistem işleyişi hakkında bilgi sahibi olabilirsiniz.

Mobil Uygulamamız

Sitemizi kolayca ziyaret edebileceğiniz, forumu takip edip, yorum yazabileceğiniz mobil uygulamamız sizlerle...

Kullanıcılar

Sitenizi geliştirmek istiyorsanız, DLE esnekliğini iyi kullanan ekibimizden destek alabilirsiniz.

Geliştiriciler

Sistemin gelişimine katkıda bulunmak isterseniz, aşağıdaki dallardan uygun olanı seçip bize katılabilirsiniz.

Github'dayız

Kendi yapımımız olan ücretsiz modüllerimizi veya eklentilerimizi tüm geliştiricilere açık olacak şekilde Github üzerinden sunuyoruz.

» » 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.
62
mrtk34 20 Nisan 2017 21:22
Süper, çalıştı, teşekkürler.
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);			
		}
62
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 ?
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.
62
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}
8
akcadogan 20 Nisan 2017 10:41
@mrtk34,
tpl dosyasında kullandığınız kodu yazar mısınız
62
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.
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...
62
mrtk34 19 Nisan 2017 09:19
{title} dışında farklı hangi değerler kullanılabilir ?
1 078
Hagen 19 Nisan 2017 09:05
Merhabalar belkide bunu böyle kullanabilirdiniz.
[aviable=main][/aviable]
[aviable=static][/aviable]

Kodları işinizi görmedi sanırım eklenti için teşekkürler.
3 769
MaRZoCHi 18 Nisan 2017 23:36
Eklenti için teşekkürler..

--------------------
İSTATİSTİKLER