Php’de Smarty Kullanımı

Smarty, php de yaptığımız dosyalar için bir template oluşturma aracıdır. Smarty sayesinde birbiri içine gömerek yazdığımız php ve html kodlarını birbirinden ayırıp kodumuzu daha sistemli şekilde yazabiliriz. Bu da bize kolaylık dolayısıyla zaman kazandırır. Smarty dosyaları .tpl uzantılı olarak oluşturulmalıdır.

KURULUMU:



Smarty kullanabilmeniz için php’nin 4.0.6 veya daha üst sürümler gerekmektedir.

http://smarty.php.net/download.php adresinden smarty’i indiriniz.

Şıkıştırılmış halde indirilen dosyaları php klasörünüzün altına açınız.

Daha sonra windowsun altında olan php.ini dosyanıza smarty’i include etmeniz gerekmektedir. Bunun için php.ini dosyasının en altına aşağıdaki satırları eklemeniz yeterlidir.

***********************************
include_path=".;E:\PHP\Smarty-2.6.14\libs"
***********************************


Tabi burada dikkat etmeniz gereken smarty’i kurduğunuz yolu yazmanız gerektiğidir. Biz burada Smarty’i Enin altında PHP’nin altına kurduğumuzdan yukarıda şekilde include ettik.

Daha sonra projenizin bulunduğu dizinin altına dört tane klasör oluşturmamız gerekecek:

templates: Oluşturacağımız tpl uzantılı dosyaların bulunacağı klasör.
template_c: İşlemlerimizin compile edileceği klasör.
config: Konfigrasyon klasörü
cache: Cache klasörü


KULLANIMI:


--------------------------------------------------------------------------------

Aşağıdaki dosyayı kayit.php adıyla kaydediyoruz.

kayit.php

//kayıt formu doldurulurken eksik bilgi girilirse geri dönüldüğünde,girilmiş olan bilgilerin yeniden
//girilmesini önlemek için girilmiş olan bilgileri request ile alırız.

$name=$_REQUEST["name"];
$sname=$_REQUEST["sname"];
$place=$_REQUEST["place"];
$fname=$_REQUEST["fname"];
$tcno=$_REQUEST["tcno"];
$gender=$_REQUEST["gender"];
$mail=$_REQUEST["mail"];

require_once("Smarty.class.php");
$smarty = new Smarty();
$smarty->template_dir="/template";
$smarty->compile_dir="/compile";
$smarty->config_dir="/config";
$smarty->cache_dir="/cache";

$smarty->assign("name",$name);
$smarty->assign("sname",$sname);
$smarty->assign("place",$place);
$smarty->assign("fname",$fname);
$smarty->assign("tcno",$tcno);
$smarty->assign("gender",$gender);
$smarty->assign("mail",$mail);
$smarty->display("kayit.tpl");
?>



Dikkat ettiyseniz yukarıdaki kodda hiçbir html kodu bulunmamaktadır. Oluşturduğumuz kayit.php dosyasına sadece php komutlarını ve gerekli smarty fonksiyonlarını yazıyoruz. Html kodlarını ise oluşturacağımız tpl dosyasına yazacağız. Şimdi bu kodda neler yaptığımızı aşama aşama açıklayalım.

**************************
require_once("Smarty.class.php");
$smarty = new Smarty();
**************************
Smarty kullanmamız için gerekli fonksiyonların bulunduğu smarty dosyasını kodumuza ekliyoruz. Bu dosyada Smarty adında bir class bulunmaktadır ve bu classtan türeteceğmiz nesne ile gerekli fonksiyonları kullanacağız.



****************************
$smarty->template_dir="/template"; //tpl uzantılı dosyaların bulunduğu dizini gösteriyor.
$smarty->compile_dir="/compile"; //compile işlemini yapılacağı dizini gösteriyor.
$smarty->config_dir="/config"; //konfigrasyon işleminin yapılacağı dizini gösteriyor.
$smarty->cache_dir="/cache"; //cache’in yapılacağı dizini gösteriyor
****************************




*****************************
$smarty->assign("name",$name);
$smarty->assign("sname",$sname);
$smarty->assign("place",$place);
$smarty->assign("fname",$fname);
$smarty->assign("tcno",$tcno);
$smarty->assign("gender",$gender);
$smarty->assign("mail",$mail);
*****************************
$smarty->assign() , değişkenlerin ve değerlerin php dosyasından tpl uzantılı dosyaya aktarılmasını sağlayan smarty fonksiyonudur. İlk parametre olarak değişkenin tpl uzantılı dosyada alacağı ismi, ikinci parametre olarak ta alacağı değeri veriyoruz.

***********************
$smarty->display("kayit.tpl");
***********************
Son olarak $smarty->display() fonksiyonu ile hazırlayacağmız tpl uzantılı dosyanın çalışmasını sağlıyoruz.


Şimdide tpl uzantılı dosyamızı oluşturalım. Aşağıdaki dosyayı da templates klasörü içine kayit.tpl olarak kaydedelim.

kayit.tpl



Kayıt ekranı




KAYIT EKRANI






Ad              


Soyad           


Dogum Tarihi Gün
Dogum Yeri      


Baba Adi

TC no

Cinsiyet
{if $gender eq "Bay"}
Bay
Bayan

{elseif $gender eq "Bayan"}
Bay
Bayan

{else}
Bay
Bayan

{/if}
e-mail          












Buradaki kodun html’den biraz farkı vardır. Php dosyasından tpl uzantılı dosyaya değişken gönderilebilmektedir. Html içerisinde smarty kodlarını ve gelen değişkeleri { } bloğu içinde yazmamız gerekmektedir.

Smarty’de tpl uzantılı dosyalarda örnek olarak kullanabileceğimiz komutlar:
if :
{if }
html code
{else}
html code
{/if}


foreach:
//Burada $dizi adlı dizideki değerleri yeni_dizi’ye atayıp
Name = {$yeni_dizi} //dizideki değerler bitene kadar kullanırız.
No user available.

Hiç yorum yok:

 


BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi Bilginin Tek Kaynağı

BilgininAdresi SEO Yarışması BilgininAdresi.NET SEO Yarışması Katılımcısı

="BilgininAdresi SEO Yarismasi"" href= " http://www.bilgininadresi.net">BilgininAdresi.NET SEO Yarismasi Katilimcisi