smarty-logo

Smarty’de .tpl Dosyasının İçine Eklenen Dosyanın Önbelleğe Alınmaması

Merhaba arkadaşlar,

Uzun bir zamandır yeni bir yazı ekleyemiyordum. Bugünse Smarty Template Engine hakkında merak edilen bir sorunun çözümünü paylaşıyorum. Çözümü aslında oldukça basit fakat nasıl arama yapacağımı bilmediğim için çözümü bulmak benim içinde zor oldu. Öncelikle “Smarty template engine ismi verilen bu motor ne işe yarıyor?” ondan bahsetmek istiyorum.

Smarty Nedir?

Bu konu hakkında uzun bir açıklama yapmayacağım. Smarty bir template motorudur. Daha güzel bir açıklama isterseniz kullanıcı taraflı kodlamayı ve arka plan kodlamasını birbirinden ayırmanızı sağlayacak muazzam güzellikte bir sınıftır. Güven ATBAKAN daha önce bu konuya bloğunda değinmiştir. Daha detaylı bir açıklama isterseniz buraya tıklayınız.

Tekrar Sorunumuza Dönelim

Öncelikle iki tane tpl dosyası oluşturalım. bunlar index.tpl ve random.tpl dosyaları olsun. random.tpl dosyasını index.tpl dosyasına include edeceğiz. Ve random.tpl dosyasına her zaman rastgele rakamsal değerler gelecek. Bunu nasıl yapacağız görelim..

index.tpl:

<p>Bu index.tpl dosyası random.tpl dosyasını içerir. İşte rastgele sayımız aşağıdaki gibidir:</p>
<p>{include file="template/random.php"}</p>

Şimdi random.tpl dosyasının içeriğini yazalım.. random.tpl:

{$RANDOM}

Şimdi de bunların işleneceği index.php dosyamızı oluşturalım. index.php:

<?php
include "smarty.php"; // Smarty kütüphanesini ekleyelim
# Smarty'yi başlatalım
$smarty = new Smarty;
# Önbelleklemeyi başlatalım
$smarty->caching = true;
$smarty->cache_lifetime = 3600;

# Şimdi random bir sayı seçelim
$rastgele = rand(0,99999);
# Bu random sayıyı smartye tanıtalım :)
$smarty->assign("RANDOM", $rastgele); // Artık tpl dosyasında RANDOM gördüğü yere rastgele değişkenini basacak

# Template dosyasını seçip çalıştıralım
$smarty->display('template/index.tpl');
?>

Şimdi burada problem şu: biz önbellekleme açık olsun istiyoruz. Her seferinde index.tpl yeniden oluşturulmasın istiyoruz fakat random.tpl her seferinde yeniden oluşturulmasını istiyoruz. İşte bunu nasıl yapacağımızı aşağıda gösteriyorum.

{nocache}…{/nocache} kurtarıcı etiketleri

index.tpl dosyasında hatırladığınız gibi include file komutu ile random.tpl’i çekmiştik. Şimdi index.tpl dosyasındaki o komutu nocache etiketleri arasında yazıyoruz:

<p>Bu index.tpl dosyası random.tpl dosyasını içerir. İşte rastgele sayımız aşağıdaki gibidir:</p>
<p>{nocache}{include file="template/random.tpl"}{/nocache}</p>

İşte bu şekilde nocache etiketleri arasına yazdığınız zaman bu kısım önbelleğe alınmayacaktır. Bu bütün her şey için geçerlidir. Değişkenleri nocache arasına yazabilirsiniz. Yani tpl dosyasında değişebilecek herşeyi nocache arasına yazabilirsiniz.

Sorularınızı yorum olarak veya forumdan sorabilirsiniz.

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

Yorum yazma sırası sizde!