Datalife Engine Türkçe İndir

Datalife Engine 12.0

  • Yenilen tasarımıyla admin paneli
  • Yeni 'Meta Etiketler' modülü
  • Kullanıcıları CSV veya Excel olarak dışa aktarım özelliği

Youtube Kanalı

Datalife Engine hakkında sesli anlatımlar yapacağım youtube kanalı için fikirlerinizi ve her türlü görüşlerinizi bekliyorum..

Mobil Uygulamamız

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

Yeni Başlayanlar

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

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
55
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);			
		}

--------------------
55
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.

--------------------
55
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

--------------------
55
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...

--------------------
55
mrtk34 19 Nisan 2017 09:19
{title} dışında farklı hangi değerler kullanılabilir ?
883
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.

--------------------
3374
MaRZoCHi 18 Nisan 2017 23:36
Eklenti için teşekkürler..

--------------------
Bilgi
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.
İSTATİSTİKLER