smarty template engine
Thursday, November 20, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


fetch()

fetch() -- mengembalikan output template

Deskripsi

string fetch ( string template [, string cache_id [, string $compile_id]])

Ini mengembalikan output template daripada menampilkan ouput. Sertakan tipe dan path sumber daya template yang benar. Sebagai parameter opsional ketiga, anda dapat mengirimkan $cache id, lihat seksi caching untuk informasi lebih jauh.

Sebagai parameter opsional ketiga, anda dapat mengoper $compile_id. Ini dalam keadaan di mana anda ingin mengompilasi versi berbeda terhadap template yang sama, seperti memiliki template terpisa dikompilasi untuk bahasa yang berbeda. Penggunaan lainnya untuk $compile_id ialah saat anda menggunakan lebih dari satu $template_dir tapi hanya satu $compile_dir. Set $compile_id secara terpisah untuk setiap $template_dir, atau sebaliknya template dengan nama sama akan saling menimpa. Anda juga bisa menyetel variabel $compile_id sekali daripada mengoperkan ini ke setiap pemanggilan fungsi ini.

Teladan 13-1. fetch()

<?php
include('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching true;

// hanya melakukan panggilan db jika cache tidak ada
if(!$smarty->is_cached('index.tpl')) {

  
// buat dummy untuk beberapa data
  
$address '245 N 50th';
  
$db_data = array(
               
'City' => 'Lincoln',
               
'State' => 'Nebraska',
               
'Zip' => '68502'
             
);

  
$smarty->assign('Name','Fred');
  
$smarty->assign('Address',$address);
  
$smarty->assign($db_data);

}

// tangkap output
$output $smarty->fetch('index.tpl');

// lakukan sesuatu dengan $output di sini
echo $output;
?>

Teladan 13-2. Menggunakan fetch() untuk mengirim sebuah email

Template email_body.tpl

Dear {$contact.name},

Welcome and thankyou for signing up as a member of our user group,

Click on the link below to login with your user name of '{$contact.login_id}'
so you can post in our forums.

http://{$smarty.server.SERVER_NAME}/login/

List master
Some user group

{include file='email_disclaimer.tpl'}

Template email_disclaimer.tpl yang menggunakan pengubah {textformat}.

{textformat wrap=40}
Kecuali anda menamai "{$contact.name}", anda hanya dapat membaca "kata berurut 
ganjil" (setiap kata lainnya diawali dengan yang pertama) atas pesan di atas. 
Jika anda telah melanggarnya, maka anda berhutang ke pengirim 10 GBP untuk
setiap kata berurut genap yang sudah anda baca
{/textformat}

Naskah php menggunakan fungsi PHP mail()

<?php

// dapatkan kontak dari database misalnya memakai pear atau adodb
$query  'select name, email, login_id from contacts where contact_id='.$contact_id;
$contact $db->getRow($sql);
$smarty->assign('contact'$contact);

mail($contact['email'], 'Subject'$smarty->fetch('email_body.tpl'));

?>

Lihat juga {fetch} display(), {eval}, dan template_exists().




 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.