smarty template engine
Friday, July 25, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


Bab 5. Pengubah Variabel

Pengubah variabel dapat diterapkan ke variabel, fungsi kustom atau string. Untuk menerapkan pengubah, tetapkan nilai diikuti oleh | (pipa) dan nama pengubah. Pengubah bisa menerima parameter tambahan yang mempengaruhi sifatnya. Parameter ini mengikuti nama pengubah dan dipisahkan oleh : (titik dua). Juga, semua fungsi-php bisa dipakai sebagai pengubah secara implisit (lengkapnya di bawah) dan pengubah bisa digabungkan. .

Teladan 5-1. Contoh pengubah

{* terapkan pengubah ke variabel *}
{$title|upper}

{* pengubah dengan parameter *}
{$title|truncate:40:'...'}

{* terapkan pengubah ke parameter fungsi *}
{html_table loop=$myvar|upper}

{* dengan parameter *}
{html_table loop=$myvar|truncate:40:'...'}

{* terapkan pengubah ke string literal *}
{'foobar'|upper}

{* menggunakan date_format untuk membentuk tanggal saat ini *}
{$smarty.now|date_format:"%Y/%m/%d"}

{* terapkan pengubah ke fungsi kustom *}
{mailto|upper address='smarty@example.com'}

{* menggunakan str_repeat php *}
{'='|str_repeat:80}

{* penghitung php *}
{$myArray|@count}

{* acak pada ip server php *}
{$smarty.server.SERVER_ADDR|shuffle}

(* ini akan dibesarkan dan memotong seluruh array *}
<select name="name_id">
{html_options output=$myArray|upper|truncate:20}
</select>

  • Jika anda menerapkan pengubah ke variabel array daripada variabel nilai tunggal, pengubah akan diterapkan ke setiap nilai dalam array itu. Jika anda benar-benar menginginkan pengubah untuk bekerja pada seluruh array sebagai nilai, anda harus menambah nama pengubah dengan simbol @.

    Contoh: {$articleTitle|@count} - akan mencetak jumlah elemen dalam array $articleTitle menggunakan fungsi php count() sebagai pengubah.

  • Pengubah adalah otomatis diambil dari $plugins_dir atau bisa didaftarkan secara eksplisit dengan fungsi register_modifier(). Yang terakhir berguna untuk berbagi fungsi antara naskah php dan template Smarty.

  • Semua fungsi-php dapat dipakai sebagai pengubah secara implisit, seperti didemonstrasikan dalam contoh di atas. Akan tetapi, menggunakan fungsi-php sebagai pengubah mempunyai dua kesulitan:

    • Pertama - adakalanya urutan parameter-fungsi bukan yang diinginkan. Membentu $foo dengan {"%2.f"|sprintf:$foo} sebenarnya bekerja, tapi perlu lebih intuitif, seperti {$foo|string_format:"%2.f"} yang disediakan oleh distribusi Smarty.

    • Kedua - jika $security dihidupkan, semua fungsi-php yang dipakai sebagai pengubah harus dideklarasikan dalam elemen MODIFIER_FUNCS dari array $security_settings.

Lihat juga register_modifier(), menggabungkan pengubah. dan memperluas smarty dengan plugins

capitalize

Ini dipakai untuk membesarkan huruf pertama dari seluruh kata dalam variable. Mirip dengan fungsi PHP ucfirst().

Posisi ParameterTipeDiperlukanDefaultDeskripsi
1booleanTidakFALSEIni menentukan apakah kata dengan digit akan dibesarkan atau tidak

Teladan 5-2. capitalize

<?php

$smarty
->assign('articleTitle''next x-men film, x3, delayed.');

?>

Di mana template adalah:

{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}

Akan memperlihatkan:

next x-men film, x3, delayed.
Next X-Men Film, x3, Delayed.
Next X-Men Film, X3, Delayed.

Lihat juga lower dan upper




 

credits 

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

All rights reserved.