Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Visit www.sport-kick.com for cheap soccer cleats, sneakers and Soccer Jerseys updates

Advertisement

Bab 15. Advanced Features

Obyek

Smarty membolehkan akses ke obyek PHP melalui template. Ada dua cara untuk mengaksesnya.

  • Cara pertama adalah meregistrasi obyek ke template, lalu menaksesnya via sintaks mirip dengan fungsi kustom.

  • Cara kedua adalah fungsi assign() obyek ke template dan mengaksesnya seperti halnya variabel lainnya yang ditempati.

Metode pertama ini merupakan sintaks template lebih baik. Ia juga lebih aman, karena obyek terdaftar dapat dibatasi ke metode atau properti tertentu. AKan tetapi, obyek terdaftar tidak bisa diulang terus menerus atau ditempati dalam obyek arrays, dll. Metode yang anda pilih akan ditentukan oleh kebutuhan anda, tapi gunakan metode pertama bila memungkinkan untuk memelihara sintaks template menjadi minimum.

Jika $security dihidupkan, tidak ada metode privat atau fungsi yang dapat diakses (diawali dengan '_'). Jika ada metode dan properti dari nama yang sama, metode yang akan dipakai.

Anda dapat membatasi metode dan propertis yang bisa diakses dengan mendaftarkannya dalam sebuah array sebagai parameter ketiga registrasi.

Secara standar, parameter dioperkan ke obyek melaluis template, dioperkan dengan cara yang sama fungsi kustom mendapatkannya. Array asosiatif dioper sebagai parameter pertama, dan obyek smarty sebagai yang kedua. Jika anda menginginkan parameter mengoper satu parameter sekali waktu untuk setiap argumen seperti pengoperan parameter obyek tradisional, set parameter registrasi ke empat dengan FALSE.

Parameter opsional ke lima hanya berpengaruh dengan format dijadikan TRUE dan berisi daftar metode yang seharusnya diperlakukan sebagai blok. Itu berarti metode ini mempunyai tag penutup dalam template ({foobar->meth2}...{/foobar->meth2}) dan parameter pada metode mempunyai sinopsis yang sama seperti parameter untuk block-function-plugins: Ia medapatkan empat parameters $params, $content, &$smarty dan &$repeat dan juga bertindak seperti block-function-plugins.

Teladan 15-1. Menggunakan obyek teregistrasi atau ditempatkan

register_object(\'foobar\',$myobj); // Jika kita ingin membatasi akses ke metode atau properti tertentu, daftarkan $smarty->register_object(\'foobar\',$myobj,array(\'meth1\',\'meth2\',\'prop1\')); // Jika anda ingin menggunakan format parameter obyek tradisional, operkan nilai boolean false $smarty->register_object(\'foobar\',$myobj,null,false); // Kita juga menempatkan obyek. assign_by_ref bila memungkinkan. $smarty->assign_by_ref(\'myobj\', $myobj); $smarty->display(\'index.tpl\'); ?>'); ?>

Dan ini adalah bagaimana untuk mengakses obyek anda dalam index.tpl:

{* akses obyek teregistrasi kita*}
{foobar->meth1 p1='foo' p2=$bar}

{* anda juga dapat menempatkan output *}
{foobar->meth1 p1='foo' p2=$bar assign='output'}
the output was {$output}

{* akses obyek kita yang sudah ditempatkan *}
{$myobj->meth1('foo',$bar)}

Lihat juga register_object() dan assign().

Comments
No comments for this page.

Advertisement