Giriş - Kayıt
  Makaleler
 
Php'de Smarty Kullanımı
Date 24/02/2008 02:18 Author ishak
RSS
Php'de smarty kullanarak web formu hazırlamak.

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

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

<html>
<head>
  <title>Kayıt ekranı</title>
  <METAcontent=text/html;CHARSET=iso-8859-9 http-equiv=Content-Type>
</head>
<body bgcolor='#008000' text='#00FF00'>

<font size='6' color='#FFFFFF'><center><B><i>KAYIT EKRANI</i></B></center><br></font>
<form action='form.php' method='post'><br><br>

<B><pre>Ad</B>              <input type='text' name='name' value="{$name}" size='15' maxlength='30'><br></pre>
<B><pre>Soyad</B>           <input type='text' name='sname' value="{$sname}" size='15' maxlength='30'><br></pre>
<B>Dogum Tarihi</B>      <font size='2'>  <B>Gün</B> </font>  
<B><pre>Dogum Yeri</B>      <input type='text' name='place' value="{$place}" size='15' maxlength='30'><br>
<B>Baba Adi</B>       <input type='text' name='fname' value="{$fname}" size='15' maxlength='30'><br>
<B>TC no</B>          <input type='text' name='tcno' value="{$tcno}" size='15' maxlength='11'><br></pre>
<B>Cinsiyet</B>      
    {if $gender eq "Bay"}
           <input type='radio' checked name="gender" value="Bay">Bay
           <input type='radio' name="gender" value="Bayan">Bayan<br>
    {elseif $gender eq "Bayan"}
           <input type='radio' name="gender" value="Bay">Bay
           <input type='radio' checked name="gender" value="Bayan">Bayan<br>  
    {else}
               <input type='radio' name="gender" value="Bay">Bay
               <input type='radio' name="gender" value="Bayan">Bayan<br>
     {/if}      
<B><pre>e-mail</B>          <input type='text' name='mail' value="{$mail}" size='15' maxlength='30'><br></pre>
  <br><input type="submit" value="Send"><br>

</form>  
</body>
</html>


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 <condition> }
        html code
{else}
        html code
{/if}


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


Smarty’de if yapısı kullanılırken kullanılabilecek kıyaslamalar:



Tags Smarty   
Yorumlar
Yorum Yok.
Giriş ya da Kayıt Yorum Eklemek İçin!

 

MemHT Portal is a free software released under the GNU/GPL License by Miltenovik Manojlo