|
|

|
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().
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
|
|
|