Files
smarty/docs/id/designers/language-builtin-functions/language-function-insert.xml
2007-09-18 17:45:46 +00:00

160 lines
5.6 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.insert">
<title>{insert}</title>
<para>
Tag <varname>{insert}</varname> bekerja sangat mirip dengan tag <link
linkend="language.function.include"><varname>{include}</varname></link>,
kecuali bahwa tag <varname>{insert}</varname> TIDAK di-cache ketika
<link linkend="caching">caching</link> template dihidupkan. Ia akan
dijalankan pada setiap permintaan template.
</para>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Nama Atribut</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama fungsi insert (insert_name)</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel template yang outputnya akan ditempati</entry>
</row>
<row>
<entry>script</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama naskah php yang disertakan sebelum fungsi insert dipanggil</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>variabel untuk mengirimkan fungsi insert</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Katakanlah anda mempunyai template dengan slot spanduk di atas halaman.
Spanduk bisa berisi campuran HTML, gambar, flash, dll. maka kita tidak bisas
cukup menggunakan link statis di sini, dan kita tidak ingin konten ini
di-cache dengan halaman. Sampailah tag {insert}: template mengetahui
#banner_location_id# dan nilai #site_id# (dikumpulkan dari
<link linkend="config.files">file config</link>), dan perlu untuk
memanggil fungsi guna memperoleh konten spanduk.
</para>
<example>
<title>fungsi {insert}</title>
<programlisting>
{* contoh mengambil spanduk *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
</programlisting>
</example>
<para>
Pada contoh ini, kita menggunakan nama <quote>getBanner</quote> dan
mengirimkan parameter #banner_location_id# dan #site_id#. Smarty akan
mencari fungsi bernama insert_getBanner() dalam aplikasi PHP anda,
mengirimkan nilai #banner_location_id# dan #site_id# sebagai argumen
pertama dalam array asosiatif. Semua nama fungsi {insert} dalam aplikasi
anda harus didahului dengan "insert_" guna menghindari kemungkinan
konflik ruang-nama fungsi. Fungsi insert_getBanner() anda harus melakukan
sesuatu dengan nilai yang dikirimkan dan mengembalikan hasil. Hasil ini
kemudian ditampilkan dalam template di tempat tag {insert}. Dalam contoh
ini, Smarty akan memanggil fungsi ini:
insert_getBanner(array("lid" => "12345","sid" => "67890"));
dan menampilkan hasil yang dikembalikan di tempat tag {insert}.
</para>
<itemizedlist>
<listitem><para>
Jika anda menyertakan atribut <parameter>assign</parameter>, output
dari tag <varname>{insert}</varname> akan ditampati variabel template
ini daripa menjadi output bagi template.
<note>
<para>
Menempatkan output ke variabel template tidak terlalu berguna jika
<link linkend="variable.caching">caching</link> dihidupkan.
</para>
</note>
</para></listitem>
<listitem><para>
Jika anda menyertakan atribut <parameter>script</parameter>, naskah php ini
akan disertakan (hanya sekali) sebelum funsi <varname>{insert}</varname>
dijalankan. Ini kasus di mana fungsi insert mungkin belum ada, dan naskah php
harus disertakan lebih dulu agar ia bekerja.
</para>
<para>
Path dapat berupa absolut, atau relatif ke
<link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>.
Ketika <link linkend="variable.security"><parameter>$security</parameter></link>
dihidupkan, naskah harus berada dalam
<link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>.
</para></listitem>
</itemizedlist>
<para>
Obyek Smarty dikriimkan sebagai argumen kedua. Dengan cara ini anda dapat
mereferensi dan mengubah informasi dalam obyek Smarty dari dalam fungsi
<varname>{insert}</varname>.
</para>
<note>
<title>Catatan Teknis</title>
<para>
Dimungkinkan bagian template tidal di-cache. Jika anda menghidupkan
<link linkend="caching">caching</link>, tag <varname>{insert}</varname>
tidak akan di-cache. Ia akan dijalankan secara dinamis setiap kali
halaman dibuat, bahkan di dalam halaman yang di-cache. Ini bekerja baik
untuk hal-hal seperti spanduk, polling, laporan cuaca, hasil pencarian,
area umpan balik pengguna, dll.
</para>
</note>
<para>
Lihat juga
<link linkend="language.function.include"><varname>{include}</varname></link>
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->