Typos correction and all translated now.

This commit is contained in:
adezm
2007-09-18 17:45:46 +00:00
parent d501f76fd5
commit 1bff6b9774
155 changed files with 16726 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.escaping">
<title>Escaping Penguraian Smarty</title>
<para>
Ada kalanya diinginkan atau bahkan perlu agar Smarty mengabaikan seksi
atau sebaliknya akan diuraikan. Contoh klasi adalah melengketkan kode
Javascript atau CSS dalam sebuah template. Masalah muncul karena bahasa
tersebut menggunakan karakter { dan } yang juga merupakan
<link linkend="language.function.ldelim">pembatas</link> standar untuk
Smarty.
</para>
<para>
Hal paling sederhana untuk menghindari situasi sekaligus adalah dengan
memisahkan kode Javascript dan CSS anda ke dalam filenya sendiri dan
kemudian menggunakan metode standar HTML untuk mengaksesnya.
</para>
<para>
Menyertakan konten literal dimungkinkan dengan menggunakan blok <link
linkend="language.function.literal">
<varname>{literal}..{/literal}</varname></link>.
Mirip dengan penggunaan entitas HTML, anda bisa memakai <link
linkend="language.function.ldelim"><varname>{ldelim}</varname></link>,<link
linkend="language.function.ldelim"><varname>{rdelim}</varname></link> atau
<link linkend="language.variables.smarty.ldelim">
<varname>{$smarty.ldelim}</varname></link> untuk menampilkan pembatas saat
ini.
</para>
<para>
Seringkali lebih nyaman dengan cukup mengubah <link
linkend="variable.left.delimiter">
<parameter>$left_delimiter</parameter></link> dan
<link linkend="variable.right.delimiter">
<parameter>$right_delimiter</parameter></link> Smarty.
</para>
<example>
<title>contoh mengubah pembatas</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
$smarty->assign('foo', 'bar');
$smarty->assign('name', 'Albert');
$smarty->display('example.tpl');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
Welcome <!--{$name}--> to Smarty
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script>
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.math">
<title>Matematika</title>
<para>
Matematika dapat diterapkan secara langsung ke nilai variabel.
</para>
<example>
<title>contoh matematika</title>
<programlisting>
<![CDATA[
{$foo+1}
{$foo*$bar}
{* beberapa contoh lebih rumit *}
{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
{assign var="foo" value="`$foo+$bar`"}
]]>
</programlisting>
</example>
<para>
Lihat juga fungsi <link linkend="language.function.math">
<varname>{math}</varname></link> untuk persamaan yang kompleks dan
<link linkend="language.function.eval"><varname>{eval}</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
-->

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.syntax.attributes">
<title>Atribut</title>
<para>
Kebanyakan <link linkend="language.syntax.functions">fungsi</link>
memerlukan atribut yang menetapkan atau mengubah perilakunya. Atribut
bagi fungsi Smarty lebih mirip atribut HTML. Nilai statis tidak perlu
ditutup dengan tanda kutip, tapi direkomendasikan untuk string literal.
Variabel bisa juga dipakai, dan tidak boleh dalam tanda kutip.
</para>
<para>
Beberapa atribut memerlukan nilai boolean (&true; atau &false;). Ini dapat
ditetapkan sebagai tanpa tanda kutip <literal>true</literal>,
<literal>on</literal>, dan <literal>yes</literal>, atau
<literal>false</literal>, <literal>off</literal>, dan
<literal>no</literal>.
</para>
<example>
<title>sintaks atribut fungsi</title>
<programlisting>
<![CDATA[
{include file='header.tpl'}
{include file='header.tpl' attrib_name='attrib value'}
{include file=$includeFile}
{include file=#includeFile# title='Smarty is cool'}
{html_select_date display_days=yes}
{mailto address='smarty@example.com'}
<select name='company_id'>
{html_options options=$companies selected=$company_id}
</select>
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.syntax.comments">
<title>Komentar</title>
<para>
Komentar template dikelilingi oleh bintang, dan ditutup oleh tag
<link linkend="variable.left.delimiter">pembatas</link>
seperti:
</para>
<informalexample>
<programlisting>
<![CDATA[
{* ini adalah sebuah komentar *}
]]>
</programlisting>
</informalexample>
<para>
Komentar Smarty TIDAK ditampilkan dalam output template final, tidak seperti
<literal>&lt;!-- HTML comments --&gt;</literal>.
Ini berguna untuk membuat catatan internal dalam template yang tak seorangpun
akan melihatnya ;-)
</para>
<example>
<title>Komentar di dalam template</title>
<programlisting>
<![CDATA[
{* Saya adalah komentar Smarty, Saya tidak ada dalam output terkompilasi *}
<html>
<head>
<title>{$title}</title>
</head>
<body>
{* komentar smarti satu baris lainnya *}
<!-- HTML comment that is sent to the browser -->
{* ini komentar smarty
multi baris
tidak dikirimkan ke browser
*}
{*********************************************************
Blok komentar multi baris dengan blok penghargaan
@ pembuat: bg@example.com
@ pemeliharan support@example.com
@ para: var yang menetapkan gaya blok
@ css: gaya output
**********************************************************}
{* File header dengan logo utama dan lainnya *}
{include file='header.tpl'}
{* Catatan Dev: var $includeFile ditempatkan dalam naskah foo.php *}
<!-- Displays main content block -->
{include file=$includeFile}
{* blok <select> ini mubazir *}
{*
<select name="company">
{html_options options=$vals selected=$selected_id}
</select>
*}
<!-- Show header from affiliate is disabled -->
{* $affiliate|upper *}
{* you cannot nest comments *}
{*
<select name="company">
{* <option value="0">-- none -- </option> *}
{html_options options=$vals selected=$selected_id}
</select>
*}
{* tag cvs untuk template, di bawah 36 HARUS kurs amerika
. akan tetapi ia diubah dalam cvs.. *}
{* &#36;Id: Exp &#36; *}
{* $Id: *}
</body>
</html>
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.syntax.functions">
<title>Fungsi</title>
<para>
Setiap tag Smarty bisa mencetak
<link linkend="language.variables">variabel</link> ataupun memanggil beberapa
fungsi. Ini diproses dan ditampilkan dengan menutupi fungsi dan
<link linkend="language.syntax.attributes">atribut</link>nya
di dalam pembatas seperti:
<literal>{funcname attr1='val1' attr2='val2'}</literal>.
</para>
<example>
<title>sintaks fungsi</title>
<programlisting>
<![CDATA[
{config_load file='colors.conf'}
{include file='header.tpl'}
{insert file='banner_ads.tpl' title='Smarty is cool'}
{if $logged_in}
Welcome, <font color="{#fontColor#}">{$name}!</font>
{else}
hi, {$name}
{/if}
{include file='footer.tpl' ad=$random_id}
]]>
</programlisting>
</example>
<itemizedlist>
<listitem><para>
Kedua <link linkend="language.builtin.functions">fungsi built-in</link>
dan <link linkend="language.custom.functions">fungsi kustom</link>
mempunyai sintaks yang sama di dalam template.
</para></listitem>
<listitem><para>Fungsi built-in adalah
<emphasis role="bold">inner</emphasis> pekerjaan Smarty, seperti
<link linkend="language.function.if"><varname>{if}</varname></link>,
<link linkend="language.function.section"><varname>{section}</varname></link> dan
<link linkend="language.function.strip"><varname>{strip}</varname></link>.
Tidak diperlukan untuk mengubah atau memodifikasinya.
</para></listitem>
<listitem><para>Fungsi kustom adalah fungsi
<emphasis role="bold">tambahan</emphasis>
yang diimplementasikan via <link linkend="plugins">plugins</link>.
Ini dapat diubah sesuai dengan yang anda sukai, atau anda bisa membuat yang
baru,
<link linkend="language.function.html.options">
<varname>{html_options}</varname></link> dan
<link linkend="language.function.popup"><varname>{popup}</varname></link>
adalah contoh dari fungsi kustom.
</para></listitem>
</itemizedlist>
<para>
Lihat juga <link linkend="api.register.function"><varname>register_function()</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
-->

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.syntax.quotes">
<title>Menyertakan Vars dalam Tanda Kutip Ganda</title>
<itemizedlist>
<listitem>
<para>
Smarty akan mengenali <link linkend="language.syntax.variables">variabel</link>
yang <link linkend="api.assign">ditempati</link> yang disertakan dalam
"tanda kutip ganda" selama nama variabel hanya berisi angka, huruf, garis bawah,
dan kurung[].
Lihat <ulink url="&url.php-manual;language.variables">penamaan</ulink>
untuk lebih jelasnya.
</para></listitem>
<listitem><para>
Dengan karakter lainnya, contohnya .titik atau
<literal>$object>referensi</literal>, maka variabel harus dikelilingi oleh
<literal>`tanda kutip mundur`</literal>.
</para></listitem>
<listitem><para>Anda tidak bisa menyertakan
<link linkend="language.modifiers">pengubah</link>, ia harus selalu diterapkan
di luar tanda kutip.
</para></listitem>
</itemizedlist>
<example>
<title>Contoh sintaks</title>
<programlisting>
<![CDATA[
{func var="test $foo test"} <-- melihat $foo
{func var="test $foo_bar test"} <-- melihat $foo_bar
{func var="test $foo[0] test"} <-- melihat $foo[0]
{func var="test $foo[bar] test"} <-- melihat $foo[bar]
{func var="test $foo.bar test"} <-- melihat $foo (bukan $foo.bar)
{func var="test `$foo.bar` test"} <-- melihat $foo.bar
{func var="test `$foo.bar` test"|escape} <-- pengubah di luar tanda kutip!
]]>
</programlisting>
</example>
<example>
<title>Contoh praktis</title>
<programlisting>
<![CDATA[
{* akan mengganti $tpl_name dengan nilai *}
{include file="subdir/$tpl_name.tpl"}
{* tidak mengganti $tpl_name *}
{include file='subdir/$tpl_name.tpl'} <--
{* harus mempunyai tanda kutip mundur karena berisi sebuah . *}
{cycle values="one,two,`$smarty.config.myval`"}
{* sama seperti $module['contact'].'.tpl' dalam naskah php
{include file="`$module.contact`.tpl"}
{* sama seperti $module[$view].'.tpl' dalam naskah php
{include file="$module.$view.tpl"}
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="language.modifier.escape"><varname>escape</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
-->

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.syntax.variables">
<title>Variabel</title>
<para>
Variabel template dimulai dengan tanda $dolar. Ia dapat berisi angka,
huruf dan garis bawah, lebih mirip
<ulink url="&url.php-manual;language.variables">variabel PHP</ulink>.
Anda bisa mereferensi array dengan indeks secara numerik atau non-numerik.
Juga referensi properi dan metode obyek.</para>
<para>
<link linkend="language.config.variables">Variabel file config</link>
adalah kekecualian untuk sintaks $dolar dan sebaliknya direferensi dengan
sekeliling #tanda kris#, atau via variabel
<link linkend="language.variables.smarty.config">
<parameter>$smarty.config</parameter></link>.
</para>
<example>
<title>Variabel</title>
<programlisting>
<![CDATA[
{$foo} <-- menampilkan variabel sederhana (non array/obyek)
{$foo[4]} <-- menampilkan elemen ke-5 dari array berbasis-nol
{$foo.bar} <-- menampilkan nilai kunci "bar" dari sebuah array, mirip dengan PHP $foo['bar']
{$foo.$bar} <-- menampilkan nilai kunci variabel sebuah array, mirip dengan PHP $foo[$bar]
{$foo->bar} <-- menampilkan properti obyek "bar"
{$foo->bar()} <-- menampilkan pengembalian nilai metode obyek "bar"
{#foo#} <-- menampilkan variabel file config "foo"
{$smarty.config.foo} <-- persamaan untuk {#foo#}
{$foo[bar]} <-- sintaks hanya benar dalam pengulangan, lihat {section}
{assign var=foo value='baa'}{$foo} <-- menampilkan "baa", lihat {assign}
Banyak kombinasi lain yang dibolehkan
{$foo.bar.baz}
{$foo.$bar.$baz}
{$foo[4].baz}
{$foo[4].$baz}
{$foo.bar.baz[4]}
{$foo->bar($baz,2,$bar)} <-- mengirimkan parameter
{"foo"} <-- nilai statis dibolehkan
{* menampilkan variabel server "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
]]>
</programlisting>
</example>
<para>Request variables such as <literal>$_GET</literal>,
<literal>$_SESSION</literal>, etc are available via the
reserved <link linkend="language.variables.smarty">
<parameter>$smarty</parameter></link> variable.
</para>
<para>
Lihat juga <link linkend="language.variables.smarty">
<parameter>$smarty</parameter></link>,
<link linkend="language.config.variables">variabel config</link>
<link linkend="language.function.assign"><varname>{assign}</varname></link>
dan
<link linkend="api.assign"><varname>assign()</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
-->

View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.capture">
<title>{capture}</title>
<para>
<varname>{capture}</varname> dipakai untuk mengumpulkan output template antara
tag ke dalam variable daripada menampilkannya. Setiap konten antara
<varname>{capture name='foo'}</varname> dan <varname>{/capture}</varname>
yang dikumpulkan ke dalam variabel ditetapkan dalam atribut
<parameter>name</parameter>.
</para>
<para>Konten yang ditangkap dapat digunakan dalam template dari variabel <link
linkend="language.variables.smarty.capture"><parameter>$smarty.capture.foo</parameter></link>
di mana <quote>foo</quote> adalah nilai yang dikirimkan dalam atribut <parameter>name</parameter>.
Jika anda tidak menyertakan atribut <parameter>name</parameter>, maka
<quote>default</quote> akan dipakai sebagai nama misalnya
<parameter>$smarty.capture.default</parameter>.
</para>
<para><varname>{capture}'s</varname> dapat diulang-ulang.
</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>Attribute Name</entry>
<entry>Type</entry>
<entry>Required</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>no</entry>
<entry><emphasis>default</emphasis></entry>
<entry>The name of the captured block</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>The variable name where to assign the captured output to</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<title>Perhatian</title>
<para>
Harap berhati-hati ketika menangkap output <link
linkend="language.function.insert"><varname>{insert}</varname></link>. Jika
anda menghidupkan
<link linkend="caching"><parameter>$caching</parameter></link>
dan anda mempunyai perintah
<link linkend="language.function.insert"><varname>{insert}</varname></link>
yang anda harapkan untuk dijalankan di dalam konten yang di-cache, jangan
menangkap konten ini.
</para>
</note>
<para>
<example>
<title>{capture} dengan atribut nama</title>
<programlisting>
<![CDATA[
{* kita tidak ingin mencetak tag div kecuali konten yang ditampilkan *}
{capture name=banner}
{include file='get_banner.tpl'}
{/capture}
{if $smarty.capture.banner ne ''}
<div id="banner">{$smarty.capture.banner}</div>
{/if}
]]>
</programlisting>
</example>
<example>
<title>{capture} ke dalam variabel template</title>
<para>Contoh ini juga memperlihatkan fungsi
<link linkend="language.function.popup"><varname>{popup}</varname></link>
</para>
<programlisting>
<![CDATA[
{capture name=some_content assign=popText}
Server adalah {$smarty.server.SERVER_NAME|upper} pada {$smarty.server.SERVER_ADDR}<br>
IP anda adalah {$smarty.server.REMOTE_ADDR}.
{/capture}
<a href="#" {popup caption='Info Server' text=$popText}>bantuan</a>
]]>
</programlisting>
</example>
</para>
<para>
Lihat juga
<link
linkend="language.variables.smarty.capture"><parameter>$smarty.capture</parameter></link>,
<link linkend="language.function.eval"><varname>{eval}</varname></link>,
<link linkend="language.function.fetch"><varname>{fetch}</varname></link>,
<link linkend="api.fetch"><varname>fetch()</varname></link>
dan <link linkend="language.function.assign"><varname>{assign}</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
-->

View File

@@ -0,0 +1,183 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.config.load">
<title>{config_load}</title>
<para>
<varname>{config_load}</varname> dipakai untuk mengambil
<link linkend="language.config.variables"><parameter>#variables#</parameter></link>
konfig dari <link linkend="config.files">file konfigurasi</link> ke dalam
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>Attribute Name</entry>
<entry>Type</entry>
<entry>Required</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>file</entry>
<entry>string</entry>
<entry>Yes</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama file config untuk disertakan</entry>
</row>
<row>
<entry>section</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama seksi untuk diambil</entry>
</row>
<row>
<entry>scope</entry>
<entry>string</entry>
<entry>no</entry>
<entry><emphasis>lokal</emphasis></entry>
<entry>
Bagaimana lingkup variabel yang diambil diperlakukan, yang harus berupa
lokal, parent atau global. Lokal berarti variabel diambil ke dalam konteks
template lokal. parent berarti variabel diambil ke dalam konteks lokal
dan template leluhur yang memanggilnya.
global berarti variabel tersedia bagi seluruh template.
</entry>
</row>
<row>
<entry>global</entry>
<entry>boolean</entry>
<entry>No</entry>
<entry><emphasis>No</emphasis></entry>
<entry>
Apakah variabel terlihat ke template leluhurnya atau tidak,
sama seperti scope=parent. CATATAN: Atribut ini tidak dipakai lagi
oleh atribut scope, tapi masih didukugn. Jika scope disertakan,
nilai ini diabaikan.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{config_load}</title>
<para>
File <filename>example.conf</filename>.
</para>
<programlisting>
<![CDATA[
#ini komentar file config
# variabel global
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00
#seksi variabel kustomer
[Customer]
pageTitle = "Customer Info"
]]>
</programlisting>
<para>dan template</para>
<programlisting>
<![CDATA[
{config_load file="example.conf"}
<html>
<title>{#pageTitle#|default:"No title"}</title>
<body bgcolor="{#bodyBgColor#}">
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
<tr bgcolor="{#rowBgColor#}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
]]>
</programlisting>
</example>
<para>
<link linkend="config.files">File Config</link>
dapat juga berisi seksi. Anda bisa mengambil variabel dari dalam seksi
dengan menambahkan atribut <parameter>section</parameter>. Catatan bahwa
variabel config global selalu diambil bersamaan dengan variabel seksi,
dan variabel seksi bernama-sama menimpa global.
</para>
<note>
<para>
<emphasis>Seksi</emphasis> file config dan fungsi template built-in
memanggil <link linkend="language.function.section"><varname>{section}</varname></link>
tidak ada kaitannya dengan yang lain, itu terjadi untuk berbagi konvensi
penamaan umum.
</para>
</note>
<example>
<title>function {config_load} dengan seksi</title>
<programlisting>
<![CDATA[
{config_load file='example.conf' section='Customer'}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
<tr bgcolor="{#rowBgColor#}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
]]>
</programlisting>
</example>
<para>
Lihat <link linkend="variable.config.overwrite"><parameter>$config_overwrite</parameter></link>
untuk membuat arrays dari variabel file config.
</para>
<para>
Lihat juga halaman <link linkend="config.files">config files</link>, halaman
<link linkend="language.config.variables">config variables</link>,
<link linkend="variable.config.dir"><parameter>$config_dir</parameter></link>,
<link linkend="api.get.config.vars"><varname>get_config_vars()</varname></link>
dan
<link linkend="api.config.load"><varname>config_load()</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
-->

View File

@@ -0,0 +1,459 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.foreach">
<title>{foreach},{foreachelse}</title>
<para>
<varname>{foreach}</varname> dipakai untuk mengulang terus-menerus melalui
<emphasis role="bold">array asosiatif</emphasis> juga array-diindeks secara
numerik, tidak seperti <link linkend="language.function.section"><varname>{section}</varname></link>
yang untuk mengulang melalui <emphasis role="bold">hanya array-diindeks secara numerik</emphasis>.
Sintaks untuk
<varname>{foreach}</varname> jauh lebih mudah daripada
<link linkend="language.function.section"><varname>{section}</varname></link>,
tapi sebagai imbalannya <emphasis role="bold">hanya bisa dipakai untuk array
tunggal</emphasis>. Setiap tag <varname>{foreach}</varname> harus
dipasangkan dengan tag <varname>{/foreach}</varname> penutup.
</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>Attribute Name</entry>
<entry>Type</entry>
<entry>Required</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>from</entry>
<entry>array</entry>
<entry>Yes</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array yang anda ulang terus</entry>
</row>
<row>
<entry>item</entry>
<entry>string</entry>
<entry>Yes</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel yang jadi elemen saat ini</entry>
</row>
<row>
<entry>key</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel yang saat ini jadi kunci</entry>
</row>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>No</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama perulangan foreach untuk mengakses properti</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut yang diperlukan adalah <parameter>from</parameter> dan <parameter>item</parameter>.
</para></listitem>
<listitem><para>
<parameter>Name</parameter> dari pengulangan <varname>{foreach}</varname>
bisa apa saja yang anda sukai, terdiri dari huruf, angka dan garis bawah,
seperti
<ulink url="&url.php-manual;language.variables">variabel PHP</ulink>.
</para></listitem>
<listitem><para>
Pengulangan <varname>{foreach}</varname> bisa diulang terus, dan nama
<varname>{foreach}</varname> yang diulang harus unik dari yang lain.
</para></listitem>
<listitem><para>
Atribut <parameter>from</parameter>, biasanya sebuah array nilai,
menetapkan jumlah berapa kali <varname>{foreach}</varname> akan diulang.
</para></listitem>
<listitem><para>
<varname>{foreachelse}</varname> dijalankan ketika tidak ada nilai dalam
variabel <parameter>from</parameter>.
</para></listitem>
<listitem><para>
Pengulangan <varname>{foreach}</varname> juga memiliki variabelnya
sendiri yang menangani properti. Ini diakses dengan:
<link linkend="language.variables.smarty.loops">
<parameter>{$smarty.foreach.name.property}</parameter></link> dengan
<quote>name</quote> menjadi atribut
<parameter>name</parameter>.
</para>
<note>
<title>Catatan</title>
<para>Atribut <parameter>name</parameter> hanya diperlukan saat anda ingin
mengakses properti <varname>{foreach</varname>}, tidak seperti
<link linkend="language.function.section"><varname>{section}</varname></link>.
Mengakses properti <varname>{foreach}</varname> dengan <parameter>name</parameter>
tidak terdefinisi tidak menimbulkan kesalahan, tapi sebaliknya
mengakibatkan hasil yang tidak diinginkan.
</para>
</note>
</listitem>
<listitem><para>
Properti <varname>{foreach}</varname> adalah
<link linkend="foreach.property.index"><parameter>index</parameter></link>,
<link linkend="foreach.property.iteration"><parameter>iteration</parameter></link>,
<link linkend="foreach.property.first"><parameter>first</parameter></link>,
<link linkend="foreach.property.last"><parameter>last</parameter></link>,
<link linkend="foreach.property.show"><parameter>show</parameter></link>,
<link linkend="foreach.property.total"><parameter>total</parameter></link>.
</para></listitem>
</itemizedlist>
<example>
<title>Atribut <parameter>item</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array(1000, 1001, 1002);
$smarty->assign('myArray', $arr);
?>
]]>
</programlisting>
<para>Template untuk ditampilkan <parameter>$myArray</parameter> dalam daftar tidak-berurut</para>
<programlisting>
<![CDATA[
<ul>
{foreach from=$myArray item=foo}
<li>{$foo}</li>
{/foreach}
</ul>
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<ul>
<li>1000</li>
<li>1001</li>
<li>1002</li>
</ul>
]]>
</screen>
</example>
<example>
<title>Mendemonstrasikan atribut <parameter>item</parameter> dan <parameter>key</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array(9 => 'Tennis', 3 => 'Swimming', 8 => 'Coding');
$smarty->assign('myArray', $arr);
?>
]]>
</programlisting>
<para>Template untuk ditampilkan <parameter>$myArray</parameter> sebagai
pasangan kunci/nilai, seperti
<ulink url="&url.php-manual;foreach"><varname>foreach</varname></ulink>
PHP.</para>
<programlisting>
<![CDATA[
<ul>
{foreach from=$myArray key=k item=v}
<li>{$k}: {$v}</li>
{/foreach}
</ul>
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<ul>
<li>9: Tennis</li>
<li>3: Swimming</li>
<li>8: Coding</li>
</ul>
]]>
</screen>
</example>
<example>
<title>{foreach} dengan asosiatif atribut <parameter>item</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
$items_list = array(23 => array('no' => 2456, 'label' => 'Salad'),
96 => array('no' => 4889, 'label' => 'Cream')
);
$smarty->assign('items', $items_list);
?>
]]>
</programlisting>
<para>Template untuk ditampilkan <parameter>$items</parameter> dengan
<parameter>$myId</parameter> dalam url</para>
<programlisting>
<![CDATA[
<ul>
{foreach from=$items key=myId item=i}
<li><a href="item.php?id={$myId}">{$i.no}: {$i.label}</li>
{/foreach}
</ul>
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<ul>
<li><a href="item.php?id=23">2456: Salad</li>
<li><a href="item.php?id=96">4889: Cream</li>
</ul>
]]>
</screen>
</example>
<example>
<title>{foreach} dengan pengulangan <parameter>item</parameter> dan <parameter>key</parameter></title>
<para>Menempatkan array ke Smarty, kunci berisi kunci untuk setiap nilai
yang diulang.</para>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('contacts', array(
array('phone' => '1',
'fax' => '2',
'cell' => '3'),
array('phone' => '555-4444',
'fax' => '555-3333',
'cell' => '760-1234')
));
?>
]]>
</programlisting>
<para>Template yang menampilkan <parameter>$contact</parameter>.</para>
<programlisting>
<![CDATA[
{foreach name=outer item=contact from=$contacts}
<hr />
{foreach key=key item=item from=$contact}
{$key}: {$item}<br />
{/foreach}
{/foreach}
]]>
</programlisting>
<para>
Contoh diatas akan menampilkan:
</para>
<screen>
<![CDATA[
<hr />
phone: 1<br />
fax: 2<br />
cell: 3<br />
<hr />
phone: 555-4444<br />
fax: 555-3333<br />
cell: 760-1234<br />
]]>
</screen>
</example>
<example>
<title>Contoh database dengan {foreachelse}</title>
<para>Contoh database (seperti PEAR atau ADODB) dari naskah pencarian, hasil query
ditempatkan ke Smarty</para>
<programlisting role="php">
<![CDATA[
<?php
$search_condition = "where name like '$foo%' ";
$sql = 'select contact_id, name, nick from contacts '.$search_condition.' order by name';
$smarty->assign('results', $db->getAssoc($sql) );
?>
]]>
</programlisting>
<para>Template yang menampilkan <quote>None found</quote>
jika tidak ada hasil dengan <varname>{foreachelse}</varname>.</para>
<programlisting>
<![CDATA[
{foreach key=cid item=con from=$results}
<a href="contact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
{foreachelse}
No items were found in the search
{/foreach}
]]>
</programlisting>
</example>
<sect2 id="foreach.property.index">
<title>.index</title>
<para>
<parameter>index</parameter> berisi indeks array saat ini, dimulai dengan nol.
</para>
<example>
<title>contoh <parameter>index</parameter></title>
<programlisting role="php">
<![CDATA[
{* Blok header ditampilkan setiap lima baris *}
<table>
{foreach from=$items key=myId item=i name=foo}
{if $smarty.foreach.foo.index % 5 == 0}
<tr><th>Title</th></tr>
{/if}
<tr><td>{$i.label}</td></tr>
{/foreach}
</table>
]]>
</programlisting>
</example>
</sect2>
<sect2 id="foreach.property.iteration">
<title>.iteration</title>
<para>
<parameter>iteration</parameter> berisi iterasi perulangan saat ini dan
selalu dimulai dari satu, tidak seperti
<link linkend="foreach.property.index"><parameter>indeks</parameter></link>.
Ia bertambah satu setiap kali iterasi.
</para>
<example>
<title>contoh <parameter>iteration</parameter> dan <parameter>indeks</parameter></title>
<programlisting role="php">
<![CDATA[
{* ini akan menampilkan 0|1, 1|2, 2|3, ... dst *}
{foreach from=$myArray item=i name=foo}
{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
{/foreach}
]]>
</programlisting>
</example>
</sect2>
<sect2 id="foreach.property.first">
<title>.first</title>
<para>
<parameter>first</parameter> adalah &true; jika iterasi <varname>{foreach}</varname>
saat ini adalah yang awal.
</para>
<example>
<title>contoh properti <parameter>first</parameter></title>
<programlisting role="php">
<![CDATA[
{* tampilkan LATEST pada item pertama, sebaliknya id *}
<table>
{foreach from=$items key=myId item=i name=foo}
<tr>
<td>{if $smarty.foreach.foo.first}LATEST{else}{$myId}{/if}</td>
<td>{$i.label}</td>
</tr>
{/foreach}
</table>
]]>
</programlisting>
</example>
</sect2>
<sect2 id="foreach.property.last">
<title>.last</title>
<para>
<parameter>last</parameter> disetel &true; jika iterasi
<varname>{foreach}</varname> saat ini adalah yang terakhir.
</para>
<example>
<title>contoh properti <parameter>last</parameter></title>
<programlisting role="php">
<![CDATA[
{* Tambah garis horisontal di akhir daftar *}
{foreach from=$items key=part_id item=prod name=products}
<a href="#{$part_id}">{$prod}</a>{if $smarty.foreach.products.last}<hr>{else},{/if}
{foreachelse}
... konten ...
{/foreach}
]]>
</programlisting>
</example>
</sect2>
<sect2 id="foreach.property.show">
<title>.show</title>
<para>
<parameter>show</parameter> dipakai sebagai parameter untuk <varname>{foreach}</varname>.
<parameter>show</parameter> adalah nilai boolean. Jika &false;,
<varname>{foreach}</varname> tidak akan ditampilkan. Jika terdapat
<varname>{foreachelse}</varname>, akan ditampilkan secara selang-seling.
</para>
</sect2>
<sect2 id="foreach.property.total">
<title>.total</title>
<para>
<parameter>total</parameter> berisi jumlah iterasi yang akan diulang
<varname>{foreach}</varname>.
Ini dapat digunakan di dalam atau setelah <varname>{foreach}</varname>.
</para>
<example>
<title>contoh properti <parameter>total</parameter></title>
<programlisting role="php">
<![CDATA[
{* menampilkan baris yang dikembalikan di akhir *}
{foreach from=$items key=part_id item=prod name=foo}
{$prod.name><hr/>
{if $smarty.foreach.foo.last}
<div id="total">{$smarty.foreach.foo.total} items</div>
{/if}
{foreachelse}
... something else ...
{/foreach}
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="language.function.section"><varname>{section}</varname></link>
dan <link linkend="language.variables.smarty.loops"><parameter>$smarty.foreach</parameter></link>.
</para>
</sect2>
</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
-->

View File

@@ -0,0 +1,263 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.if">
<title>{if},{elseif},{else}</title>
<para>
Pernyataan <varname>{if}</varname> dalam Smarty memiliki kesamaan
fleksibilitas seperti pernyataan PHP <ulink url="&url.php-manual;if">if</ulink>,
dengan beberapa fitur yang ditambahkan untuk mesin template.
Setiap <varname>{if}</varname> harus dipasangkan dengan
<varname>{/if}</varname> yang sama. <varname>{else}</varname> dan
<varname>{elseif}</varname> juga dibolehkan. Semua kondisional dan fungsi PHP
dikenal, seperti <emphasis>||</emphasis>, <emphasis>or</emphasis>,
<emphasis>&amp;&amp;</emphasis>, <emphasis>and</emphasis>,
<emphasis>is_array()</emphasis>, dll.
</para>
<para>
Jika <link linkend="variable.security"><parameter>$security</parameter></link>
dihidupkan, hanya fungsi PHP dari array <emphasis>IF_FUNCS</emphasis> dari <link
linkend="variable.security.settings"><parameter>$security_settings</parameter></link>
yang dibolehkan.
</para>
<para>
Berikut adalah daftar kualifikator yang dikenal yang harus dipisahkan dari
elemen yang dikelilingi oleh spasi. Catatan bahwa item terdaftar dalam
[kurung] adalah opsional. Persamaan PHP ditampilkan bila memungkinkan.
</para>
<informaltable frame="all">
<tgroup cols="4">
<colspec colname="qualifier" align="center" />
<colspec colname="alternates" align="center" />
<colspec colname="meaning" />
<colspec colname="example" />
<colspec colname="php" />
<thead>
<row>
<entry>Kualifikator</entry>
<entry>Pembeda</entry>
<entry>Contoh Sintaks</entry>
<entry>Arti</entry>
<entry>Persamaan PHP</entry>
</row>
</thead>
<tbody>
<row>
<entry>==</entry>
<entry>eq</entry>
<entry>$a eq $b</entry>
<entry>sama</entry>
<entry>==</entry>
</row>
<row>
<entry>!=</entry>
<entry>ne, neq</entry>
<entry>$a neq $b</entry>
<entry>tidak sama</entry>
<entry>!=</entry>
</row>
<row>
<entry>&gt;</entry>
<entry>gt</entry>
<entry>$a gt $b</entry>
<entry>lebih besar dari</entry>
<entry>&gt;</entry>
</row>
<row>
<entry>&lt;</entry>
<entry>lt</entry>
<entry>$a lt $b</entry>
<entry>kurang dari</entry>
<entry>&lt;</entry>
</row>
<row>
<entry>&gt;=</entry>
<entry>gte, ge</entry>
<entry>$a ge $b</entry>
<entry>lebih besar atau sama</entry>
<entry>&gt;=</entry>
</row>
<row>
<entry>&lt;=</entry>
<entry>lte, le</entry>
<entry>$a le $b</entry>
<entry>kurang dari atau sama</entry>
<entry>&lt;=</entry>
</row>
<row>
<entry>===</entry>
<entry></entry>
<entry>$a === 0</entry>
<entry>periksa identitas</entry>
<entry>===</entry>
</row>
<row>
<entry>!</entry>
<entry>not</entry>
<entry>not $a</entry>
<entry>negasi (unari)</entry>
<entry>!</entry>
</row>
<row>
<entry>%</entry>
<entry>mod</entry>
<entry>$a mod $b</entry>
<entry>modulus</entry>
<entry>%</entry>
</row>
<row>
<entry>is [not] div by</entry>
<entry></entry>
<entry>$a is not div by 4</entry>
<entry>bisa dibagi dengan</entry>
<entry>$a % $b == 0</entry>
</row>
<row>
<entry>is [not] even</entry>
<entry></entry>
<entry>$a is not even</entry>
<entry>[bukan] angka genap (unari)</entry>
<entry>$a % 2 == 0</entry>
</row>
<row>
<entry>is [not] even by</entry>
<entry></entry>
<entry>$a is not even by $b</entry>
<entry>tingkat pengelompokan [bukan] genap</entry>
<entry>($a / $b) % 2 == 0</entry>
</row>
<row>
<entry>is [not] odd</entry>
<entry></entry>
<entry>$a is not odd</entry>
<entry>[bukan] angka ganjil (unari)</entry>
<entry>$a % 2 != 0</entry>
</row>
<row>
<entry>is [not] odd by</entry>
<entry></entry>
<entry>$a is not odd by $b</entry>
<entry>[bukan] pengelompokan ganjil</entry>
<entry>($a / $b) % 2 != 0</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>pernyataan {if}</title>
<programlisting>
<![CDATA[
{if $name eq 'Fred'}
Welcome Sir.
{elseif $name eq 'Wilma'}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
{* contoh dengan logika "or" *}
{if $name eq 'Fred' or $name eq 'Wilma'}
...
{/if}
{* sama seperti di atas *}
{if $name == 'Fred' || $name == 'Wilma'}
...
{/if}
{* kurung buka/tutup dibolehkan *}
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
...
{/if}
{* anda juga bisa menyertakan fungsi panggil php *}
{if count($var) gt 0}
...
{/if}
{* periksa array. *}
{if is_array($foo) }
.....
{/if}
{* periksa untuk yang bukan null. *}
{if isset($foo) }
.....
{/if}
{* uji apakah nilai genap atau ganjil *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}
{* uji apakah var bisa dibagi dengan 4 *}
{if $var is div by 4}
...
{/if}
{*
uji apakah var genap, dikelompokan oleh dua. misalnya,
0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, dst.
*}
{if $var is even by 2}
...
{/if}
{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
{if $var is even by 3}
...
{/if}
]]>
</programlisting>
</example>
<example>
<title>contoh {if} berikutnya</title>
<programlisting>
<![CDATA[
{if isset($name) && $name == 'Blog'}
{* lakukan sesuatu *}
{elseif $name == $foo}
{* lakukan sesuatu *}
{/if}
{if is_array($foo) && count($foo) > 0)
{* lakukan untuk setiap pengulangan *}
{/if}
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.include.php">
<title>{include_php}</title>
<note>
<title>Catatan Teknis</title>
<para>
<varname>{include_php}</varname> tidak lagi dipakai oleh Smarty, anda bisa
melakukan fungsionalitas yang sama melalui fungsi template kustom.
Satu-satunya alasan untuk menggunakan <varname>{include_php}</varname>
adalah jika anda benar-benar perlu untuk mengkarantina fungsi php jauh
dari direktori
<link linkend="variable.plugins.dir"><filename>plugins/</filename></link>
atau kode aplikasi anda. Lihat <link
linkend="tips.componentized.templates">contoh mengkomponenkan template
</link> agar lebih jelas.
</para>
</note>
<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>file</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama file php untuk disertakan</entry>
</row>
<row>
<entry>once</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Apakah file php perlu disertakan lebih dari sekali atau tidak
jika disertakan berkali-kali</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel yang outputnya akan ditempati oleh include_php</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Tag <varname>{include_php}</varname> dipakai untuk menyertakan naskah php
dalam template anda.
Jika <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan,
maka naskah php harus ditempatkan dalam path <link
linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>.
Tag <varname>{include_php}</varname> harus mempunyai atribut
<parameter>file</parameter>, yang berisi path ke file php yang disertakan, baik
relatif ke <link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>,
ataupun path absolut.
</para>
<para>
Standarnya, file php hanya disertakan sekali meskipun dipanggil
berkali-kali dalam template. Anda dapat menetapkan bahwa ia harus
disertakan setiap kali dengan atribut <parameter>once</parameter>.
Setelan once ke &false; akan menyertakan naskah php setiap kali ia
disertakan dalam template.
</para>
<para>
Secara opsional anda bisa mengirimkan atribut <parameter>assign</parameter>,
yang akan menetapkan nama variabel yang outputnya akan
<varname>{include_php}</varname> tempati daripada ditampilkan.
</para>
<para>
Obyek smarty tersedia sebagai <parameter>$this</parameter> di dalam
naskah PHP yang anda sertakan.
</para>
<example>
<title>fungsi {include_php}</title>
<para>File <filename>load_nav.php</filename>:</para>
<programlisting role="php">
<![CDATA[
<?php
// ambil variabel dari mysql db dan tempatkan ke template
require_once('database.class.php');
$db = new Db();
$db->query('select url, name from navigation order by name');
$this->assign('navigation', $db->getRows());
?>
]]>
</programlisting>
<para>
di mana template adalah:
</para>
<programlisting>
<![CDATA[
{* path absolut, atau relatif ke $trusted_dir *}
{include_php file='/path/to/load_nav.php'}
{foreach item='nav' from=$navigation}
<a href="{$nav.url}">{$nav.name}</a><br />
{/foreach}
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="language.function.include"><varname>{include}</varname></link>,
<link linkend="variable.security"><parameter>$security</parameter></link>,
<link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>,
<link linkend="language.function.php"><varname>{php}</varname></link>, <link
linkend="language.function.capture"><varname>{capture}</varname></link>, <link
linkend="template.resources">sumber daya</link> dan <link
linkend="tips.componentized.templates">mengkomponenkan template</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
-->

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.include">
<title>{include}</title>
<para>
Tag <varname>{include}</varname> dipakai untuk menyertakan template lain
dalam template saat ini. Setiap variabel yang tersedia dalam template
saat ini juga tersedia di dalam template yang disertakan.
</para>
<itemizedlist>
<listitem><para>
Tag <varname>{include}</varname> harus mempunyai atribut
<parameter>file</parameter> yang berisi path sumber daya template.
</para></listitem>
<listitem><para>
Menyetel atribut opsional <parameter>assign</parameter> menetapkan variabel
template yang menempatkan <varname>{include}</varname> ke output, daripada
ditampilkan. Mirip dengan
<link linkend="language.function.assign"><varname>{assign}</varname></link>.
</para></listitem>
<listitem><para>
Variabel bisa dikirimkan ke template yang disertakan sebagai
<link linkend="language.syntax.attributes">atribut</link>.
Setiap variabel yang dikirimkan secara eksplisit ke template
yang disertakan hanya tersedia di dalam lingkup file yang
disertakan. Variabel atribut menimpa variabel template saat
ini, dalam hal ketika bernama sama.
</para></listitem>
<listitem><para>
Semua nilai variabel yang ditempatkan dikembalikan setelah lingkup
template yang disertakan tidak ada. Ini berarti anda dapat menggunakan
semua variabel termasuk template di dalam template yang disertakan.
Tapi perubahan variabel di dalam template yang disertakan tidak terlihat
di dalam template yang menyertakan setelah pernyataan
<varname>{include}</varname>.
</para></listitem>
<listitem><para>
Gunakan sintaks <link linkend="template.resources">sumber daya template</link>
untuk <varname>{include}</varname> file di luar direktori
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>.
</para></listitem>
</itemizedlist>
<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>file</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama file template yang disertakan</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel yang outputnya akan ditempati</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>variabel untuk mengirimkan lokal ke template</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>Contoh {include} sederhana</title>
<programlisting>
<![CDATA[
<html>
<head>
<title>{$title}</title>
</head>
<body>
{include file='page_header.tpl'}
{* badan template di sini, variabel $tpl_name diganti dengan
nilai misalnya 'contact.tpl'
*}
{include file="$tpl_name.tpl"}
{include file='page_footer.tpl'}
</body>
</html>
]]>
</programlisting>
</example>
<example>
<title>variabel pengiriman {include}</title>
<programlisting>
<![CDATA[
{include file='links.tpl' title='Newest links' links=$link_array}
{* badan template di sini *}
{include file='footer.tpl' foo='bar'}
]]>
</programlisting>
<para>Template di atas menyertakan contoh <filename>links.tpl</filename>
di bawah ini.</para>
<programlisting>
<![CDATA[
<div id="box">
<h3>{$title}{/h3>
<ul>
{foreach from=$links item=l}
.. do stuff ...
</foreach}
</ul>
</div>
]]>
</programlisting>
</example>
<example>
<title>{include} and assign to variable</title>
<para>This example assigns the contents of <filename>nav.tpl</filename>
to the <varname>$navbar</varname> variable,
which is then output at both the top and bottom of the page.
</para>
<programlisting>
<![CDATA[
<body>
{include file='nav.tpl' assign=navbar}
{include file='header.tpl' title='Smarty is cool'}
{$navbar}
{* badan template di sini *}
{$navbar}
{include file='footer.tpl'}
</body>
]]>
</programlisting>
</example>
<example>
<title>Contoh berbagai sumber daya {include}</title>
<programlisting>
<![CDATA[
{* path file absolut *}
{include file='/usr/local/include/templates/header.tpl'}
{* path file absolut (hal yang sama) *}
{include file='file:/usr/local/include/templates/header.tpl'}
{* path file windows absolut (HARUS menggunakan prefiks "file:") *}
{include file='file:C:/www/pub/templates/header.tpl'}
{* sertakan dari sumber daya template bernama "db" *}
{include file='db:header.tpl'}
{* sertakan $variable template - misal $module = 'contacts' *}
{include file="$module.tpl"}
{* tidak akan bekerja karena tanda kutip tunggal, tidak ada penggantian variabel *}
{include file='$module.tpl'}
{* sertakan template multi $variabel - misal amber/links.view.tpl *}
{include file="$style_dir/$module.$view.tpl"}
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="language.function.include.php"><varname>{include_php}</varname></link>,
<link linkend="language.function.insert"><varname>{insert}</varname></link>,
<link linkend="language.function.php"><varname>{php}</varname></link>,
<link linkend="template.resources">sumber daya template</link> dan
<link linkend="tips.componentized.templates">mengkomponenkan template</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
-->

View File

@@ -0,0 +1,160 @@
<?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
-->

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.ldelim">
<title>{ldelim},{rdelim}</title>
<para>
<varname>{ldelim}</varname> dan <varname>{rdelim}</varname> dipakai untuk
<link linkend="language.escaping">melepaskan</link> pembatas template,
standarnya <emphasis role="bold">{</emphasis> dan <emphasis role="bold">}</emphasis>.
Anda juga bisa memakai
<link linkend="language.function.literal"><varname>{literal}{/literal}</varname></link>
untuk membatasi blok teks misalnya Javascript atau CSS.
Lihat juga <link
linkend="language.variables.smarty.ldelim"><parameter>{$smarty.ldelim}</parameter></link>
tambahan.
</para>
<example>
<title>{ldelim}, {rdelim}</title>
<programlisting>
<![CDATA[
{* ini akan mencetak pembatas literal keluar dari template *}
{ldelim}funcname{rdelim} adalah bagaimana fungsi terlihat dalam Smarty!
]]>
</programlisting>
<para>
Contoh di atas akan menghasilkan:
</para>
<screen>
<![CDATA[
{funcname} adalah bagaimana fungsi terlihat dalam Smarty!
]]>
</screen>
<para>Contoh lain dengan beberapa Javascript</para>
<programlisting>
<![CDATA[
<script language="JavaScript">
function foo() {ldelim}
... kode ...
{rdelim}
</script>
]]>
</programlisting>
<para>
akan menghasilkan
</para>
<screen>
<![CDATA[
<script language="JavaScript">
function foo() {
.... kode ...
}
</script>
]]>
</screen>
</example>
<example>
<title>Contoh Javascript lain</title>
<programlisting>
<![CDATA[
<script language="JavaScript" type="text/javascript">
function myJsFunction(){ldelim}
alert("The server name\n{$smarty.server.SERVER_NAME}\n{$smarty.server.SERVER_ADDR}");
{rdelim}
</script>
<a href="javascript:myJsFunction()">Click here for Server Info</a>
]]>
</programlisting>
</example>
<para>Lihat juga
<link linkend="language.function.literal"><varname>{literal}</varname></link>
dan <link linkend="language.escaping">escaping penguraian Smarty</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
-->

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.literal">
<title>{literal}</title>
<para>
Tag <varname>{literal}</varname> membolehkan blok data diambil secara literal.
Ini biasanya dipakai sekitar blok Javascript atau stylesheet di mana
{kurung kurawal} akan berpengaruh dengan sintaks
<link linkend="variable.left.delimiter">pembatas</link> template. Apapun di
dalam tag <varname>{literal}{/literal}</varname> tidak diinterpretasikan, but displayed as-is.
If you need template tags embedded in a <varname>{literal}</varname> block, consider using
<link linkend="language.function.ldelim"><varname>{ldelim}{rdelim}</varname></link> to escape the
individual delimiters instead.
</para>
<example>
<title>{literal} tags</title>
<programlisting>
<![CDATA[
{literal}
<script type="text/javascript">
<!--
function isblank(field) {
if (field.value == '')
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
// -->
</script>
{/literal}
]]>
</programlisting>
</example>
<example>
<title>Javascript function example</title>
<programlisting>
<![CDATA[
<script language="JavaScript" type="text/javascript">
{literal}
function myJsFunction(name, ip){
alert("The server name\n" + name + "\n" + ip);
}
{/literal}
</script>
<a href="javascript:myJsFunction('{$smarty.server.SERVER_NAME}','{$smarty.server.SERVER_ADDR}')">Click here for the Server Info</a>
]]>
</programlisting>
</example>
<example>
<title>Some css style in a template</title>
<programlisting>
<![CDATA[
{* included this style .. as an experiment *}
<style type="text/css">
{literal}
/* this is an intersting idea for this section */
.madIdea{
border: 3px outset #ffffff;
margin: 2 3 4 5px;
background-color: #001122;
}
{/literal}
</style>
<div class="madIdea">With smarty you can embed CSS in the template</div>
]]>
</programlisting>
</example>
<para>
See also
<link linkend="language.function.ldelim"><varname>{ldelim} {rdelim}</varname></link>
and the
<link linkend="language.escaping">escaping Smarty parsing</link> page.
</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
-->

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.php">
<title>{php}</title>
<para>
Tag <varname>{php}</varname> membolehkan kode PHP untuk disertakan secara
langsung ke dalam template. Ia tidak akan diberi escape, mengabaikan setelan <link
linkend="variable.php.handling"><parameter>$php_handling</parameter></link>.
Ini hanya untuk pengguna tingkat lanjut, normalnya tidak perlukan dan
tidak direkomendasikan.
</para>
<note>
<title>Catatan Teknis</title>
<para>
Untuk mengakses variabel PHP dalam blok <varname>{php}</varname> anda perlu
menggunakan kata kunci
<ulink url="&url.php-manual;global"><literal>global</literal></ulink>.
</para>
</note>
<example>
<title>kode php dalam tag {php}</title>
<programlisting>
<![CDATA[
{php}
// menyertakan naskah php secara langsung dari template.
include('/path/to/display_weather.php');
{/php}
]]>
</programlisting>
</example>
<example>
<title>tag {php} dengan variabel global dan penempatan</title>
<programlisting role="php">
<![CDATA[
{* template ini menyertakan blok {php} yang menempatkan variabel $varX *}
{php}
global $foo, $bar;
if($foo == $bar){
echo 'This will be sent to browser';
}
// tempatkan variabel ke Smarty
$this->assign('varX','Toffee');
{/php}
{* keluarkan variabel *}
<strong>{$varX}</strong> is my fav ice cream :-)
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="variable.php.handling"><parameter>$php_handling</parameter></link>,
<link linkend="language.function.include.php"><varname>{include_php}</varname></link>,
<link linkend="language.function.include"><varname>{include}</varname></link>,
<link linkend="language.function.insert"><varname>{insert}</varname></link>
dan
<link linkend="tips.componentized.templates">template yang dikomponenkan</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
-->

View File

@@ -0,0 +1,826 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.section">
<title>{section},{sectionelse}</title>
<para>
<varname>{section}</varname>
adalah untuk mengulang melalui <emphasis role="bold">array data</emphasis>,
tidak seperti <link linkend="language.function.foreach"><varname>{foreach}</varname></link>
yang dipakai untuk mengulang melalui
<emphasis role="bold">satu array asosiatif</emphasis>.
Setiap <varname>{section}</varname> tag harus dipasangkan dengan
penutup<varname>{/section}</varname> tag.
</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 seksi</entry>
</row>
<row>
<entry>loop</entry>
<entry>mixed</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nilai untuk menentukan sumber iterasi pengulangan</entry>
</row>
<row>
<entry>start</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>0</emphasis></entry> <entry>Posisi indeks
di mana seksi akan diulang. Jika nilai negatif, awal
posisi dihitung dari akhir array. Sebagai contoh,
jika ada tujuh nilai dalam pengulangan array dan awalnya
adalah -2, indeks awal adalah 5. Nilai yang tidak benar
(nilai di luar panjang pengulangan array) otomatis
dipotong ke nilai terdekat yang benar.</entry>
</row>
<row>
<entry>step</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>1</emphasis></entry>
<entry>Nilai step akan dipakai untuk melewati pengulangan array.
Sebagai contoh, step=2 akan berulang pada indeks 0,2,4, dst.
Jika step negatif, ia akan mundur kembali melewati array.</entry>
</row>
<row>
<entry>max</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Menyetel angka maksimum berapa kali seksi akan mengulang.</entry>
</row>
<row>
<entry>show</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Menentukan apakan menampilkan seksi ini atau tidak</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut yang diperlukan adalah <parameter>name</parameter> dan <parameter>loop</parameter>.
</para></listitem>
<listitem><para>
<parameter>name</parameter> dari <varname>{section}</varname> bisa berupa
apapun yang anda suka, terdiri dari huruf, angka dan garis bawah, seperti
<ulink url="&url.php-manual;language.variables">variabel PHP</ulink>.
</para></listitem>
<listitem><para>
{section} dapat diulang, dan nama <varname>{section}</varname> yang diulang
harus unik dari yang lainnya.
</para></listitem>
<listitem><para>
Atribut <parameter>loop</parameter>, biasanya sebuah array nilai, menentukan
jumlah berapa kali <varname>{section}</varname> akan mengulang. Anda juga
dapat mengirimkan integer sebagai nilai pengulangan.
</para></listitem>
<listitem><para>Ketika mencetak variabel di dalam <varname>{section}</varname>,
<varname>{section}</varname> <parameter>name</parameter> harus diberikan di
sebelah nama variabel dalam [kurung kotak].
</para></listitem>
<listitem><para>
<varname>{sectionelse}</varname> dijalankan saat tidak ada lagi nilai
dalam variabel loop.
</para></listitem>
<listitem><para>
<varname>{section}</varname> juga memiliki variabelnya sendiri yang
menangani properti <varname>{section}</varname>.
Properti ini dapat diakses sebagai: <link linkend="language.variables.smarty.loops">
<parameter>{$smarty.section.name.property}</parameter></link>
di mana <quote>name</quote> adalah atribut <parameter>name</parameter>.
</para></listitem>
<listitem><para>
properti <varname>{section}</varname> adalah
<link linkend="section.property.index"><parameter>index</parameter></link>,
<link linkend="section.property.index.prev"><parameter>index_prev</parameter></link>,
<link linkend="section.property.index.next"><parameter>index_next</parameter></link>,
<link linkend="section.property.iteration"><parameter>iteration</parameter></link>,
<link linkend="section.property.first"><parameter>first</parameter></link>,
<link linkend="section.property.last"><parameter>last</parameter></link>,
<link linkend="section.property.rownum"><parameter>rownum</parameter></link>,
<link linkend="section.property.loop"><parameter>loop</parameter></link>,
<link linkend="section.property.show"><parameter>show</parameter></link>,
<link linkend="section.property.total"><parameter>total</parameter></link>.
</para></listitem>
</itemizedlist>
<example>
<title>Mengulang array sederhana dengan {section}</title>
<para>
<link linkend="api.assign"><varname>assign()</varname></link> array ke Smarty
</para>
<programlisting role="php">
<![CDATA[
<?php
$data = array(1000,1001,1002);
$smarty->assign('custid',$data);
?>
]]>
</programlisting>
<para>Template yang menampilkan array</para>
<programlisting>
<![CDATA[
{* contoh ini akan mengeluarkan semua nilai dari array $custid *}
{section name=customer loop=$custid}
id: {$custid[customer]}<br />
{/section}
<hr />
{* mengeluarkan semua nilai array $custid secara terbalik *}
{section name=foo loop=$custid step=-1}
{$custid[foo]}<br />
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
id: 1000<br />
id: 1001<br />
id: 1002<br />
<hr />
id: 1002<br />
id: 1001<br />
id: 1000<br />
]]>
</screen>
</example>
<example>
<title>{section} tanpa array yang ditempati</title>
<programlisting>
<![CDATA[
{section name=foo start=10 loop=20 step=2}
{$smarty.section.foo.index}
{/section}
<hr />
{section name=bar loop=21 max=6 step=-2}
{$smarty.section.bar.index}
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
10 12 14 16 18
<hr />
20 18 16 14 12 10
]]>
</screen>
</example>
<example>
<title>Penamaan {section}</title>
<para><parameter>name</parameter> dari <varname>{section}</varname> bisa apa
saja sesuai yang anda inginkan, lihat
<ulink url="&url.php-manual;language.variables">variabel PHP</ulink>.
Ini dipakai untuk mereferensi data di dalam <varname>{section}</varname>.</para>
<programlisting>
<![CDATA[
{section name=anything loop=$myArray}
{$myArray[anything].foo}
{$name[anything]}
{$address[anything].bar}
{/section}
]]>
</programlisting>
</example>
<example>
<title>Pengulangan array asosiatif dengan {section}</title>
<para>Ini adalah contoh pencetakan array data asosiatif dengan
<varname>{section}</varname>. Berikut adalah naskah php untuk menempatkan
array <parameter>$contacts</parameter> ke Smarty.</para>
<programlisting role="php">
<![CDATA[
<?php
$data = array(
array('name' => 'John Smith', 'home' => '555-555-5555',
'cell' => '666-555-5555', 'email' => 'john@myexample.com'),
array('name' => 'Jack Jones', 'home' => '777-555-5555',
'cell' => '888-555-5555', 'email' => 'jack@myexample.com'),
array('name' => 'Jane Munson', 'home' => '000-555-5555',
'cell' => '123456', 'email' => 'jane@myexample.com')
);
$smarty->assign('contacts',$data);
?>
]]>
</programlisting>
<para>Template untuk menampilkan <parameter>$contacts</parameter></para>
<programlisting>
<![CDATA[
{section name=customer loop=$contacts}
<p>
name: {$contacts[customer].name}<br />
home: {$contacts[customer].home}<br />
cell: {$contacts[customer].cell}<br />
e-mail: {$contacts[customer].email}
</p>
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<p>
name: John Smith<br />
home: 555-555-5555<br />
cell: 666-555-5555<br />
e-mail: john@myexample.com
</p>
<p>
name: Jack Jones<br />
home phone: 777-555-5555<br />
cell phone: 888-555-5555<br />
e-mail: jack@myexample.com
</p>
<p>
name: Jane Munson<br />
home phone: 000-555-5555<br />
cell phone: 123456<br />
e-mail: jane@myexample.com
</p>
]]>
</screen>
</example>
<example>
<title>{section} mendemonstrasikan variabel <varname>loop</varname></title>
<para>Contoh ini mengasumsikan bahwa <parameter>$custid</parameter>, <parameter>$name</parameter>
dan <parameter>$address</parameter> adalah semua array yang berisi jumlah
nilai yang sama. Pertama naskah php menempatkan array ke Smarty.</para>
<programlisting role="php">
<![CDATA[
<?php
$id = array(1001,1002,1003);
$smarty->assign('custid',$id);
$fullnames = array('John Smith','Jack Jones','Jane Munson');
$smarty->assign('name',$fullnames);
$addr = array('253 Abbey road', '417 Mulberry ln', '5605 apple st');
$smarty->assign('address',$addr);
?>
]]>
</programlisting>
<para>Variabel <parameter>loop</parameter> hanya menentukan jumlah berapa kali
untuk mengulang. Anda dapat mengakses variabel MANAPUN dari template di dalam
<varname>{section}</varname></para>
<programlisting>
<![CDATA[
{section name=customer loop=$custid}
<p>
id: {$custid[customer]}<br />
name: {$name[customer]}<br />
address: {$address[customer]}
</p>
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<p>
id: 1000<br />
name: John Smith<br />
address: 253 Abbey road
</p>
<p>
id: 1001<br />
name: Jack Jones<br />
address: 417 Mulberry ln
</p>
<p>
id: 1002<br />
name: Jane Munson<br />
address: 5605 apple st
</p>
]]>
</screen>
</example>
<example>
<title>{section} yang berulang</title>
<para>
{section} dapat diulang sedalam yang anda suka. Dengan {section} yang
diulang, anda bisa mengakses struktur data yang kompleks, seperti array
multi dimensi. Ini adalah contoh naskah <filename>.php</filename> yang
menempatkan array.
</para>
<programlisting role="php">
<![CDATA[
<?php
$id = array(1001,1002,1003);
$smarty->assign('custid',$id);
$fullnames = array('John Smith','Jack Jones','Jane Munson');
$smarty->assign('name',$fullnames);
$addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st');
$smarty->assign('address',$addr);
$types = array(
array( 'home phone', 'cell phone', 'e-mail'),
array( 'home phone', 'web'),
array( 'cell phone')
);
$smarty->assign('contact_type', $types);
$info = array(
array('555-555-5555', '666-555-5555', 'john@myexample.com'),
array( '123-456-4', 'www.example.com'),
array( '0457878')
);
$smarty->assign('contact_info', $info);
?>
]]>
</programlisting>
<para>Dalam contoh ini, <emphasis>$contact_type[customer]</emphasis> adalah
sebuah array tipe kontak untuk kustomer saat ini.</para>
<programlisting>
<![CDATA[
{section name=customer loop=$custid}
<hr>
id: {$custid[customer]}<br />
name: {$name[customer]}<br />
address: {$address[customer]}<br />
{section name=contact loop=$contact_type[customer]}
{$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br />
{/section}
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<hr>
id: 1000<br />
name: John Smith<br />
address: 253 N 45th<br />
home phone: 555-555-5555<br />
cell phone: 666-555-5555<br />
e-mail: john@myexample.com<br />
<hr>
id: 1001<br />
name: Jack Jones<br />
address: 417 Mulberry ln<br />
home phone: 123-456-4<br />
web: www.example.com<br />
<hr>
id: 1002<br />
name: Jane Munson<br />
address: 5605 apple st<br />
cell phone: 0457878<br />
]]>
</screen>
</example>
<example>
<title>Contoh database dengan {sectionelse}</title>
<para>Hasil pencarian database (misal ADODB atau PEAR) ditempatkan ke Smarty</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'select id, name, home, cell, email from contacts '
."where name like '$foo%' ";
$smarty->assign('contacts', $db->getAll($sql));
?>
]]>
</programlisting>
<para>Template yang menampilkan hasil database dalam tabel HTML</para>
<programlisting>
<![CDATA[
<table>
<tr><th>&nbsp;</th><th>Name></th><th>Home</th><th>Cell</th><th>Email</th></tr>
{section name=co loop=$contacts}
<tr>
<td><a href="view.php?id={$contacts[co].id}">view<a></td>
<td>{$contacts[co].name}</td>
<td>{$contacts[co].home}</td>
<td>{$contacts[co].cell}</td>
<td>{$contacts[co].email}</td>
<tr>
{sectionelse}
<tr><td colspan="5">Tidak ada item yang ditemukan</td></tr>
{/section}
</table>
]]>
</programlisting>
</example>
<sect2 id="section.property.index">
<title>.index</title>
<para>
<parameter>index</parameter> berisi indeks array saat ini, dimulai dengan nol
atau atribut <parameter>start</parameter> bila diberikan. Ia bertambah satu
atau dengan atribut <parameter>step</parameter> bila diberikan.
</para>
<note>
<title>Catatan Teknis</title>
<para>
Jika properti <parameter>step</parameter> dan <parameter>start</parameter>
tidak diubah, maka pekerjaan ini sama seperti properti <link
linkend="section.property.iteration"><parameter>iteration</parameter></link>,
kecuali ia dimulai dengan nol daripada satu.
</para>
</note>
<example>
<title>{section} <varname>index</varname> property</title>
<para>
<note><title>FYI</title>
<para><literal>$custid[customer.index]</literal> dan
<literal>$custid[customer]</literal> adalah sama.</para>
</note>
</para>
<programlisting>
<![CDATA[
{section name=customer loop=$custid}
{$smarty.section.customer.index} id: {$custid[customer]}<br />
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
0 id: 1000<br />
1 id: 1001<br />
2 id: 1002<br />
]]>
</screen>
</example>
</sect2>
<sect2 id="section.property.index.prev">
<title>.index_prev</title>
<para>
<parameter>index_prev</parameter> adalah indeks pengulangan sebelumnya.
Pada pengulangan pertama, ini disetel -1.
</para>
</sect2>
<sect2 id="section.property.index.next">
<title>.index_next</title>
<para>
<parameter>index_next</parameter> adalah indeks pengulangan berikutnya.
Pada pengulangan terakhir, ini masih satu lagi daripada indeks saat ini,
memperhatikan setelan atribut <parameter>step</parameter>, jika diberikan.
</para>
<example>
<title>properti <varname>index</varname>, <varname>index_next</varname>
dan <varname>index_prev</varname> </title>
<programlisting role="php">
<![CDATA[
<?php
$data = array(1001,1002,1003,1004,1005);
$smarty->assign('rows',$data);
?>
]]>
</programlisting>
<para>Template untuk menampilkan array di atas dalam sebuah tabel</para>
<programlisting>
<![CDATA[
{* $rows[row.index] dan $rows[row] adalah identik dalam pengertian *}
<table>
<tr>
<th>index</th><th>id</th>
<th>index_prev</th><th>prev_id</th>
<th>index_next</th><th>next_id</th>
</tr>
{section name=row loop=$rows}
<tr>
<td>{$smarty.section.row.index}</td><td>{$rows[row]}</td>
<td>{$smarty.section.row.index_prev}</td><td>{$rows[row.index_prev]}</td>
<td>{$smarty.section.row.index_next}</td><td>{$rows[row.index_next]}</td>
</tr>
{/section}
</table>
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan tabel yang berisi sebagai berikut:
</para>
<screen>
<![CDATA[
index id index_prev prev_id index_next next_id
0 1001 -1 1 1002
1 1002 0 1001 2 1003
2 1003 1 1002 3 1004
3 1004 2 1003 4 1005
4 1005 3 1004 5
]]>
</screen>
</example>
</sect2>
<sect2 id="section.property.iteration">
<title>.iteration</title>
<para>
<parameter>iteration</parameter> berisi iterasi pengulangan saat ini dan
dimulai dari satu.
</para>
<note>
<para>
Ini tidak dipengaruhi oleh properti <varname>{section}</varname>
<parameter>start</parameter>, <parameter>step</parameter> dan <parameter>max</parameter>,
tidak seperti properti
<link linkend="section.property.index"><parameter>index</parameter></link>.
<parameter>iteration</parameter> juga dimulai dengan satu daripada nol
tidak seperti <parameter>index</parameter>. <link
linkend="section.property.rownum"><parameter>rownum</parameter></link>
adalah alias untuk <parameter>iteration</parameter>, keduanya sama.
</para>
</note>
<example>
<title>Properti <varname>iteration</varname> dari seksi </title>
<programlisting role="php">
<![CDATA[
<?php
// array of 3000 to 3015
$id = range(3000,3015);
$smarty->assign('arr',$id);
?>
]]>
</programlisting>
<para>Template untuk menampilkan setiap elemen lain array <literal>$arr</literal>
dengan <literal>step=2</literal></para>
<programlisting>
<![CDATA[
{section name=cu loop=$arr start=5 step=2}
iteration={$smarty.section.cu.iteration}
index={$smarty.section.cu.index}
id={$custid[cu]}<br />
{/section}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
iteration=1 index=5 id=3005<br />
iteration=2 index=7 id=3007<br />
iteration=3 index=9 id=3009<br />
iteration=4 index=11 id=3011<br />
iteration=5 index=13 id=3013<br />
iteration=6 index=15 id=3015<br />
]]>
</screen>
<para>
Contoh lain yang menggunakan properti <parameter>iteration</parameter> untuk
mengeluarkan blok header tabel setiap lima baris.
Menggunakan fungsi <link linkend="language.function.if"><varname>{if}</varname></link>
dengan operator mod.
</para>
<programlisting>
<![CDATA[
<table>
{section name=co loop=$contacts}
{if $smarty.section.co.iteration % 5 == 1}
<tr><th>&nbsp;</th><th>Name></th><th>Home</th><th>Cell</th><th>Email</th></tr>
{/if}
<tr>
<td><a href="view.php?id={$contacts[co].id}">view<a></td>
<td>{$contacts[co].name}</td>
<td>{$contacts[co].home}</td>
<td>{$contacts[co].cell}</td>
<td>{$contacts[co].email}</td>
<tr>
{/section}
</table>
]]>
</programlisting>
</example>
</sect2>
<sect2 id="section.property.first">
<title>.first</title>
<para>
<parameter>first</parameter> disetel &true; jika iterasi
<varname>{section}</varname> saat ini adalah yang pertama.
</para>
</sect2>
<sect2 id="section.property.last">
<title>.last</title>
<para>
<parameter>last</parameter> disetel &true; jika iterasi seksi saat ini
adalah yang terakhir.
</para>
<example>
<title>properti {section} <varname>first</varname> dan <varname>last</varname></title>
<para>
Contoh ini mengulang array <varname>$customers</varname>, mengeluarkan
blok header pada iterasi pertama dan terakhir mengeluarkan blok footer.
Juga menggunakan properti
<link linkend="section.property.total"><parameter>total</parameter></link>.
</para>
<programlisting>
<![CDATA[
{section name=customer loop=$customers}
{if $smarty.section.customer.first}
<table>
<tr><th>id</th><th>kustomer</th></tr>
{/if}
<tr>
<td>{$customers[customer].id}}</td>
<td>{$customers[customer].name}</td>
</tr>
{if $smarty.section.customer.last}
<tr><td></td><td>{$smarty.section.customer.total} kustomer</td></tr>
</table>
{/if}
{/section}
]]>
</programlisting>
</example>
</sect2>
<sect2 id="section.property.rownum">
<title>.rownum</title>
<para>
<parameter>rownum</parameter> berisi iterasi pengulangan saat ini,
dimulai dengan satu. Ini adalah nama lain dari <link
linkend="section.property.iteration"><parameter>iterasi</parameter></link>,
cara kerjanya sama persis.
</para>
</sect2>
<sect2 id="section.property.loop">
<title>.loop</title>
<para>
<parameter>loop</parameter> berisi angka indeks terakhir yang mengulang
{section}. Ini bisa dipakai di dalam atau setelah <varname>{section}</varname>.
</para>
<example>
<title>properti {section} <varname>loop</varname></title>
<programlisting>
<![CDATA[
{section name=customer loop=$custid}
{$smarty.section.customer.index} id: {$custid[customer]}<br />
{/section}
Ada {$smarty.section.customer.loop} kustomer yang ditampilkan di atas.
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
0 id: 1000<br />
1 id: 1001<br />
2 id: 1002<br />
Ada 3 kustomer yang ditampilkan di atas.
]]>
</screen>
</example>
</sect2>
<sect2 id="section.property.show">
<title>.show</title>
<para>
<parameter>show</parameter> dipakai sebagai parameter ke seksi dan berupa
nilai boolean. Jika &false;, seksi tidak akan ditampilkan. Jika terdapat
<varname>{sectionelse}</varname>, akan ditampilkan sebagai alternatif.
</para>
<example>
<title><varname>show</varname> properti </title>
<para>Boolean <varname>$show_customer_info</varname> sudah dikirimkan dari
aplikasi PHP, untuk mengatur apakah seksi ditampilkan atau tidak.</para>
<programlisting>
<![CDATA[
{section name=customer loop=$customers show=$show_customer_info}
{$smarty.section.customer.rownum} id: {$customers[customer]}<br />
{/section}
{if $smarty.section.customer.show}
seksi ditampilkan.
{else}
seksi tidak ditampilkan.
{/if}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
1 id: 1000<br />
2 id: 1001<br />
3 id: 1002<br />
the section was shown.
]]>
</screen>
</example>
</sect2>
<sect2 id="section.property.total">
<title>.total</title>
<para>
<parameter>total</parameter> berisi jumlah iterasi yang akan
<varname>{section}</varname> mengulangnya. Ini bisa dipakai di dalam atau setelah
<varname>{section}</varname>.
</para>
<example>
<title><varname>total</varname> contoh properti</title>
<programlisting>
<![CDATA[
{section name=customer loop=$custid step=2}
{$smarty.section.customer.index} id: {$custid[customer]}<br />
{/section}
Ada {$smarty.section.customer.total} kustomer yang ditampilkan di atas.
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="language.function.foreach"><varname>{foreach}</varname></link>
dan
<link linkend="language.variables.smarty.loops"><parameter>$smarty.section</parameter></link>.
</para>
</sect2>
</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
-->

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.strip">
<title>{strip}</title>
<para>
Berulang kali desainer designers mengalami hal di mana spasi dan
tombol enter mempengarhui output dari HTML yang dibuatnya ("fitur"
browser), kemudian anda harus menjalankan semua tag anda bersamaan
dalam template guna memperoleh hasil yang diinginkan. Ini biasanya
berakhir dengan template yang tidak terbaca atau tidak teratur.
</para>
<para>
Apapun spasi ekstra atau tanda tombol enter di dalam tag
<varname>{strip}{/strip}</varname> dibuang di awal dan akhir baris
sebelum ditampilkan. Dengan cara ini anda bisa memelihara template
mudah dibaca, dan tidak mencemaskan tentang spasi ekstra yang
menyebabkan masalah.
</para>
<note>
<para>
<varname>{strip}{/strip}</varname> tidak mempengaruhi isi dari
variabel template, sebaliknya lihat
<link linkend="language.modifier.strip">pengubah strip</link>.
</para>
</note>
<example>
<title>tag {strip}</title>
<programlisting>
<![CDATA[
{* contoh berikut akan dijalankan semua ke dalam satu baris setelah output *}
{strip}
<table border='0'>
<tr>
<td>
<a href="{$url}">
<font color="red">This is a test</font>
</a>
</td>
</tr>
</table>
{/strip}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<table border='0'><tr><td><a href="http://. snipped...</a></td></tr></table>
]]>
</screen>
</example>
<para>
Catatan bahwa dalam contoh di atas, seluruh baris diawali dan diakhiri dengan
tag HTML. Harap berhati-hati bahwa seluruh baris dijalankan bersamaan.
Jika anda mempunyai teks biasa di awal atau di akhir dari setiap baris,
ia akan dijalankan bersamaan, dan mungkin menghasilkan yang tidak diinginkan.
</para>
<para>
Lihat juga pengubah
<link linkend="language.modifier.strip"><varname>strip</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
-->

View File

@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.assign">
<title>{assign}</title>
<para>
<varname>{assign}</varname> dipakai untuk menempatkan variabel template
<emphasis role="bold">selama eksekusi sebuah template</emphasis>.
</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>var</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nama variabel yang ditempati</entry>
</row>
<row>
<entry>value</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nilai yang ditempatkan</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{assign}</title>
<programlisting>
<![CDATA[
{assign var='name' value='Bob'}
Nilai dari $name adalah {$name}.
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
Nilai dari $name adalah Bob.
]]>
</screen>
</example>
<example>
<title>{assign} with some maths</title>
<para>Contoh kompleks harus memiliki variabel dalam `tanda kutip terbalik`</para>
<programlisting>
<![CDATA[
{assign var=running_total value=`$running_total+$some_array[row].some_value`}
]]>
</programlisting>
</example>
<example>
<title>Mengakses variabel {assign} dari naskah PHP</title>
<para>
Untuk mengakses variabel <varname>{assign}</varname> dari naskah php
menggunakan <link linkend="api.get.template.vars">
<varname>get_template_vars()</varname></link>.
Ini adalah template yang membuat variabel <parameter>$foo</parameter>.
</para>
<programlisting>
<![CDATA[
{assign var='foo' value='Smarty'}
]]>
</programlisting>
<para>Variabel template hanya tersedia setelah/selama eksekusi template seperti
dalam naskah berikut.
</para>
<programlisting role="php">
<![CDATA[
<?php
// ini tidak akan menampilkan apapun karena template belum dieksekusi
echo $smarty->get_template_vars('foo');
// ambil template ke variabel
$whole_page = $smarty->fetch('index.tpl');
// ini akan menampilkan 'smarty' karena template sudah dieksekusi
echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// ini akan menampilkan 'Even smarter'
echo $smarty->get_template_vars('foo');
?>
]]>
</programlisting>
</example>
<para>
Fungsi berikut dapat juga <emphasis>secara opsional</emphasis> menempatkan
variabel template.
</para>
<para>
<link linkend="language.function.capture"><varname>{capture}</varname></link>,
<link linkend="language.function.include"><varname>{include}</varname></link>,
<link linkend="language.function.include.php"><varname>{include_php}</varname></link>,
<link linkend="language.function.insert"><varname>{insert}</varname></link>,
<link linkend="language.function.counter"><varname>{counter}</varname></link>,
<link linkend="language.function.cycle"><varname>{cycle}</varname></link>,
<link linkend="language.function.eval"><varname>{eval}</varname></link>,
<link linkend="language.function.fetch"><varname>{fetch}</varname></link>,
<link linkend="language.function.math"><varname>{math}</varname></link>,
<link linkend="language.function.textformat"><varname>{textformat}</varname></link>
</para>
<para>
Lihat juga <link linkend="api.assign"><varname>assign()</varname></link>
dan
<link linkend="api.get.template.vars"><varname>get_template_vars()</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
-->

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.counter">
<title>{counter}</title>
<para>
<varname>{counter}</varname> dipakai untuk mengeluarkan jumlah.
<varname>{counter}</varname> akan mengingat jumlah pada setiap
pengulangan. Anda dapat menyesuaikan jumlah, interval dan arah
penghitungan, juga menentukan apakah menampilkan nilai atau tidak.
Anda dapat menjalankan multipel penghitung secara konkuren dengan
menyertakan masing-masing dengan nama yang unik. Jika anda tidak
menyertakan sebuah nama, nama <quote>default</quote> akan dipakai.
</para>
<para>
Jika anda menyertakan atribut <parameter>assign</parameter>, keluaran
dari fungsi <varname>{counter}</varname> akan ditempatkan ke variabel
template ini daripada dikeluarkan ke 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>Tidak</entry>
<entry><emphasis>default</emphasis></entry>
<entry>Nama penghitung</entry>
</row>
<row>
<entry>start</entry>
<entry>number</entry>
<entry>Tidak</entry>
<entry><emphasis>1</emphasis></entry>
<entry>Angka awal untuk memulai perhitungan</entry>
</row>
<row>
<entry>skip</entry>
<entry>number</entry>
<entry>Tidak</entry>
<entry><emphasis>1</emphasis></entry>
<entry>Interval untuk setiap perhitungan</entry>
</row>
<row>
<entry>direction</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>up</emphasis></entry>
<entry>Arah perhitungan (naik/turun)</entry>
</row>
<row>
<entry>print</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Apakan memperlihatkan nilai atau tidak</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>variabel template di mana output akan ditempatinya</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{counter}</title>
<programlisting>
<![CDATA[
{* awali perhitungan *}
{counter start=0 skip=2}<br />
{counter}<br />
{counter}<br />
{counter}<br />
]]>
</programlisting>
<para>
Ini akan menampilkan:
</para>
<screen>
<![CDATA[
0<br />
2<br />
4<br />
6<br />
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.cycle">
<title>{cycle}</title>
<para>
<varname>{cycle}</varname> dpakai untuk mengganti satu set nilai.
Ini memudahkan misalnya, mengganti antara dua atau lebih warna dalam
sebuah tabel, atau berputar melalui array nilai.
</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>Tidak</entry>
<entry><emphasis>default</emphasis></entry>
<entry>Nama cycle</entry>
</row>
<row>
<entry>values</entry>
<entry>mixed</entry>
<entry>Ya</entry>
<entry><emphasis>N/A</emphasis></entry>
<entry>Nilai untuk berputar, bisa daftar dipisahkan koma
(lihat atribut pembatas), atau array nilai</entry>
</row>
<row>
<entry>print</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Apakah mencetak nilai atau tidak</entry>
</row>
<row>
<entry>advance</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Apakah maju ke nilai berikutnya</entry>
</row>
<row>
<entry>delimiter</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>,</emphasis></entry>
<entry>Pembatas yng dipakai dalam atribut nilai</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel template yang akan ditempati output</entry>
</row>
<row>
<entry>reset</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>Perputaran akan disetel ke nilai pertama dan tidak dimajukan</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Anda bisa <varname>{cycle}</varname> melalui lebih dari satu set nilai
dalam sebuah template dengan menyertakan atribut <parameter>name</parameter>.
Beri setiap <varname>{cycle}</varname> <parameter>name</parameter> yang
unik.
</para></listitem>
<listitem><para>
Anda dapat memaksa nilai saat ini untuk mencetak dengan atribut
<parameter>print</parameter> disetel ke &false;. Ini berguna untuk
melewati sebuah nilai secara diam-diam.
</para></listitem>
<listitem><para>
Atribut <parameter>advance</parameter> dipakai untuk mengulang nilai,
Ketika disetel ke &false;, panggilan berikutnya ke <varname>{cycle}</varname>
akan mencetak nilai yang sama.
</para></listitem>
<listitem><para>
Jika anda menyertakan atribut <parameter>assign</parameter>, output dari
fungsi <varname>{cycle}</varname> akan ditempatkan ke variabel template
daripada ke template.
</para></listitem>
</itemizedlist>
<example>
<title>{cycle}</title>
<programlisting>
<![CDATA[
{section name=rows loop=$data}
<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">
<td>{$data[rows]}</td>
</tr>
{/section}
]]>
</programlisting>
<para>Template di atas akan memperlihatkan:</para>
<screen>
<![CDATA[
<tr bgcolor="#eeeeee">
<td>1</td>
</tr>
<tr bgcolor="#d0d0d0">
<td>2</td>
</tr>
<tr bgcolor="#eeeeee">
<td>3</td>
</tr>
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.debug">
<title>{debug}</title>
<para>
<varname>{debug}</varname> mengeluarkan konsol debug ke halaman. Ini bekerja
mengabaikan setelan <link linkend="chapter.debugging.console">debug</link>
dalam naskah php. Karena ini dieksekusi saat runtime, ini hanya dapat
menampilkan variabel yang <link linkend="api.assign">ditempatkan</link>;
bukan templates yang sedang digunakan. Akan tetapi, anda bisa melihat
semua variabel yang tersedia saat ini dalam lingkup 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>output</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>javascript</emphasis></entry>
<entry>tipe output, html atau javascript</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Lihat juga
<link linkend="chapter.debugging.console">halaman konsol debugging</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
-->

View File

@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.eval">
<title>{eval}</title>
<para>
<varname>{eval}</varname> dipakai untuk mengevaluasi sebuah variabel
sebagai template.
Ini bisa dgunakan untuk hal seperti menyertakan tag/variabel template
ke dalam variabel atau tag/variabel template ke dalam file config.
</para>
<para>
Jika anda menyertakan atribut <parameter>assign</parameter>, output dari
fungsi <varname>{eval}</varname> akan ditempatkan ke variabel template
ini daripada ke 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>var</entry>
<entry>mixed</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel (atau string) untuk mengevaluasi</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel template yang akan ditempati output
to</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<title>Catatan Teknis</title>
<para>
<itemizedlist>
<listitem><para>
Variabel yang dievaluasi diperlakukan sama seperti template. Mengikuti
fitur pengeluaran dan keamanan yang sama seolah-olah sebuah template.
</para></listitem>
<listitem><para>
Variabel yang dievaluasi dikompilasi setiap kali permintaan, versi
terkompilasi tidak disimpan! Akan tetapi jika anda menghidupkan
<link linkend="caching">caching</link>, output akan di-cache
dengan sisa template.
</para></listitem>
</itemizedlist>
</para>
</note>
<example>
<title>{eval}</title>
<para>Isi dari file config, <filename>setup.conf</filename>.</para>
<programlisting>
<![CDATA[
emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}.
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{config_load file='setup.conf'}
{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error}
]]>
</programlisting>
<para>
Template di atas akan menampilkan:
</para>
<screen>
<![CDATA[
This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>.
]]>
</screen>
</example>
<example>
<title>Contoh {eval} lainnya</title>
<para>Ini menampilkan nama server (in uppercase) dan IP. Variabel yang
ditempati <parameter>$str</parameter> berasal dari query database.</para>
<programlisting role="php">
<![CDATA[
<?php
$str = 'The server name is {$smarty.server.SERVER_NAME|upper} '
.'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{eval var=$foo}
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.fetch">
<title>{fetch}</title>
<para>
<varname>{fetch}</varname> dipakai untuk mengambil file dari sistem file
lokal, http, atau ftp dan menampilkan konten.
</para>
<itemizedlist>
<listitem><para>
Jika nama file diawali dengan
<parameter>http://</parameter>, halaman situs web akan diambil dan
ditempilkan.
<note>
<para>
Ini tidak akan mendukung pengalihan http, pastikan untuk menyertakan
garis miring terakhir pada halaman web yang anda ambil bila
diperlukan.
</para>
</note>
</para></listitem>
<listitem><para>
Jika nama file diawali dengan <parameter>ftp://</parameter>, file akan
di-download dari server ftp dan ditampilkan.
</para></listitem>
<listitem><para>
Untuk file lokal, harus memberikan baik path file sistem lengkap ataupun
path relatif ke naskah php yang dijalankan.
<note>
<para>
Jika template <link linkend="variable.security">
<parameter>$security</parameter></link>
dihidupkan dan anda sedang mengambil file dari sistem file lokal,
<varname>{fetch}</varname> hanya akan membolehkan file dari dalam
salah satu yang didefinisikan dalam
will only allow files from within one of the defined
<link linkend="variable.secure.dir">direktori aman</link>.
</para>
</note>
</para></listitem>
<listitem><para>
Jika atribut <parameter>assign</parameter> disetel, output fungsi
<varname>{fetch}</varname> akan ditempatkan ke variabel template
ini daripada ke template.
</para></listitem>
</itemizedlist>
<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>Type</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>file</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>File, http atau situs ftp untuk diambil</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel template yang akan ditempati</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>contoh {fetch}</title>
<programlisting>
<![CDATA[
{* sertakan beberapa javascript dalam template anda *}
{fetch file='/export/httpd/www.example.com/docs/navbar.js'}
{* sertakan beberapa teks cuaca dalam template anda dari situs web lain *}
{fetch file='http://www.myweather.com/68502/'}
{* ambil file headline berita via ftp *}
{fetch file='ftp://user:password@ftp.example.com/path/to/currentheadlines.txt'}
{* sama seperti di atas tapi dengan variabel *}
{fetch file="ftp://`$user`:`$password`@`$server`/`$path`"}
{* tempatkan konten yang diambil ke variabel template *}
{fetch file='http://www.myweather.com/68502/' assign='weather'}
{if $weather ne ''}
<div id="weather">{$weather}</div>
{/if}
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="language.function.capture"><varname>{capture}</varname></link>,
<link linkend="language.function.eval"><varname>{eval}</varname></link>,
<link linkend="language.function.assign"><varname>{assign}</varname></link>
dan
<link linkend="api.fetch"><varname>fetch()</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
-->

View File

@@ -0,0 +1,236 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.checkboxes">
<title>{html_checkboxes}</title>
<para>
<varname>{html_checkboxes}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat grup kotak centang html dengan data yang disediakan.
Ia menangani item-item yang dipilihnya juga.
</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>Tidak</entry>
<entry><emphasis>checkbox</emphasis></entry>
<entry>Name daftar kotak centang</entry>
</row>
<row>
<entry>values</entry>
<entry>array</entry>
<entry>Ya, kecuali memakai atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Sebuah array nilai untuk tombol kotak centang</entry>
</row>
<row>
<entry>output</entry>
<entry>array</entry>
<entry>Ya, kecuali memakai atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Output array untuk tombol kotak centang</entry>
</row>
<row>
<entry>selected</entry>
<entry>string/array</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Elemen kotak centang yang dipilih</entry>
</row>
<row>
<entry>options</entry>
<entry>associative array</entry>
<entry>Ya, kecuali memakai nilai dan output</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array nilai asosiatif dan output</entry>
</row>
<row>
<entry>separator</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>String teks untuk memisahkan setiap item kotak centang</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Menempatkan tag kotak centang ke array daripada output</entry>
</row>
<row>
<entry>labels</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&true;</emphasis></entry>
<entry>Menambahkan tag &lt;label&gt; ke output</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Menempatkan output ke array dengan setiap output kotak centang
sebagai satu elemen.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut yang dibutuhkan adalah <parameter>values</parameter> dan
<parameter>output</parameter>, kecuali sebaliknya anda menggunakan
<parameter>options</parameter>.
</para></listitem>
<listitem><para>
Seluruh output adalah sesuai XHTML.
</para></listitem>
<listitem><para>
Semua parameter yang tidak dalam daftar di atas dicetak sebagai pasangan
nama/nilai di dalam setiap tag &lt;input&gt; yang dibuat.
</para></listitem>
</itemizedlist>
<example>
<title>{html_checkboxes}</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array(
'Joe Schmoe',
'Jack Smith',
'Jane Johnson',
'Charlie Brown')
);
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
di mana template adalah
</para>
<programlisting>
<![CDATA[
{html_checkboxes name='id' values=$cust_ids output=$cust_names
selected=$customer_id separator='<br />'}
]]>
</programlisting>
<para>
atau di mana kode PHP adalah:
</para>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_checkboxes', array(
1000 => 'Joe Schmoe',
1001 => 'Jack Smith',
1002 => 'Jane Johnson',
1003 => 'Charlie Brown')
);
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
dan template adalah
</para>
<programlisting>
<![CDATA[
{html_checkboxes name='id' options=$cust_checkboxes
selected=$customer_id separator='<br />'}
]]>
</programlisting>
<para>
kedua contoh akan menampilkan:
</para>
<screen>
<![CDATA[
<label><input type="checkbox" name="id[]" value="1000" />Joe Schmoe</label><br />
<label><input type="checkbox" name="id[]" value="1001" checked="checked" />Jack Smith</label>
<br />
<label><input type="checkbox" name="id[]" value="1002" />Jane Johnson</label><br />
<label><input type="checkbox" name="id[]" value="1003" />Charlie Brown</label><br />
]]>
</screen>
</example>
<example>
<title>
Contoh database (misal PEAR atau ADODB):
</title>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'select type_id, types from contact_types order by type';
$smarty->assign('contact_types',$db->getAssoc($sql));
$sql = 'select contact_id, contact_type_id, contact '
.'from contacts where contact_id=12';
$smarty->assign('contact',$db->getRow($sql));
?>
]]>
</programlisting>
<para>Hasil query database di atas akan ditampilkan.</para>
<programlisting>
<![CDATA[
{html_checkboxes name='contact_type_id' options=$contact_types
selected=$contact.contact_type_id separator='<br />'}
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="language.function.html.radios"><varname>{html_radios}</varname></link>
dan
<link linkend="language.function.html.options"><varname>{html_options}</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
-->

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.image">
<title>{html_image}</title>
<para>
<varname>{html_image}</varname> adalah sebuah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat sebuah tag HTML <literal>&lt;img&gt;</literal>.
<parameter>height</parameter> dan <parameter>width</parameter>
secara otomatis dihitung dari gile gambar jika tidak disediakan.
</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>file</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>nama/path ke gambar</entry>
</row>
<row>
<entry>height</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>tinggi asli gambar</emphasis></entry>
<entry>Tinggi untuk menampilkan gambar</entry>
</row>
<row>
<entry>width</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>panjang asli gambar</emphasis></entry>
<entry>Panjang untuk menampilkan gambar</entry>
</row>
<row>
<entry>basedir</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>akar doc server web</emphasis></entry>
<entry>Direktori yang jadi basis path relatifnya</entry>
</row>
<row>
<entry>alt</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis><quote></quote></emphasis></entry>
<entry>Deskripsi alternatif dari gambar</entry>
</row>
<row>
<entry>href</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>nilai href untuk menghubungkan gambar</entry>
</row>
<row>
<entry>path_prefix</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Prefiks untuk path output</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
<parameter>basedir</parameter> adalah basis direktori yang menjadi dasar
path relatif ke gambar. Jika tidak disediakan, akar dokumen server web,
<varname>$_ENV['DOCUMENT_ROOT']</varname> dipakai sebagai basis.
Jika <link linkend="variable.security"><parameter>$security</parameter></link>
dihidupkan, path ke gambar harus di dalam
<link linkend="variable.secure.dir">direktori aman</link>.
</para></listitem>
<listitem><para>
<parameter>href</parameter> adalah nilai href untuk menghubungkan gambar.
Jika link tidak disediakan, tag <literal>&lt;a href="LINKVALUE"&gt;&lt;a&gt;</literal>
ditempatkan sekitar tag gambar.
</para> </listitem>
<listitem><para>
<parameter>path_prefix</parameter> adalah string prefiks opsional yang
dapat anda berikan path output.
Ini berguna jika anda ingin menyediakan nama server yang berbeda untuk gambar.
</para></listitem>
<listitem><para>
Semua parameters yang tidak dalam daftar di atas dicetak sebagai pasangan
nama/nilai di dalam tag <literal>&lt;img&gt;</literal> yang dibuat.
</para></listitem>
</itemizedlist>
<note>
<title>Catatan Teknis</title>
<para>
<varname>{html_image}</varname> membutuhkan mencari ke disk untuk membaca
gambar dan menghitung tingi serta panjangnya. Jika anda tidak memakai
<link linkend="caching">caching</link> template,
umumnya lebih baik untuk menghindari <varname>{html_image}</varname> dan
membiarkan tag gambar statis untuk performansi optimal.
</para>
</note>
<example>
<title>contoh {html_image}</title>
<programlisting>
<![CDATA[
{html_image file='pumpkin.jpg'}
{html_image file='/path/from/docroot/pumpkin.jpg'}
{html_image file='../path/relative/to/currdir/pumpkin.jpg'}
]]>
</programlisting>
<para>
Contoh tampilan dari template di atas akan seperti:
</para>
<screen>
<![CDATA[
<img src="pumpkin.jpg" alt="" width="44" height="68" />
<img src="/path/from/docroot/pumpkin.jpg" alt="" width="44" height="68" />
<img src="../path/relative/to/currdir/pumpkin.jpg" alt="" width="44" height="68" />
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,279 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.options">
<title>{html_options}</title>
<para>
<varname>{html_options}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat grup html <literal>&lt;select&gt;&lt;option&gt;</literal>
dengan data yang ditempatkan. Ia menangani item-item yang dipilihnya juga.
</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>values</entry>
<entry>array</entry>
<entry>Ya, kecuali memakai atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array nilai untuk dropdown</entry>
</row>
<row>
<entry>output</entry>
<entry>array</entry>
<entry>Ya, kecuali memakai atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array output untuk dropdown</entry>
</row>
<row>
<entry>selected</entry>
<entry>string/array</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Elemen opsi yang dipilih</entry>
</row>
<row>
<entry>options</entry>
<entry>associative array</entry>
<entry>Ya, kecuali memakai nilai dan output</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array nilai asosiatif dan output</entry>
</row>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Nama pilihan grup</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut yang dibutuhkan adalah
<parameter>values</parameter> dan <parameter>output</parameter>,
kecuali anda sebaliknya menggunakan <parameter>options</parameter> yang
dibagung.
</para></listitem>
<listitem><para>
Jika atribut opsional <parameter>name</parameter> disediakan, tag
<literal>&lt;select&gt;&lt;/select&gt;</literal> dibuat, sebaliknya
HANYA daftar <literal>&lt;option&gt;</literal> yang dibuat.
</para></listitem>
<listitem><para>
Jika yang nilai diberikan adalah array, ia akan memperlakukannya sebagai
html <literal>&lt;optgroup&gt;</literal>, dan menampilkan grup.
Rekursi didukung dengan <literal>&lt;optgroup&gt;</literal>.
</para></listitem>
<listitem><para>
Semua parameter yang tidak dalam daftar di atas dicetak sebagai pasangan
nama/nilai di dalam tag <literal>&lt;select&gt;</literal>. Diabaikan jika
<parameter>name</parameter> opsional tidak disediakan.
</para></listitem>
<listitem><para>
Semua output sesuai dengan XHTML.
</para></listitem>
</itemizedlist>
<example>
<title>Array asosiatif dengan atribut <varname>options</varname></title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('myOptions', array(
1800 => 'Joe Schmoe',
9904 => 'Jack Smith',
2003 => 'Charlie Brown')
);
$smarty->assign('mySelect', 9904);
?>
]]>
</programlisting>
<para>
Template berikut akan membuat daftar drop-down.
Perhatikan keberadaan atribut <parameter>name</parameter> yang membuat
tag <literal>&lt;select&gt;</literal>.
</para>
<programlisting>
<![CDATA[
{html_options name=foo options=$myOptions selected=$mySelect}
]]>
</programlisting>
<para>
Output dari contoh di atas akan terlihat seperti:
</para>
<screen>
<![CDATA[
<select name="foo">
<option label="Joe Schmoe" value="1800">Joe Schmoe</option>
<option label="Jack Smith" value="9904" selected="selected">Jack Smith</option>
<option label="Charlie Brown" value="2003">Charlie Brown</option>
</select>
]]>
</screen>
</example>
<example>
<title>Dropdown dengan array terpisah untuk<varname>values</varname> dan
<varname>ouptut</varname></title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_ids', array(56,92,13));
$smarty->assign('cust_names', array(
'Joe Schmoe',
'Jane Johnson',
'Charlie Brown'));
$smarty->assign('customer_id', 92);
?>
]]>
</programlisting>
<para>
Array di atas yang akan ditampilkan dengan template berikut (perhatikan
penggunaan fungsi php <ulink url="&url.php-manual;function.count">
<varname>count()</varname></ulink> sebagai pengubah untuk menyetel
ukuran pilihan).
</para>
<programlisting>
<![CDATA[
<select name="customer_id" size="{$cust_names|@count}">
{html_options values=$cust_ids output=$cust_names selected=$customer_id}
</select>
]]>
</programlisting>
<para>
Contoh di atas akan memperlihatkan:
</para>
<screen>
<![CDATA[
<select name="customer_id">
<option label="Joe Schmoe" value="56">Joe Schmoe</option>
<option label="Jack Smith" value="92" selected="selected">Jane Johnson</option>
<option label="Charlie Brown" value="13">Charlie Brown</option>
</select>
]]>
</screen>
</example>
<example>
<title>Contoh database (misal ADODB atau PEAR)</title>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'select type_id, types from contact_types order by type';
$smarty->assign('contact_types',$db->getAssoc($sql));
$sql = 'select contact_id, name, email, contact_type_id
from contacts where contact_id='.$contact_id;
$smarty->assign('contact',$db->getRow($sql));
?>
]]>
</programlisting>
<para>
Di mana sebuah template bisa seperti berikut. Perhatikan penggunaan pengubah
<link linkend="language.modifier.truncate"><varname>truncate</varname></link>.
</para>
<programlisting>
<![CDATA[
<select name="type_id">
<option value='null'>-- none --</option>
{html_options options=$contact_types|truncate:20 selected=$contact.type_id}
</select>
]]>
</programlisting>
</example>
<example>
<title>Dropdown dengan &lt;optgroup&gt; </title>
<programlisting role="php">
<![CDATA[
<?php
$arr['Sport'] = array(6 => 'Golf', 9 => 'Cricket',7 => 'Swim');
$arr['Rest'] = array(3 => 'Sauna',1 => 'Massage');
$smarty->assign('lookups', $arr);
$smarty->assign('fav', 7);
?>
]]>
</programlisting>
<para>Naskah di atas dan template berikut
</para>
<programlisting>
<![CDATA[
{html_options name=foo options=$lookups selected=$fav}
]]>
</programlisting>
<para>
akan memperlihatkan:
</para>
<screen>
<![CDATA[
<select name="foo">
<optgroup label="Sport">
<option label="Golf" value="6">Golf</option>
<option label="Cricket" value="9">Cricket</option>
<option label="Swim" value="7" selected="selected">Swim</option>
</optgroup>
<optgroup label="Rest">
<option label="Sauna" value="3">Sauna</option>
<option label="Massage" value="1">Massage</option>
</optgroup>
</select>
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.function.html.checkboxes"><varname>{html_checkboxes}</varname></link>
dan
<link linkend="language.function.html.radios"><varname>{html_radios}</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
-->

View File

@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.radios">
<title>{html_radios}</title>
<para>
<varname>{html_radios}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat grup tombol radio HTML. Ia juga menangani item
yang dipilihnya juga.
</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>Tidak</entry>
<entry><emphasis>radio</emphasis></entry>
<entry>Nama daftar radio</entry>
</row>
<row>
<entry>values</entry>
<entry>array</entry>
<entry>Ya, kecuali memakai atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array nilai untuk tombol radio</entry>
</row>
<row>
<entry>output</entry>
<entry>array</entry>
<entry>Ya, kecuali atribut options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array output untuk tombol radio</entry>
</row>
<row>
<entry>selected</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Elemen radio yang dipilih</entry>
</row>
<row>
<entry>options</entry>
<entry>associative array</entry>
<entry>Ya, kecuali memakai nilai dan output</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array asosiatif nilai dan output</entry>
</row>
<row>
<entry>separator</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>String teks untuk memisahkan setiap item radio</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Menempatkan tag radio ke array daripada output</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut yang diperlukan adalah <parameter>values</parameter> dan
<parameter>output</parameter>, kecuali sebaliknya anda memakai
<parameter>options</parameter>.
</para></listitem>
<listitem><para>
Semua output sesuai dengan XHTML.
</para></listitem>
<listitem><para>
Semua parameter yang tidak dalam daftar di atas adalah output sebagai
pasangan nama/nilai di dalam setiap tag <literal>&lt;input&gt;</literal>
yang dibuat.
</para></listitem>
</itemizedlist>
<example>
<title>contoh pertama {html_radios}</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array(
'Joe Schmoe',
'Jack Smith',
'Jane Johnson',
'Charlie Brown')
);
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{html_radios name='id' values=$cust_ids output=$cust_names
selected=$customer_id separator='<br />'}
]]>
</programlisting>
</example>
<example>
<title>contoh kedua {html_radios}</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_radios', array(
1000 => 'Joe Schmoe',
1001 => 'Jack Smith',
1002 => 'Jane Johnson',
1003 => 'Charlie Brown'));
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{html_radios name='id' options=$cust_radios
selected=$customer_id separator='<br />'}
]]>
</programlisting>
<para>
Kedua contoh akan memperlihatkan:
</para>
<screen>
<![CDATA[
<label for="id_1000">
<input type="radio" name="id" value="1000" id="id_1000" />Joe Schmoe</label><br />
<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Jack Smith</label><br />
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Jane Johnson</label><br />
<label for="id_1003"><input type="radio" name="id" value="1003" id="id_1003" />Charlie Brown</label><br />
]]>
</screen>
</example>
<example>
<title>{html_radios} - Contoh database (misal PEAR atau ADODB):</title>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'select type_id, types from contact_types order by type';
$smarty->assign('contact_types',$db->getAssoc($sql));
$sql = 'select contact_id, name, email, contact_type_id '
.'from contacts where contact_id='.$contact_id;
$smarty->assign('contact',$db->getRow($sql));
?>
]]>
</programlisting>
<para>
Variabel yang ditetmpatkan dari database di atas akan menjadi
output dengan template:
</para>
<programlisting>
<![CDATA[
{html_radios name='contact_type_id' options=$contact_types
selected=$contact.contact_type_id separator='<br />'}
]]>
</programlisting>
</example>
<para>
LIhat juga <link
linkend="language.function.html.checkboxes"><varname>{html_checkboxes}</varname></link>
dan <link
linkend="language.function.html.options"><varname>{html_options}</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
-->

View File

@@ -0,0 +1,347 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.select.date">
<title>{html_select_date}</title>
<para>
<varname>{html_select_date}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat dropdown tanggal.
Ia bisa menampilkan setiap atau seluruh tahun, bulan, dan hari.
Semua parameter yang tidak dalam dafrar di bawah ini dicetak sebagai
pasangan nama/nilai di dalam tag <literal>&lt;select&gt;</literal> hari,
bulan dan tahun.
</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>prefix</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>Date_</entry>
<entry>Apa yang menjadi prefiks nama var</entry>
</row>
<row>
<entry>time</entry>
<entry>timestamp/ YYYY-MM-DD</entry>
<entry>Tidak</entry>
<entry>waktu dalam cap waktu unix atau format YYYY-MM-DD</entry>
<entry>Tanggal/jam apa yang dipakai</entry>
</row>
<row>
<entry>start_year</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>tahun sekarang</entry>
<entry>Tahun pertama dalam dropdown, baik angka tahun,
atau relatif ke tahun sekarang (+/- N)</entry>
</row>
<row>
<entry>end_year</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>sama seperti start_year</entry>
<entry>Tahun terakhir dalam dropdown, baik angka tahun,
atau relatif ke tahun sekarang (+/- N)</entry>
</row>
<row>
<entry>display_days</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakan menampilkan hari atau tidak</entry>
</row>
<row>
<entry>display_months</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan bulan atau tidak</entry>
</row>
<row>
<entry>display_years</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan tahun atau tidak</entry>
</row>
<row>
<entry>month_format</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>%B</entry>
<entry>Format apa seharusnya bulan ditampilkan dalam (strftime)</entry>
</row>
<row>
<entry>day_format</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>%02d</entry>
<entry>Format apa hari seharusnya ditampilkan dalam (sprintf)</entry>
</row>
<row>
<entry>day_value_format</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>%d</entry>
<entry>Format apa nilai hari seharusnya ditampilkan dalam (sprintf)</entry>
</row>
<row>
<entry>year_as_text</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Apakah menampilkan tahun sebagai teks</entry>
</row>
<row>
<entry>reverse_years</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Menampilkan tahun dalam urutan terbalik</entry>
</row>
<row>
<entry>field_array</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>
Jika nama diberikan, kotak pilih akan ditampilkan agar hasil akan
dikembalikan ke PHP dalam bentuk name[Day], name[Year], name[Month].
</entry>
</row>
<row>
<entry>day_size</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut size untuk memilih tag jika disediakan</entry>
</row>
<row>
<entry>month_size</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut size untuk memilih tag jika disediakan</entry>
</row>
<row>
<entry>year_size</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut size untuk memilih tag jika dsediakan</entry>
</row>
<row>
<entry>all_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra ke semua tag select/input jika disediakan</entry>
</row>
<row>
<entry>day_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk tag select/input jika disediakan</entry>
</row>
<row>
<entry>month_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk tag select/input jika disediakan</entry>
</row>
<row>
<entry>year_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk tag select/input jika disediakan</entry>
</row>
<row>
<entry>field_order</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>MDY</entry>
<entry>Urutan untuk menampilkan field</entry>
</row>
<row>
<entry>field_separator</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>\n</entry>
<entry>String dicetak diantara field yang berbeda</entry>
</row>
<row>
<entry>month_value_format</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>%m</entry>
<entry>format strftime() dari nilai bulan, standarnya adalah
%m untuk angka bulan.</entry>
</row>
<row>
<entry>year_empty</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Jika disediakan maka elemen pertama dari kotak-pilih tahun memiliki
nilai ini sebagai labelnya dan <quote></quote> sebagai nilainya. Ini
berguna untuk menjadikan kotak-select membaca
<quote>Please select a year</quote> sebagai contoh.
Catatan bahwa anda bisa memakai nilai seperti <quote>-MM-DD</quote>
sebagai atribut-waktu untuk menunjukan tahuun yang tidak dipilih.</entry>
</row>
<row>
<entry>month_empty</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Jika disediakan maka elemen pertama dari kotak-pilih bulan memiliki
nilai ini sebagai labelnya dan <quote></quote> sebagai nilainya.
Catatan bahwa anda dapat memakai nilai seperti <quote>YYYY--DD</quote>
sebagai atribut-waktu untuk menunjukan bulan yang tidak dipilih.</entry>
</row>
<row>
<entry>day_empty</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Jika disediakan maka elemen pertama dari kotak-pilih hari memiliki
nilai ini sebagai labelnya dan <quote></quote> sebagai nilainya.
Catatan bahwa anda dapat memakai nilai seperti <quote>YYYY-MM-</quote>
sebagai atribut-waktu untuk menunjukan hari yang tidak dipilih.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<para>
Ada fungsi php berguina pada
<link linkend="tips.dates">halaman tips tanggal</link> untuk mengubah
nilai bentuk <varname>{html_select_date}</varname> ke cap wantu.
</para>
</note>
<example>
<title>{html_select_date}</title>
<para>Kode template</para>
<programlisting>
<![CDATA[
{html_select_date}
]]>
</programlisting>
<para>
Ini akan memperlihatkan:
</para>
<screen>
<![CDATA[
<select name="Date_Month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
..... snipped .....
<option value="10">October</option>
<option value="11">November</option>
<option value="12" selected="selected">December</option>
</select>
<select name="Date_Day">
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
..... snipped .....
<option value="11">11</option>
<option value="12">12</option>
<option value="13" selected="selected">13</option>
<option value="14">14</option>
<option value="15">15</option>
..... snipped .....
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="Date_Year">
<option value="2006" selected="selected">2006</option>
</select>
]]>
</screen>
</example>
<example>
<title>contoh kedua {html_select_date}</title>
<programlisting>
<![CDATA[
{* awal dan akhir tahun bisa relatif ke tahun saat ini *}
{html_select_date prefix='StartDate' time=$time start_year='-5'
end_year='+1' display_days=false}
]]>
</programlisting>
<para>
Dengan 2000 sebagai tahun sekarang outputnya:
</para>
<screen>
<![CDATA[
<select name="StartDateMonth">
<option value="1">January</option>
<option value="2">February</option>
.... snipped ....
<option value="11">November</option>
<option value="12" selected="selected">December</option>
</select>
<select name="StartDateYear">
<option value="1995">1995</option>
.... snipped ....
<option value="1999">1999</option>
<option value="2000" selected="selected">2000</option>
<option value="2001">2001</option>
</select>
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.function.html.select.time"><varname>{html_select_time}</varname></link>,
<link linkend="language.modifier.date.format"><varname>date_format</varname></link>,
<link linkend="language.variables.smarty.now"><parameter>$smarty.now</parameter></link>
dan the <link linkend="tips.dates">halaman tips tanggal</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
-->

View File

@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.select.time">
<title>{html_select_time}</title>
<para>
<varname>{html_select_time}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang membuat dropdowns jam untuk anda.
Ia bisa menampilkan setiap atau seluruh jam, menit, detik dan meridian.
</para>
<para>
Atribut <parameter>time</parameter> dapat memiliki format berbeda.
Ia bisa berupa cap waktu uni, string dengan format
<literal>YYYYMMDDHHMMSS</literal> atau string yang dapat diurai oleh
<ulink url="&url.php-manual;strtotime"><varname>strtotime()</varname></ulink>
PHP.
</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>prefix</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>Time_</entry>
<entry>Apa yang mengawali nama var</entry>
</row>
<row>
<entry>time</entry>
<entry>timestamp</entry>
<entry>Tidak</entry>
<entry>jam sekarang</entry>
<entry>Tanggal/jam apa yang dipakai</entry>
</row>
<row>
<entry>display_hours</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan jam atau tidak</entry>
</row>
<row>
<entry>display_minutes</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan menit atau tidak</entry>
</row>
<row>
<entry>display_seconds</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan detik atau tidak</entry>
</row>
<row>
<entry>display_meridian</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menampilkan meridian (am/pm) atau tidak</entry>
</row>
<row>
<entry>use_24_hours</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Apakah menggunakan waktu 24 jam atau tidak</entry>
</row>
<row>
<entry>minute_interval</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry>1</entry>
<entry>Angka interval dalam dropdown menit</entry>
</row>
<row>
<entry>second_interval</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry>1</entry>
<entry>Angka interval dalam dropdown detik</entry>
</row>
<row>
<entry>field_array</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>n/a</entry>
<entry>Menyimpan nilai ke array dari nama ini</entry>
</row>
<row>
<entry>all_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk select/input jika disediakan</entry>
</row>
<row>
<entry>hour_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk select/input jika disediakan</entry>
</row>
<row>
<entry>minute_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk select/input jika disediakan</entry>
</row>
<row>
<entry>second_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk select/input jika disediakan</entry>
</row>
<row>
<entry>meridian_extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>null</entry>
<entry>Menambahkan atribut ekstra untuk select/input jika disediakan</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{html_select_time}</title>
<programlisting>
<![CDATA[
{html_select_time use_24_hours=true}
]]>
</programlisting>
<para>
Pada 9:20 dan 23 detik di pagi hari template di atas akan menampilkan:
</para>
<screen>
<![CDATA[
<select name="Time_Hour">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
<option value="08">08</option>
<option value="09" selected>09</option>
<option value="10">10</option>
... snipped ....
<option value="22">22</option>
<option value="23">23</option>
</select>
<select name="Time_Minute">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
<option value="19">19</option>
<option value="20" selected>20</option>
<option value="21">21</option>
... snipped ....
<option value="58">58</option>
<option value="59">59</option>
</select>
<select name="Time_Second">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
<option value="22">22</option>
<option value="23" selected>23</option>
<option value="24">24</option>
... snipped ....
<option value="58">58</option>
<option value="59">59</option>
</select>
<select name="Time_Meridian">
<option value="am" selected>AM</option>
<option value="pm">PM</option>
</select>
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.variables.smarty.now"><parameter>$smarty.now</parameter></link>,
<link linkend="language.function.html.select.date"><varname>{html_select_date}</varname></link>
dan <link linkend="tips.dates">halaman tips tanggal</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
-->

View File

@@ -0,0 +1,247 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.html.table">
<title>{html_table}</title>
<para>
<varname>{html_table}</varname> adalah
<link linkend="language.custom.functions">fungsi kustom</link>
yang mengeluarkan array data ke dalam HTML <literal>&lt;table&gt;</literal>.
</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>loop</entry>
<entry>array</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Array data untuk diulang</entry>
</row>
<row>
<entry>cols</entry>
<entry>mixed</entry>
<entry>Tidak</entry>
<entry><emphasis>3</emphasis></entry>
<entry>
Jumlah kolom dalam tabel atau daftar dipisahkan-koma daru nama heading
kolom. Jika atribut-cols kosong, tapi rows disediakan, maka jumlah cols
dihitung sejumlah rows dan jumlah elemen untuk ditampilkan cukup cols
untuk menampilkan semua elemen. Jika kedua rows dan cols, mengabaikan
standar cols ke 3. Jika disediakan sebagai daftar atau array, jumlah
kolom dihitung dari jumlah elemen dalam daftar atau array.
</entry>
</row>
<row>
<entry>rows</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>
Jumlah baris dalam tabel. Jika atribut-rows kosong, tapi cols disediakan,
maka jumlah rows dihitung dengan jumlahcols dan jumlah elemen untuk
ditampilkan cukup rows untuk menampilkan semua elemen.
</entry>
</row>
<row>
<entry>inner</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>cols</emphasis></entry>
<entry>
Arah elemen konsekutif dalam pengulangan-array yang diberikan.
<emphasis>cols</emphasis> berarti elemen ditampilkan kolom-demi-kolom.
<emphasis>rows</emphasis> berarti elemen ditampilkan baris-demi-baris.
</entry>
</row>
<row>
<entry>caption</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Teks yang dipakai untuk elemen <literal>&lt;caption&gt;</literal>
tabel</entry>
</row>
<row>
<entry>table_attr</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>border="1"</emphasis></entry>
<entry>Atribut untuk tag <literal>&lt;table&gt;</literal></entry>
</row>
<row>
<entry>th_attr</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Atribut untuk tag <literal>&lt;th&gt;</literal>
(array diputar)</entry>
</row>
<row>
<entry>tr_attr</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>atribut untuk tag <literal>&lt;tr&gt;</literal>
(arrays diputar)</entry>
</row>
<row>
<entry>td_attr</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Atribut untuk tag <literal>&lt;td&gt;</literal>
(arrays diputar)</entry>
</row>
<row>
<entry>trailpad</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>&amp;nbsp;</emphasis></entry>
<entry>Nilai untuk mengisi sel sisa pada baris terakhir (jika ada)</entry>
</row>
<row>
<entry>hdir</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>right</emphasis></entry>
<entry>
Arah setiap baris digambar. nilai yang mungkin:
<emphasis>right</emphasis> (kiri-ke-kanan), dan
<emphasis>left</emphasis> (kanan-ke-kiri)
</entry>
</row>
<row>
<entry>vdir</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>down</emphasis></entry>
<entry>
Arah setiap kolom digambar. Nilai yang mungkin:
<emphasis>down</emphasis> (atas-ke-bawah), <emphasis>up</emphasis>
(bawah-ke-atas)
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<itemizedlist>
<listitem><para>
Atribut <parameter>cols</parameter> menentukan berapa banyak kolom
berada dalam tabel.
</para></listitem>
<listitem><para>
Nilai <parameter>table_attr</parameter>, <parameter>tr_attr</parameter>
dan <parameter>td_attr</parameter> menentukan atribut yang diberikan ke
tag <literal>&lt;table&gt;</literal>, <literal>&lt;tr&gt;</literal>
dan <literal>&lt;td&gt;</literal>.
</para></listitem>
<listitem><para>
Jika <parameter>tr_attr</parameter> atau <parameter>td_attr</parameter>
adalah array, ia akan dilewati berputar.
</para></listitem>
<listitem><para>
<parameter>trailpad</parameter> adalah nilai yang disimpan ke dalam sel
sisa pada baris tabel terakhir jika ada.
</para></listitem>
</itemizedlist>
<example>
<title>{html_table}</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign( 'data', array(1,2,3,4,5,6,7,8,9) );
$smarty->assign( 'tr', array('bgcolor="#eeeeee"','bgcolor="#dddddd"') );
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>Variabel yang ditempatkan dari php dapat ditampilkan seperti tiga
contoh demonstrasi. Setiap contoh menampilkan template diikuti oleh output.
</para>
<programlisting>
<![CDATA[
{**** Contoh Satu ****}
{html_table loop=$data}
<table border="1">
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td></tr>
</tbody>
</table>
{**** Contoh Dua ****}
{html_table loop=$data cols=4 table_attr='border="0"'}
<table border="0">
<tbody>
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>
{**** Contoh Tiga ****}
{html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}
<table border="1">
<thead>
<tr>
<th>pertama</th><th>kedua</th><th>ketiga</th><th>keempat</th>
</tr>
</thead>
<tbody>
<tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.mailto">
<title>{mailto}</title>
<para>
<varname>{mailto}</varname> mengotomasi pembuatan link <literal>mailto:</literal>
dan secara opsional mengkodekannya. Mengkodekan email menjadikannya lebih
sulit untuk pengawas web untuk mengangkat alamat email dari sebuah situs0.
<note>
<title>Catatan Teknis</title>
<para>
Javascript mungkin bentuk pengkodean paling teliti, meskipun anda dapat
menggunakan pengkodean heksa juga.
</para>
</note>
</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>address</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Alamat e-mail</entry>
</row>
<row>
<entry>text</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Teks untuk ditampilkan, standarnya adalah alamat e-mail</entry>
</row>
<row>
<entry>encode</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>none</emphasis></entry>
<entry>Bagaimana untuk mengkodekan e-mail. Bisa berupa salah satu dari <literal>none</literal>,
<literal>hex</literal>, <literal>javascript</literal>
atau <literal>javascript_charcode</literal>.</entry>
</row>
<row>
<entry>cc</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Alamat Email untuk carbon copy, pisahkan entri dengan koma.
</entry>
</row>
<row>
<entry>bcc</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Alamat Email untuk blind carbon copy, pisahkan dengan koma</entry>
</row>
<row>
<entry>subject</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Subyek Email</entry>
</row>
<row>
<entry>newsgroups</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Menulis ke Newsgroups, pisahkan entri dengan koma.</entry>
</row>
<row>
<entry>followupto</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Alamat untuk diikuti, pisahkan entri dengan koma.</entry>
</row>
<row>
<entry>extra</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Setiap informasi ekstra yang ingin anda kirimkan ke link, seperti
kelas style sheet</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>contoh baris {mailto} diikuti oleh hasil</title>
<programlisting>
<![CDATA[
{mailto address="me@example.com"}
<a href="mailto:me@example.com" >me@example.com</a>
{mailto address="me@example.com" text="send me some mail"}
<a href="mailto:me@example.com" >send me some mail</a>
{mailto address="me@example.com" encode="javascript"}
<script type="text/javascript" language="javascript">
eval(unescape('%64%6f% ... snipped ...%61%3e%27%29%3b'))
</script>
{mailto address="me@example.com" encode="hex"}
<a href="mailto:%6d%65.. snipped..3%6f%6d">&#x6d;&..snipped...#x6f;&#x6d;</a>
{mailto address="me@example.com" subject="Hello to you!"}
<a href="mailto:me@example.com?subject=Hello%20to%20you%21" >me@example.com</a>
{mailto address="me@example.com" cc="you@example.com,they@example.com"}
<a href="mailto:me@example.com?cc=you@example.com%2Cthey@example.com" >me@example.com</a>
{mailto address="me@example.com" extra='class="email"'}
<a href="mailto:me@example.com" class="email">me@example.com</a>
{mailto address="me@example.com" encode="javascript_charcode"}
<script type="text/javascript" language="javascript">
<!--
{document.write(String.fromCharCode(60,97, ... snipped ....60,47,97,62))}
//-->
</script>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="language.modifier.escape"><varname>escape</varname></link>,
<link linkend="language.function.textformat"><varname>{textformat}</varname></link>
dan
<link linkend="tips.obfuscating.email">mengaburkan alamat email</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
-->

View File

@@ -0,0 +1,203 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.math">
<title>{math}</title>
<para>
<varname>{math}</varname> membolehkan desainer template untuk melakukan
persamaan matematika dalam template.
</para>
<itemizedlist>
<listitem><para>
Setiap variabel template numerik bisa dipakai dalam persamaa, dan hasil
dicetak di tempat tag.
</para></listitem>
<listitem><para>
Variabel yang dipakai dalam persamaa dikirimkan sebagai parameter, yang
bisa berupa variabel template atau nilai statis.
</para></listitem>
<listitem><para>+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min,
pi, pow, rand, round, sin, sqrt, srans dan tan adalah operator yang benar.
Lihat dokumentasi PHP untuk informasi lebih jauh pada fungsi
<ulink url="&url.php-manual;eval">math</ulink> ini.
</para></listitem>
<listitem><para>
Jika anda menyediakan atribut <parameter>assign</parameter>, output fungsi
<varname>{math}</varname> akan ditempatkan ke variabel template ini daripada
ke template.
</para></listitem>
</itemizedlist>
<note>
<title>Catatan Teknis</title>
<para>
<varname>{math}</varname> adalah fungsi yang mahal dalam performansi
karena penggunaannya dalam fungsi php <ulink url="&url.php-manual;eval">
<varname>eval()</varname></ulink>. Melakukan matematika dalam PHP jauh
lebih efisien, maka kapan saja memungkinkan lakukan perhitungan matamatika
dalam naskah dan <link linkend="api.assign"><varname>assign()</varname></link>
hasil ke template. Hindari fungsi panggil berulang
<varname>{math}</varname>, misalnya dalam
<link linkend="language.function.section"> pengulangan
<varname>{section}</varname></link>.
</para>
</note>
<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>equation</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Persamaan yang dieksekusi</entry>
</row>
<row>
<entry>format</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Format hasil (sprintf)</entry>
</row>
<row>
<entry>var</entry>
<entry>numeric</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nilai variabel persamaan</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel template untuk ditempati</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>numeric</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Nilai variabel persamaan</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{math}</title>
<para>
<emphasis role="bold">Contoh a:</emphasis>
</para>
<programlisting>
<![CDATA[
{* $height=4, $width=5 *}
{math equation="x + y" x=$height y=$width}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
9
]]>
</screen>
<para>
<emphasis role="bold">Contoh b:</emphasis>
</para>
<programlisting>
<![CDATA[
{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
{math equation="height * width / division"
height=$row_height
width=$row_width
division=#col_div#}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
100
]]>
</screen>
<para>
<emphasis role="bold">Example c:</emphasis>
</para>
<programlisting>
<![CDATA[
{* anda bisa memakai tanda kurung buka/tutup *}
{math equation="(( x + y ) / z )" x=2 y=10 z=2}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
6
]]>
</screen>
<para>
<emphasis role="bold">Example d:</emphasis>
</para>
<programlisting>
<![CDATA[
{* anda hanya bisa menyediakan parameter format dalam format sprintf *}
{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
9.44
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.popup.init">
<title>{popup_init}</title>
<para>
<link linkend="language.function.popup"><varname>{popup}</varname></link>
adalah integrasi dari <ulink url="&url.overLib;">overLib</ulink>,
sebuah librari yang dipakai untuk jendela popup. Ini dipakai untuk
informasi sensitif, seperti jendela bantuan atau tooltips.
</para>
<itemizedlist>
<listitem><para>
<varname>{popup_init}</varname> harus dipanggil <emphasis>hanya sekali</emphasis>,
lebih disukai di dalam tag <literal>&lt;head&gt;</literal> di setiap halaman
yang anda rencanakan untuk menggunakan fungsi <link linkend="language.function.popup">
<varname>{popup}</varname></link>.
</para></listitem>
<listitem><para>
Path relatif ke naskah yang sedang dijalankan atau path domain lengkap,
bukan relatif ke template.
</para></listitem>
<listitem><para>
<ulink url="&url.overLib;">overLib</ulink> ditulis dan dipelihara oleh
Erik Bosrup, dan homepage/download di
<ulink url="&url.overLib;">&url.overLib;</ulink>.
</para></listitem>
</itemizedlist>
<example>
<title>{popup_init}</title>
<programlisting>
<![CDATA[
<head>
{* popup_init harus dipanggil sekali di atas halam *}
{popup_init src='javascripts/overlib/overlib.js'}
{* contoh url lengkap *}
{popup_init src='http://myserver.org/my_js_libs/overlib/overlib.js'}
</head>
// contoh pertama akan menampilkan
<head>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script type="text/javascript" language="JavaScript" src="javascripts/overlib/overlib.js"></script>
</head>
]]>
</programlisting>
</example>
<note>
<title>Validasi XHTML</title>
<para><literal>{popup_init}</literal> tidak memvalidasi dengan langsung dan
akan memperoleh kesalahan
<literal>document type does not allow element "div" here;</literal>
(misal tag <literal>&lt;div&gt;</literal> dalam <literal>&lt;head&gt;</literal>).
Ini berarti anda perlu menyertakan tag <literal>&lt;script&gt;</literal> dan
<literal>&lt;div&gt;</literal> secara manual.
</para>
</note>
</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
-->

View File

@@ -0,0 +1,442 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.popup">
<title>{popup}</title>
<para>
<varname>{popup}</varname> dipakai untuk membuat lapisan/jendela popup
Javascript.
<link linkend="language.function.popup.init">
<varname>{popup_init}</varname></link> HARUS dipanggil pertama agar ini bekerja.
</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>text</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>text/html untuk ditampilkan dalam jendela popup</entry>
</row>
<row>
<entry>trigger</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>onMouseOver</emphasis></entry>
<entry>apa yang dipakai untuk memicu jendela popup. Ia bisa berupa
onMouseOver atau onClick</entry>
</row>
<row>
<entry>sticky</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>membiarkan popup tetap tampil sampai ditutup</entry>
</row>
<row>
<entry>caption</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetal judul untuk dinamai</entry>
</row>
<row>
<entry>fgcolor</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>warna di dalam kotak popup</entry>
</row>
<row>
<entry>bgcolor</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>warna batas kotak popup</entry>
</row>
<row>
<entry>textcolor</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel warna teks di dalam kotak</entry>
</row>
<row>
<entry>capcolor</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel warna judul kotak</entry>
</row>
<row>
<entry>closecolor</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel warna teks tutup</entry>
</row>
<row>
<entry>textfont</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel font yang dipakai oleh teks utama</entry>
</row>
<row>
<entry>captionfont</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel font judul</entry>
</row>
<row>
<entry>closefont</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel font untuk teks <quote>Close</quote></entry>
</row>
<row>
<entry>textsize</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel besar font teks utama</entry>
</row>
<row>
<entry>captionsize</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel besar font judul</entry>
</row>
<row>
<entry>closesize</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel besar font teks <quote>Close</quote></entry>
</row>
<row>
<entry>width</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel panjang kotak</entry>
</row>
<row>
<entry>height</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel tinggi kotak</entry>
</row>
<row>
<entry>left</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>menjadikan popup pergi ke kiri mouse</entry>
</row>
<row>
<entry>right</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>menjadikan popups pergi ke kanan mouse</entry>
</row>
<row>
<entry>center</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>menjadikan popup pergi ke tengah mouse</entry>
</row>
<row>
<entry>above</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>menjadikan popup di atas mouse. CATATAN: hanya mungkin
bila tinggi sudah disetel</entry>
</row>
<row>
<entry>below</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>menjadikan popup di bawah mouse</entry>
</row>
<row>
<entry>border</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menjadikan batas popup lebih tebal atau lebih kecil</entry>
</row>
<row>
<entry>offsetx</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>berapa jauh poopup dari penunjuk akan ditampilkan, secara
horisontal</entry>
</row>
<row>
<entry>offsety</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>berapa jauh poopup dari penunjuk akan ditampilkan, secara
vertikal</entry>
</row>
<row>
<entry>fgbackground</entry>
<entry>url to image</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menetapkan gambar yang dipakai daripada warna di dalam popup.</entry>
</row>
<row>
<entry>bgbackground</entry>
<entry>url to image</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menetapkan gambar yang ditetapkan daripada warna untuk batas popup.
CATATAN: Anda ingin menyetel bgcolor ke <quote></quote> atau warna akan
tampil juga. CATATAN: Ketika ada link Close, Netscape akan menggambar
ulang sel tabel, menjadikan semuanya terlihat tidak benar</entry>
</row>
<row>
<entry>closetext</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel teks <quote>Close</quote> ke sesuatu yang lain</entry>
</row>
<row>
<entry>noclose</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>tidak menampilkan teks <quote>Close</quote> pada sticky dengan
sebuah judul</entry>
</row>
<row>
<entry>status</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel teks dalam bar status browsers</entry>
</row>
<row>
<entry>autostatus</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel teks bar status ke teks popup.
CATATAN: mengabaikan setelan status</entry>
</row>
<row>
<entry>autostatuscap</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyeteal teks bar status ke teks judul.
CATATAN: mengabaikan setelan status dan autostatus</entry>
</row>
<row>
<entry>inarray</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>memberitahu overLib untuk membaca teks dari indeks ini dalam array
ol_text, ditempatkan dalam overlib.js. Parameter ini bisa dipakai
daripada teks</entry>
</row>
<row>
<entry>caparray</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>memberitahu overLib untuk membaca judul dari indeks ini dalam array
ol_caps</entry>
</row>
<row>
<entry>capicon</entry>
<entry>url</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menampilkan gambar yang diberikan sebelum judul popup</entry>
</row>
<row>
<entry>snapx</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menempelkan popup ke posisi dalam jaring horizontal</entry>
</row>
<row>
<entry>snapy</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menempelkan popup ke posisi dalam jaring vertikal</entry>
</row>
<row>
<entry>fixx</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>mengunci posisi horisontal popups Catatan:
mengabaikan semua penempatan horisontal lain</entry>
</row>
<row>
<entry>fixy</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>mengunci posisi vertikal popups Catatan:
mengabaikan semua penempatan vertikal lain</entry>
</row>
<row>
<entry>background</entry>
<entry>url</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menyetel gambar yang dipakai daripada latar belakang kotak tabel</entry>
</row>
<row>
<entry>padx</entry>
<entry>integer,integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>mengisi gambar latar belakang denga spasi horisontal
untuk penempatan teks. Catatan: ini adalah dua perintah parameter</entry>
</row>
<row>
<entry>pady</entry>
<entry>integer,integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>mengisi gambar latar belakang denga spasi vertikal
untuk penempatan teks. Catatan: ini adalah dua perintah parameter</entry>
</row>
<row>
<entry>fullhtml</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>membolehkan anda untuk mengontrol html sepenuhnya pada gambar
latar belakang. Kode html diharapkan dalam atribut <quote>text</quote></entry>
</row>
<row>
<entry>frame</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>mengontrol popups dalam bingkai berbeda. Lihat halaman overlib
untuk info lebih jauh atas fungsi ini</entry>
</row>
<row>
<entry>function</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>memanggil fungsi javascript yang ditetapkan dan mengambil
nilai balik sebagai teks yang harus ditampilkan dalam jendela popup</entry>
</row>
<row>
<entry>delay</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>menjadikan popup itu seperti tooltip. Ia hanya akan muncul setelah
tenggal dalam milidetik</entry>
</row>
<row>
<entry>hauto</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>otomatis menentukan apakah popup harus di sebelah kiri atau
kanan mouse.</entry>
</row>
<row>
<entry>vauto</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>otomatis menentukan apakah popup harus di sebelah atas atau
bawah mouse.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{popup}</title>
<programlisting>
<![CDATA[
{* popup_init harus dipanggil sekali di atas halaman *}
{popup_init src='/javascripts/overlib.js'}
{* buat link dengan jendela popup saat anda memindahkan mouse anda *}
<a href="mypage.html" {popup text='This link takes you to my page!'}>mypage</a>
{* anda bisa memakai html, link, dll dalam teks popup anda *}
<a href="mypage.html" {popup sticky=true caption='mypage contents'
text="<ul><li>links</li><li>pages</li><li>images</li></ul>"
snapx=10 snapy=10 trigger='onClick'}>mypage</a>
{* popup melewati sebuah sel tabel *}
<tr><td {popup caption='Part details' text=$part_long_description}>{$part_number}</td></tr>
]]>
</programlisting>
</example>
<para>Ada contoh baik lainnya di halaman
<link linkend="language.function.capture"><varname>{capture}</varname>
</link>.</para>
<para>
Lihat juga
<link linkend="language.function.popup.init"><varname>{popup_init}</varname></link>
dan
<ulink url="&url.overLib;">overLib</ulink> homepage.
</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
-->

View File

@@ -0,0 +1,296 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.function.textformat">
<title>{textformat}</title>
<para>
<varname>{textformat}</varname> adalah
<link linkend="plugins.block.functions">fungsi blok</link> yang dipakai
untuk membentuk teks. Pada dasarnya ia membersihkan spasi dan karakter
khusus, dan membentuk paragraf dengan menggulung di batas dn baris
yang menggantung.
</para>
<para>
Anda bisa menyetel parameter secara eksplisit, atau memakai gaya preset.
Saat ini <quote>email</quote> adalah satu-satunya gaya yang tersedia.
</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>style</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Gaya preset</entry>
</row>
<row>
<entry>indent</entry>
<entry>number</entry>
<entry>Tidak</entry>
<entry><emphasis>0</emphasis></entry>
<entry>Jumlah karakter untuk melekuk setiap baris</entry>
</row>
<row>
<entry>indent_first</entry>
<entry>number</entry>
<entry>Tidak</entry>
<entry><emphasis>0</emphasis></entry>
<entry>Jumlah karakter untuk melekukan baris pertama</entry>
</row>
<row>
<entry>indent_char</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>(single space)</emphasis></entry>
<entry>Karakter (atau string karakter) untuk melekukan</entry>
</row>
<row>
<entry>wrap</entry>
<entry>number</entry>
<entry>Tidak</entry>
<entry><emphasis>80</emphasis></entry>
<entry>Berapa banyak karakter untuk menggulung setiap barisnya</entry>
</row>
<row>
<entry>wrap_char</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>\n</emphasis></entry>
<entry>Karakter (or string of chars) to break each line with</entry>
</row>
<row>
<entry>wrap_cut</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry><emphasis>&false;</emphasis></entry>
<entry>Jika &true;, gulungan akan memecah baris di karakter yang tepat
daripada di batas kata</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variabel template yang akan ditempati output</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{textformat}</title>
<programlisting>
<![CDATA[
{textformat wrap=40}
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is bar.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
{/textformat}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
This is foo. This is foo. This is foo.
This is foo. This is foo. This is foo.
This is bar.
bar foo bar foo foo. bar foo bar foo
foo. bar foo bar foo foo. bar foo bar
foo foo. bar foo bar foo foo. bar foo
bar foo foo. bar foo bar foo foo.
]]>
</screen>
<programlisting>
<![CDATA[
{textformat wrap=40 indent=4}
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is bar.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
{/textformat}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
This is foo. This is foo. This is
foo. This is foo. This is foo. This
is foo.
This is bar.
bar foo bar foo foo. bar foo bar foo
foo. bar foo bar foo foo. bar foo
bar foo foo. bar foo bar foo foo.
bar foo bar foo foo. bar foo bar
foo foo.
]]>
</screen>
<programlisting>
<![CDATA[
{textformat wrap=40 indent=4 indent_first=4}
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is bar.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
{/textformat}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
This is foo. This is foo. This
is foo. This is foo. This is foo.
This is foo.
This is bar.
bar foo bar foo foo. bar foo bar
foo foo. bar foo bar foo foo. bar
foo bar foo foo. bar foo bar foo
foo. bar foo bar foo foo. bar foo
bar foo foo.
]]>
</screen>
<programlisting>
<![CDATA[
{textformat style="email"}
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is foo.
This is bar.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
bar foo bar foo foo.
{/textformat}
]]>
</programlisting>
<para>
Contoh di atas akan menampilkan:
</para>
<screen>
<![CDATA[
This is foo. This is foo. This is foo. This is foo. This is foo. This is
foo.
This is bar.
bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo
bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo
foo.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.function.strip"><varname>{strip}</varname></link>
dan
<link linkend="language.modifier.wordwrap"><varname>wordwrap</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
-->

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.capitalize">
<title>capitalize</title>
<para>
Ini dipakai untuk membesarkan huruf pertama dari seluruh kata dalam variable.
Mirip dengan fungsi PHP <ulink url="&url.php-manual;ucfirst">
<varname>ucfirst()</varname></ulink>.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Ini menentukan apakah kata dengan digit akan dibesarkan atau
tidak</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>capitalize</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'next x-men film, x3, delayed.');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
next x-men film, x3, delayed.
Next X-Men Film, x3, Delayed.
Next X-Men Film, X3, Delayed.
]]>
</screen>
</example>
<para>Lihat juga
<link linkend="language.modifier.lower"><varname>lower</varname></link>
dan
<link linkend="language.modifier.upper"><varname>upper</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
-->

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.cat">
<title>cat</title>
<para>
Nilai ini digabungkan ke variabel yang disediakan.
</para>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="cat" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Nilai ini menggabung variabel yang disediakan.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>cat</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', "Psychics predict world didn't end");
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle|cat:' yesterday.'}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Psychics predict world didn't end yesterday.
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.count.characters">
<title>count_characters</title>
<para>
Ini akan dipakai untuk menghitung jumlah karakter dalam variabel.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Ini menentukan apakah menyertakan karakter spasi dalam
hitungan atau tidak.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>count_characters</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|count_characters}
{$articleTitle|count_characters:true}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Cold Wave Linked to Temperatures.
29
33
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.count.words"><varname>count_words</varname></link>,
<link linkend="language.modifier.count.sentences"><varname>count_sentences</varname></link> dan
<link linkend="language.modifier.count.paragraphs"><varname>count_paragraphs</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
-->

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.count.paragraphs">
<title>count_paragraphs</title>
<para>
Ini dipakai untuk menghitung jumlah paragraf dalam variabel.
</para>
<example>
<title>count_paragraphs</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
"War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.\n\n
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation."
);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|count_paragraphs}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.
2
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.count.characters"><varname>count_characters</varname></link>,
<link linkend="language.modifier.count.sentences"><varname>count_sentences</varname></link>
dan
<link linkend="language.modifier.count.words"><varname>count_words</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
-->

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.count.sentences">
<title>count_sentences</title>
<para>
Ini dipakai untuk menghitung jumlah kalimat dalam variabel.
</para>
<example>
<title>count_sentences</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
'Two Soviet Ships Collide - One Dies.
Enraged Cow Injures Farmer with Axe.'
);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|count_sentences}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.
2
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.count.characters"><varname>count_characters</varname></link>,
<link linkend="language.modifier.count.paragraphs"><varname>count_paragraphs</varname></link>
dan
<link linkend="language.modifier.count.words"><varname>count_words</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
-->

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.count.words">
<title>count_words</title>
<para>
Ini dipakai untuk menghitung jumlah kata dalam variabel.
</para>
<example>
<title>count_words</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|count_words}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Dealers Will Hear Car Talk at Noon.
7
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.count.characters"><varname>count_characters</varname></link>,
<link linkend="language.modifier.count.paragraphs"><varname>count_paragraphs</varname></link>
dan
<link linkend="language.modifier.count.sentences"><varname>count_sentences</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
-->

View File

@@ -0,0 +1,287 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.date.format">
<title>date_format</title>
<para>
Ini membentuk tanggal dan jam ke format
<ulink url="&url.php-manual;strftime"><varname>strftime()</varname></ulink>
yang disediakan.
Tanggal dapat dikirimkan ke Smarty sebagai
<ulink url="&url.php-manual;function.time">timestamps</ulink> unix, mysql timestamps
atau string lain yang terdiri dari bulan hari tahun, dapat diuraikan oleh
<ulink url="&url.php-manual;strtotime"><varname>strtotime()</varname></ulink> php.
Desainer dapat memakai <varname>date_format</varname> untuk mengontrol
sepenuhnya pembentukan tanggal. Jika tanggal yang dikiriimkan ke
<varname>date_format</varname> kosong dan parameter kedua dikirimkan, itu akan
dipakai sebagai format tanggal.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>%b %e, %Y</entry>
<entry>Ini adalah format untuk tanggal yang ditampilkan.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>n/a</entry>
<entry>Ini adalah tanggal standar jika input kosong.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
<note>
<para>
Sejak Smarty-2.6.10 nilai numerik yang dikirimkan ke <varname>date_format</varname>
<emphasis>selalu</emphasis> (kecuali untuk cap waktu mysql, lihat di bawah)
diinterpretasikan sebagai cap waktu unix.
</para>
<para>
Sebelum Smarty-2.6.10 string numerik yang juga dapat diuraikan oleh
<varname>strtotime()</varname> dalam php (seperti <literal>YYYYMMDD</literal>)
di mana kadang-kadang (tergantung pada dasar implementasi
<varname>strtotime()</varname>) diinterpretasikan sebagai string tanggal
BUKAN sebagai cap waktu.
</para>
<para>
Satu-satunya kekecualian adalah cap waktu mysql: Ia juga hanya numerik dan
panjang karakternya 14 (<literal>YYYYMMDDHHMMSS</literal>),
cap waktu mysql memiliki awalan dibanding cap waktu unix.
</para>
</note>
<note>
<title>Catatan pemrogram</title>
<para>
<varname>date_format</varname> pelapis penting untuk fungsi PHP
<ulink url="&url.php-manual;strftime"><varname>strftime()</varname></ulink>.
Anda dapat mempunyai penentu konversi lebih atau sedikit disediakan
tergantung pada fungsi <ulink url="&url.php-manual;strftime"><varname>strftime()</varname></ulink>
sistem anda di mana PHP dikompilasi. Periksa halaman manual sistem untuk
daftar lengkap dari penentu yang benar. Akan tetapi, sedikit penentu
diemulasikan pada Windows. Ini adalah: %D, %e, %h, %l, %n,
%r, %R, %t, %T.
</para>
</note>
</para>
<example>
<title>date_format</title>
<programlisting role="php">
<![CDATA[
<?php
$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty->assign('config', $config);
$smarty->assign('yesterday', strtotime('-1 day'));
?>
]]>
</programlisting>
<para>
Template ini menggunakan <link linkend="language.variables.smarty.now">
<parameter>$smarty.now</parameter></link> untuk mendapatkan jam saat ini:
</para>
<programlisting>
<![CDATA[
{$smarty.now|date_format}
{$smarty.now|date_format:"%D"}
{$smarty.now|date_format:$config.date}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:$config.time}
]]>
</programlisting>
<para>
Contoh di atas akan memperlihatkan:
</para>
<screen>
<![CDATA[
Jan 1, 2022
01/01/22
02:33 pm
Dec 31, 2021
Monday, December 1, 2021
14:33:00
]]>
</screen>
</example>
<para>
Penentu konversi <command>date_format</command>:
<itemizedlist>
<listitem><para>
%a - singkatan nama hari dalam minggu berdasarkan lokal saat ini
</para></listitem>
<listitem><para>
%A - nama hari lengkap berdasarkan lokal saat ini
</para></listitem>
<listitem><para>
%b - singkatan nama bulan berdasarkan lokal saat ini
</para></listitem>
<listitem><para>
%B - nama bulan lengkap berdasarkan lokal saat ini
</para></listitem>
<listitem><para>
%c - representasi tanggal dan jam yang lebih disukai berdasarkan lokal saat ini
</para></listitem>
<listitem><para>
%C - angka abad (tahun dibagi 100 dan dipotong ke integer, (mulai 00 sampai 99)
</para></listitem>
<listitem><para>
%d - hari pada bulan sebagai angka desimal (mulai 01 sampai 31)
</para></listitem>
<listitem><para>
%D - same as %m/%d/%y
</para></listitem>
<listitem><para>
%e - hari dalam bulan sebagai angka desimal, digit tunggal diawali dengan
spasi (mulai 1 sampai 31)
</para></listitem>
<listitem><para>
%g - tahun berbasis-Minggu di dalam abad [00,99]
</para></listitem>
<listitem><para>
%G - tahun berbasis-Minggu, termasuk abad [0000,9999]
</para></listitem>
<listitem><para>
%h - sama seperti %b
</para></listitem>
<listitem><para>
%H - jam sebagai angka desimal menggunakan waktu 24-jam (mulai 00 sampai 23)
</para></listitem>
<listitem><para>
%I - jam sebagai angka desimal menggunakan waktu 12-jam (mulai 01 sampai 12)
</para></listitem>
<listitem><para>
%j - hari dalam tahun sebagai angka desimal (mulai 001 sampai 366)
</para></listitem>
<listitem><para>
%k - Jam (waktu 24-jam) digit tunggal diawali dengan kosng. (mulai 0 sampai 23)
</para></listitem>
<listitem><para>
%l - jam sebagai angka desimal menggunakan waktu 12-jam, digit tunggal
diawali dengan spasi (mulai 1 sampai 12)
</para></listitem>
<listitem><para>
%m - bulan sebagai angka desimal (mulai 01 sampai 12)
</para></listitem>
<listitem><para>
%M - menit sebagai angka desimal
</para></listitem>
<listitem><para>
%n - karakter baris baru
</para></listitem>
<listitem><para>
%p - baik `am' ataupun `pm' berdasarkan nilai waktu yang disediakan,
atau string terkait untuk lokal saat ini
</para></listitem>
<listitem><para>
%r - jam dalam notasi a.m. dan p.m.
</para></listitem>
<listitem><para>
%R - jam dalam notasi 24 jam
</para></listitem>
<listitem><para>
%S - detik sebagai angka desimal
</para></listitem>
<listitem><para>
%t - karakter tab
</para></listitem>
<listitem><para>
%T - jam sekarang, sama dengan %H:%M:%S
</para></listitem>
<listitem><para>
%u - hari dalam minggu sebagai angka desimal [1,7], dengan1 mewakili Senin
</para></listitem>
<listitem><para>
%U - angka minggu dari tahun sekarang sebagai angka desimal, dimulai dengan
Minggu sebagai hari pertama dari minggu pertama
</para></listitem>
<listitem><para>
%V - Angka minggu ISO 8601:1988 dari tahun sekarang sebagai angka desimal,
mulai 01 sampai 53, di mana minggu 1 adalah minggu pertama yang mempunyai
setidaknya 4 hari dalam tahun sekarang, dan dengan Senin sebagai hari
pertama dalam seminggu.
</para></listitem>
<listitem><para>
%w - hari dari minggu sebagai desimal, Minggu adalah 0
</para></listitem>
<listitem><para>
%W - angka minggu dari tahun sekarang sebagai angka desimal, dimulai
dengan Senin pertama sebagai hari pertama dari minggu pertama
</para></listitem>
<listitem><para>
%x - representasi tanggal yang lebih disukai untuk lokal saat ini tanpa jam
</para></listitem>
<listitem><para>
%X - representasi jam yang lebih disukai untuk lokal saat ini tanpa tanggal
</para></listitem>
<listitem><para>
%y - tahun sebagai angka desimal tanpa abad (mulai 00 sampai 99)
</para></listitem>
<listitem><para>
%Y - tahun sebagai angka desimal termasuk abad
</para></listitem>
<listitem><para>
%Z - zona waktu atau nama atau singkatan
</para></listitem>
<listitem><para>
%% - karakter literal `%'
</para></listitem>
</itemizedlist>
</para>
<para>
Lihat juga <link linkend="language.variables.smarty.now"><parameter>$smarty.now</parameter></link>,
<ulink url="&url.php-manual;strftime"><varname>strftime()</varname></ulink>,
<link linkend="language.function.html.select.date"><varname>{html_select_date}</varname></link>
dan halaman <link linkend="tips.dates">tips tanggal</link> page.
</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
-->

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.default">
<title>default</title>
<para>
Ini dipakai untuk menyetel nilai standar untuk sebuah variabel. Jika
variabel tidak disetel atau string kosong, nilai standar diberikan untuk
dicetak. Default memerlukan satu argumen.
</para>
<para>
<note>
<para>
Dengan <ulink url="&url.php-manual;error_reporting">
<varname>error_reporting(E_ALL)</varname></ulink>,
variabel yang tidak dideklarasikan akan selalu menghasilkan kesalahan
di dalam template. Fungsi ini berguna untuk mengganti string dengan
panjang null atau nol.
</para>
</note>
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>empty</emphasis></entry>
<entry>Ini adalah nilai standar untuk ditampilkan jika
variabel kosong.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>default</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->assign('email', '');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle|default:'no title'}
{$myTitle|default:'no title'}
{$email|default:'No email address available'}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Dealers Will Hear Car Talk at Noon.
no title
No email address available
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="tips.default.var.handling">penanganan variabel standar</link>
dan halaman
<link linkend="tips.blank.var.handling">penanganan variabel kosong</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
-->

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.escape">
<title>escape</title>
<para>
<varname>escape</varname> dipakai untuk mengkodekan atau mengubah variabel ke contohnya <literal>html</literal>,
<literal>url</literal>, <literal>tanda kutip tunggal</literal>,
<literal>heksa</literal>, <literal>heksentitas</literal>,
<literal>javascript</literal> dan <literal>mail</literal>.
Standarnya <literal>html</literal>.
</para>
<informaltable frame="all">
<tgroup cols="6">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="possible" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Nilai yang Mungkin</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><literal>html</literal>, <literal>htmlall</literal>,
<literal>url</literal>,
<literal>urlpathinfo</literal>, <literal>quotes</literal>,
<literal>hex</literal>, <literal>hexentity</literal>,
<literal>javascript</literal>, <literal>mail</literal>
</entry>
<entry><literal>html</literal></entry>
<entry>Ini adalah format escape yang digunakan.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><literal>ISO-8859-1</literal>, <literal>UTF-8</literal>,
dan setiap karakter yang didukung oleh
<ulink url="&url.php-manual;htmlentities">
<varname>htmlentities()</varname></ulink>
</entry>
<entry><literal>ISO-8859-1</literal></entry>
<entry>Set karakter yang semuanya dikirimkan ke htmlentities().</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>escape</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
"'Stiff Opposition Expected to Casketless Funeral Plan'"
);
$smarty->assign('EmailAddress','smarty@example.com');
?>
]]>
</programlisting>
<para>
Ini adalah contoh baris template <literal>escape</literal> diikuti oleh output
</para>
<programlisting>
<![CDATA[
{$articleTitle}
'Stiff Opposition Expected to Casketless Funeral Plan'
{$articleTitle|escape}
&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
{$articleTitle|escape:'html'} {* escapes & " ' < > *}
&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
{$articleTitle|escape:'htmlall'} {* escapes SEMUA entri html *}
&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
<a href="?title={$articleTitle|escape:'url'}">click here</a>
<a href="?title=%27Stiff+Opposition+Expected+to+Casketless+Funeral+Plan%27">click here</a>
{$articleTitle|escape:'quotes'}
\'Stiff Opposition Expected to Casketless Funeral Plan\'
<a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>
{$EmailAddress|escape:'mail'} {* this converts to email to text *}
<a href="mailto:%62%6f%..snip..%65%74">&#x62;&#x6f;&#x62..snip..&#x65;&#x74;</a>
{'mail@example.com'|escape:'mail'}
smarty [AT] example [DOT] com
]]>
</programlisting>
</example>
<example>
<title>Contoh lain</title>
<para>Fungsi PHP dapat dipakai sebagai pengubah,
<link linkend="variable.security">
<varname>$security</varname></link> yang mengijinkan.
</para>
<screen>
<![CDATA[
{* parameter "rewind" meregistrasi lokasi sekarang *}
<a href="{$SCRIPT_NAME}?page=foo&rewind={$smarty.server.REQUEST_URI|urlencode}">click here</a>
]]>
</screen>
<para>This snippet is useful for emails, but see also
<link linkend="language.function.mailto">
<varname>{mailto}</varname></link></para>
<screen>
<![CDATA[
{* alamat email dipotong *}
<a href="mailto:{$EmailAddress|escape:'hex'}">{$EmailAddress|escape:'mail'}</a>
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.escaping">escaping penguraian smarty</link>,
<link linkend="language.function.mailto"><varname>{mailto}</varname></link>
dan halaman
<link linkend="tips.obfuscating.email">mengaburkan alamat email</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
-->

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.indent">
<title>indent</title>
<para>
Ini menggantungstring di setiap baris, standarnya 4. Sebagai parameter
opsional, anda dapat menetapkan jumlah karakter untuk digantung. Sebagai
parameter opsional kedua, anda dapat menetapkan karakter yang dipakai
untuk menggantung misalnya memakai <literal>"\t"</literal> untuk tab.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry>4</entry>
<entry>Ini menentukan berapa banyak karakter yang digantung
to.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>(satu spasi)</entry>
<entry>Ini adalah karakter yang digunakan untuk menggantung.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>indent</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
'NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.'
);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|indent}
{$articleTitle|indent:10}
{$articleTitle|indent:1:"\t"}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.strip"><varname>strip</varname></link>,
<link linkend="language.modifier.wordwrap"><varname>wordwrap</varname></link>
dan
<link linkend="language.modifier.spacify"><varname>spacify</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
-->

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.lower">
<title>lower</title>
<para>
Ini dipakai untuk mengecilkan variabel. Ini sama dengan fungsi PHP
<ulink url="&url.php-manual;strtolower">
<varname>strtolower()</varname></ulink>.
</para>
<example>
<title>lower</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|lower}
]]>
</programlisting>
<para>
Ini akan memperlihatkan:
</para>
<screen>
<![CDATA[
Two Convicts Evade Noose, Jury Hung.
two convicts evade noose, jury hung.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.upper"><varname>upper</varname></link>
dan
<link linkend="language.modifier.capitalize"><varname>capitalize</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
-->

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.nl2br">
<title>nl2br</title>
<para>
Semua pemisah baris <literal>"\n"</literal> akan diubah ke tag html
<literal>&lt;br /&gt;</literal> dalam variabel yang disediakan.
Ini sama dengan fungsi PHP <ulink url="&url.php-manual;nl2br">
<varname>nl2br()</varname></ulink>.
</para>
<example>
<title>nl2br</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
"Sun or rain expected\ntoday, dark tonight"
);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle|nl2br}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Sun or rain expected<br />today, dark tonight
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.wordwrap"><varname>word_wrap</varname></link>,
<link linkend="language.modifier.count.paragraphs"><varname>count_paragraphs</varname></link>
dan
<link linkend="language.modifier.count.sentences"><varname>count_sentences</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
-->

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.regex.replace">
<title>regex_replace</title>
<para>
Pencarian ekspresi reguler dan penggantian pada variabel. Gunakan sintaks
<ulink url="&url.php-manual;preg_replace">
<varname>preg_replace()</varname></ulink> dari manual PHP.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ini adalah ekspresi reguler untuk diganti.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ini adalah string teks untuk mengganti.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>regex_replace</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say.");
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{* replace each carriage return, tab and new line with a space *}
{$articleTitle}
{$articleTitle|regex_replace:"/[\r\t\n]/":" "}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Infertility unlikely to
be passed on, experts say.
Infertility unlikely to be passed on, experts say.
]]>
</screen>
</example>
<para>
Lihat juga <link linkend="language.modifier.replace">
<varname>replace</varname></link>
dan
<link linkend="language.modifier.escape"><varname>escape</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
-->

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.replace">
<title>replace</title>
<para>
Pencarian sederhana dan penggantian pada variabel. Ini sama dengan fungsi
PHP <ulink url="&url.php-manual;str_replace">
<varname>str_replace()</varname></ulink>.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ini adalah string teks untuk diganti.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ini adalah string teks untuk mengganti.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>replace</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', "Child's Stool Great for Use in Garden.");
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|replace:'Garden':'Vineyard'}
{$articleTitle|replace:' ':' '}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Child's Stool Great for Use in Garden.
Child's Stool Great for Use in Vineyard.
Child's Stool Great for Use in Garden.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.regex.replace"><varname>regex_replace</varname></link>
dan
<link linkend="language.modifier.escape"><varname>escape</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
-->

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.spacify">
<title>spacify</title>
<para>
<varname>spacify</varname> adalah cara untuk menyisipkan spasi diantara
setiap karakter dari variabel.
Anda bisa secara opsional mengirimkan karakter atau string berbeda
untuk disisipkan.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry><emphasis>satu spasi</emphasis></entry>
<entry>Ini akan disisipkan diantara setiap karakter dari variabel.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>spacify</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|spacify}
{$articleTitle|spacify:"^^"}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Something Went Wrong in Jet Crash, Experts Say.
S o m e t h i n g W .... snip .... s h , E x p e r t s S a y .
S^^o^^m^^e^^t^^h^^i^^n^^g^^ .... snip .... ^^e^^r^^t^^s^^ ^^S^^a^^y^^.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.wordwrap"><varname>wordwrap</varname></link>
dan
<link linkend="language.modifier.nl2br"><varname>nl2br</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
-->

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.string.format">
<title>string_format</title>
<para>
Ini adalah cara untuk membentuk string, seperti angka desimal dan
semacamnya. Gunakan sintaks
<ulink url="&url.php-manual;sprintf"><varname>sprintf()</varname></ulink>
untuk pembentukan.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>string</entry>
<entry>Ya</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ini adalah format apa yang dipakai. (sprintf)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>string_format</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('number', 23.5787446);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$number}
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
23.5787446
23.58
24
]]>
</screen>
</example>
<para>
See also
<link linkend="language.modifier.date.format"><varname>date_format</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
-->

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.strip.tags">
<title>strip_tags</title>
<para>
Ini memotong tag markup, pada dasarnya apapun diantara
<literal>&lt;</literal> dan <literal>&gt;</literal>.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>bool</entry>
<entry>Tidak</entry>
<entry>&true;</entry>
<entry>Ini menentukan apakah tag diganti dengan ' ' atau ''</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>strip_tags</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
"Blind Woman Gets <font face=\"helvetica\">New
Kidney</font> from Dad she Hasn't Seen in <b>years</b>."
);
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|strip_tags} {* same as {$articleTitle|strip_tags:true} *}
{$articleTitle|strip_tags:false}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.
Blind Woman Gets New Kidney from Dad she Hasn't Seen in years .
Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.replace"><varname>replace</varname></link>
dan
<link linkend="language.modifier.regex.replace"><varname>regex_replace</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
-->

View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.strip">
<title>strip</title>
<para>
Ini mengganti semua spasi yang berulang, baris baru dan tab dengan spasi
tunggal, atau dengan string yang disertakan.
</para>
<note>
<title>Catatan</title>
<para>
Jika anda ingin memotong blok teks template, gunakan fungsi built-in <link
linkend="language.function.strip"><varname>{strip}</varname></link>.
</para>
</note>
<example>
<title>strip</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', "Grandmother of\neight makes\t hole in one.");
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|strip}
{$articleTitle|strip:'&nbsp;'}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Grandmother of
eight makes hole in one.
Grandmother of eight makes hole in one.
Grandmother&nbsp;of&nbsp;eight&nbsp;makes&nbsp;hole&nbsp;in&nbsp;one.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.function.strip"><varname>{strip}</varname></link>
dan
<link linkend="language.modifier.truncate"><varname>truncate</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
-->

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.truncate">
<title>truncate</title>
<para>
Ini memotong variabel ke panjang karakter, standarnya 80.
Sebagai parameter opsional kedua, anda bisa menetapkan string teks yang
ditampilkan di akhir jika variabel dipotong. Karakter dalam string
disertakan dengan panjang pemotongan asli.
Standarnya, <varname>truncate</varname> akan mencoba untuk memotong di
batas kata. Jika anda ingin memotong di panjang karakter persis,
kirimkan parameter opsional ketiga dengan &true;.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry>80</entry>
<entry>Ini menentukan berapa banyak karakter untuk dipotong.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>...</entry>
<entry>Ini adalah teks string yang mengganti teks yang dipotong.
Panjangya disertakan dalam setelan panjang pemotongan.</entry>
</row>
<row>
<entry>3</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Ini menentukan apakah memotong di batas kata dengan &false;
atau tidak, atau di persis karakter dengan &true;.</entry>
</row>
<row>
<entry>4</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Ini menentukan apakah pemotongan terjadi di akhir string dengan
&false;, atau ditengah string dengan &true;.
Catatan bahwa jika setelan adalah &true;, maka batas kata diabaikan.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>truncate</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
?>
]]>
</programlisting>
<para>
di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|truncate}
{$articleTitle|truncate:30}
{$articleTitle|truncate:30:""}
{$articleTitle|truncate:30:"---"}
{$articleTitle|truncate:30:"":true}
{$articleTitle|truncate:30:"...":true}
{$articleTitle|truncate:30:'..':true:true}
]]>
</programlisting>
<para>
Ini akan memperlihatkan:
</para>
<screen>
<![CDATA[
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
Two Sisters Re..ckout Counter.
]]>
</screen>
</example>
</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
-->

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.upper">
<title>upper</title>
<para>
Ini dipakai untuk membesarkan variabel. Ini sama dengan fungsi PHP
<ulink url="&url.php-manual;strtoupper">
<varname>strtoupper()</varname></ulink>.
</para>
<example>
<title>upper</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|upper}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
If Strike isn't Settled Quickly it may Last a While.
IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.lower"><varname>lower</varname></link>
dan
<link linkend="language.modifier.capitalize"><varname>capitalize</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
-->

View File

@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.modifier.wordwrap">
<title>wordwrap</title>
<para>
Menggulung string ke panjang kolom, standarnya 80. Sebagai parameter
opsional kedua, anda dapat menetapkan string teks untuk menggulung
teks ke baris berikutnya, biasanya adalah carriage return
<literal>"\n"</literal>.
Standarnya, <varname>wordwrap</varname> akan mencoba untuk menggulung
di batas kata. Jika anda ingin memotong persis di panjang karakter,
kirimkan parameter opsional ketiga sebagai &true;. Ini sama dengan
fungsi PHP
<ulink url="&url.php-manual;wordwrap"><varname>wordwrap()</varname></ulink>.
</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>Posisi Parameter</entry>
<entry>Tipe</entry>
<entry>Diperlukan</entry>
<entry>Default</entry>
<entry>Deskripsi</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>integer</entry>
<entry>Tidak</entry>
<entry>80</entry>
<entry>Ini menentukan berapa banyak kolom digulung.</entry>
</row>
<row>
<entry>2</entry>
<entry>string</entry>
<entry>Tidak</entry>
<entry>\n</entry>
<entry>Ini adalah string yang dipakai untuk menggulung kata.</entry>
</row>
<row>
<entry>3</entry>
<entry>boolean</entry>
<entry>Tidak</entry>
<entry>&false;</entry>
<entry>Ini menentukan apakah menggulung di batas kata (&false;) atau tidak,
atau persis di karakter (&true;).</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>wordwrap</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle',
"Blind woman gets new kidney from dad she hasn't seen in years."
);
?>
]]>
</programlisting>
<para>
Di mana template adalah
</para>
<programlisting>
<![CDATA[
{$articleTitle}
{$articleTitle|wordwrap:30}
{$articleTitle|wordwrap:20}
{$articleTitle|wordwrap:30:"<br />\n"}
{$articleTitle|wordwrap:26:"\n":true}
]]>
</programlisting>
<para>
Akan memperlihatkan:
</para>
<screen>
<![CDATA[
Blind woman gets new kidney from dad she hasn't seen in years.
Blind woman gets new kidney
from dad she hasn't seen in
years.
Blind woman gets new
kidney from dad she
hasn't seen in
years.
Blind woman gets new kidney<br />
from dad she hasn't seen in<br />
years.
Blind woman gets new kidn
ey from dad she hasn't se
en in years.
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="language.modifier.nl2br"><varname>nl2br</varname></link>
dan
<link linkend="language.function.textformat"><varname>{textformat}</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
-->

View File

@@ -0,0 +1,203 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.assigned.variables">
<title>Variabel ditempatkan dari PHP</title>
<para>
Variabel
<link linkend="api.assign">assigned</link> dari PHP direferensi oleh
pendahulunya dengan tanda dolar <literal>$</literal> (seperti php).
Variabel yang ditempati dari dalam template dengan fungsi
<link linkend="language.function.assign"><varname>{assign}</varname></link>
juga ditampilkan dengan cara ini.
</para>
<example>
<title>Variabel yang ditempati</title>
<para> naskah php</para>
<programlisting role="php">
<![CDATA[
<?php
$smarty = new Smarty();
$smarty->assign('firstname', 'Doug');
$smarty->assign('lastname', 'Evans');
$smarty->assign('meetingPlace', 'New York');
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
di mana konten <filename>index.tpl</filename> adalah:
</para>
<programlisting>
<![CDATA[
Hello {$firstname} {$lastname}, glad to see you can make it.
<br />
{* ini tidak akan bekerja karena $variables adalah sensitif huruf *}
This weeks meeting is in {$meetingplace}.
{* ini akan bekerja *}
This weeks meeting is in {$meetingPlace}.
]]>
</programlisting>
<para>
Output di atas:
</para>
<screen>
<![CDATA[
Hello Doug Evans, glad to see you can make it.
<br />
This weeks meeting is in .
This weeks meeting is in New York.
]]>
</screen>
</example>
<sect2 id="language.variables.assoc.arrays">
<title>Array asosiatif</title>
<para>
Anda juga bisa mereferensi variabel array asosiatif yang ditempatkan dari
PHP dengan menetapkan kunci setelah simbol '.' (titik).
</para>
<example>
<title>Mengakses variabel array asosiatif</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('Contacts',
array('fax' => '555-222-9876',
'email' => 'zaphod@slartibartfast.example.com',
'phone' => array('home' => '555-444-3333',
'cell' => '555-111-1234')
)
);
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
di mana konten <filename>index.tpl</filename> adalah:
</para>
<programlisting>
<![CDATA[
{$Contacts.fax}<br />
{$Contacts.email}<br />
{* anda dapat menampilkan array dari array juga *}
{$Contacts.phone.home}<br />
{$Contacts.phone.cell}<br />
]]>
</programlisting>
<para>
ini akan menampilkan:
</para>
<screen>
<![CDATA[
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br />
]]>
</screen>
</example>
</sect2>
<sect2 id="language.variables.array.indexes">
<title>Indeks array</title>
<para>
Anda bisa mereferensi array dengan indeksnya, lebih mirip dengan sintaks PHP.
</para>
<example>
<title>Mengakses array dengan indeks</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('Contacts', array(
'555-222-9876',
'zaphod@slartibartfast.example.com',
array('555-444-3333',
'555-111-1234')
));
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
di mana <filename>index.tpl</filename> adalah:
</para>
<programlisting>
<![CDATA[
{$Contacts[0]}<br />
{$Contacts[1]}<br />
{* anda dapat menampilkan arrays dari arrays juga *}
{$Contacts[2][0]}<br />
{$Contacts[2][1]}<br />
]]>
</programlisting>
<para>
Ini akan menampilkan:
</para>
<screen>
<![CDATA[
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br />
]]>
</screen>
</example>
</sect2>
<sect2 id="language.variables.objects">
<title>Obyek</title>
<para>
Properti <link linkend="advanced.features.objects">obyek</link>
yang ditempatkan dari PHP dapat direferensi dengan menetapkan nama properti
setelah simbol <literal>-&gt;</literal>.
</para>
<example>
<title>Mengakses properti obyek</title>
<programlisting>
<![CDATA[
name: {$person->name}<br />
email: {$person->email}<br />
]]>
</programlisting>
<para>
ini akan menampilkan:
</para>
<screen>
<![CDATA[
name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br />
]]>
</screen>
</example>
</sect2>
</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
-->

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.config.variables">
<title>Variabel yang diambil dari file config</title>
<para>
Variabel yang diambil dari <link linkend="config.files">file config</link>
direferensi dengan menutupinya dalam <literal>#tanda kris#</literal>,
atau dengan variabel smarty <link linkend="language.variables.smarty.config">
<parameter>$smarty.config</parameter></link>.
Sintaks terakhir berguna untuk menyertakan ke dalam nilai atribut bertanda
kutip.
</para>
<example>
<title>variabel config</title>
<para>
Contoh file config - <filename>foo.conf</filename>:
</para>
<programlisting>
<![CDATA[
pageTitle = "This is mine"
bodyBgColor = '#eeeeee'
tableBorderSize = 3
tableBgColor = "#bbbbbb"
rowBgColor = "#cccccc"
]]>
</programlisting>
<para>
Template yang memperlihatkan metode <parameter>#hash#</parameter>:
</para>
<programlisting>
<![CDATA[
{config_load file='foo.conf'}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
<tr bgcolor="{#rowBgColor#}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
]]>
</programlisting>
<para>
Template yang memperlihatkan metode
<link linkend="language.variables.smarty.config">
<parameter>$smarty.config</parameter></link>:
</para>
<programlisting>
<![CDATA[
{config_load file='foo.conf'}
<html>
<title>{$smarty.config.pageTitle}</title>
<body bgcolor="{$smarty.config.bodyBgColor}">
<table border="{$smarty.config.tableBorderSize}" bgcolor="{$smarty.config.tableBgColor}">
<tr bgcolor="{$smarty.config.rowBgColor}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
]]>
</programlisting>
<para>
Kedua contoh akan menampilkan:
</para>
<screen>
<![CDATA[
<html>
<title>This is mine</title>
<body bgcolor="#eeeeee">
<table border="3" bgcolor="#bbbbbb">
<tr bgcolor="#cccccc">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
]]>
</screen>
</example>
<para>
Variabel file config tidak bisa dipakai sampai setelah diambil dari file
config. Prosedur ini dijelaskan nanti dalam dokumen ini di bawah
<link linkend="language.function.config.load">
<varname>{config_load}</varname></link>.
</para>
<para>
Lihat juga <link linkend="language.syntax.variables">variabel</link> dan
<link linkend="language.variables.smarty">variabel terpakai $smarty</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
-->

View File

@@ -0,0 +1,227 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="language.variables.smarty">
<title>variabel terpakai {$smarty}</title>
<para>
variabel PHP terpakai <parameter>{$smarty}</parameter> bisa digunakan untuk
mengakses beberapa lingkungan dan variabel permintaan. Daftar lengkapnya
sebagai berikut.
</para>
<sect2 id="language.variables.smarty.request">
<title>Variabel permintaan</title>
<para>
<ulink url="&url.php-manual;reserved.variables">variabel permintaan
</ulink> seperti <literal>$_GET</literal>, <literal>$_POST</literal>,
<literal>$_COOKIE</literal>, <literal>$_SERVER</literal>,
<literal>$_ENV</literal> dan <literal>$_SESSION</literal>
(lihat <link linkend="variable.request.vars.order">
<varname>$request_vars_order</varname></link>
dan <link linkend="variable.request.use.auto.globals">
<varname>$request_use_auto_globals</varname></link>)
bisa diakses seperti diperlihatkan dalam contoh di bawah ini:
</para>
<example>
<title>Menampilkan variabel permintaan</title>
<programlisting>
<![CDATA[
{* menampilkan nilai halaman dari URL ($_GET) http://www.example.com/index.php?page=foo *}
{$smarty.get.page}
{* menampilkan variabel "page" dari sebuah formulir ($_POST['page']) *}
{$smarty.post.page}
{* menampilkan nilai cookie "username" ($_COOKIE['username']) *}
{$smarty.cookies.username}
{* menampilkan variabel server "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
{* menampilkan variabel lingkungan sistem "PATH" *}
{$smarty.env.PATH}
{* menampilkan variabel sesi php "id" ($_SESSION['id']) *}
{$smarty.session.id}
{* menampilkan "username" dari gabungan get/post/cookies/server/env *}
{$smarty.request.username}
]]>
</programlisting>
</example>
<note>
<para>
Untuk alasan historis <parameter>{$SCRIPT_NAME}</parameter> dapat diakses
secara langsung, meskipun <parameter>{$smarty.server.SCRIPT_NAME}</parameter>
adalah cara yang diusulkan untuk mengakses nilai ini.
</para>
<programlisting>
<![CDATA[
<a href="{$SCRIPT_NAME}?page=smarty">click me</a>
<a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>
]]>
</programlisting>
</note>
</sect2>
<sect2 id="language.variables.smarty.now">
<title>{$smarty.now}</title>
<para>
<ulink url="&url.php-manual;function.time">Cap waktu</ulink> saat ini
bisa diakses dengan <parameter>{$smarty.now}</parameter>.
Nilai merefleksikan jumlah detik berlalu sejak apa yang disebut
Epoch pada 1 Januari 1970, dan dapat dikirimkan secara langsung ke
pengubah
<link linkend="language.modifier.date.format"><varname>date_format</varname>
</link> untuk ditampilkan. Catatan bahwa
<ulink url="&url.php-manual;function.time"><varname>time()</varname></ulink>
dipanggil setiap kali ada permintaan; misalnya naskah yang mengambil
tiga detik untuk dijalankan dengan sebuah panggilan ke
<parameter>$smarty.now</parameter> di awal dan akhir akan menampilkan
perbedaan tiga detik.
<informalexample>
<programlisting>
<![CDATA[
{* gunakan pengubah date_format untuk menampilkan tangal dan jam saat ini *}
{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
]]>
</programlisting>
</informalexample>
</para>
</sect2>
<sect2 id="language.variables.smarty.const">
<title>{$smarty.const}</title>
<para>
Anda dapat mengakses nilai konstan PHP secara langsung. Lihat juga <link
linkend="smarty.constants">konstan smarty</link>.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// konstan yang didefinisikan dalam php
define('MY_CONST_VAL','CHERRIES');
?>
]]>
</programlisting>
</informalexample>
<para>Output konstan dalam template</para>
<informalexample>
<programlisting>
<![CDATA[
{$smarty.const.MY_CONST_VAL}
]]>
</programlisting>
</informalexample>
</sect2>
<sect2 id="language.variables.smarty.capture">
<title>{$smarty.capture}</title>
<para>
Output template ditangkap melalui fungsi built-in
<link linkend="language.function.capture">
<varname>{capture}..{/capture}</varname></link> bisa diakses menggunakan
variabel <parameter>{$smarty.capture}</parameter>.
Lihat halaman <link linkend="language.function.capture">
<varname>{capture}</varname></link> untuk informasi lebih jauh.
</para>
</sect2>
<sect2 id="language.variables.smarty.config">
<title>{$smarty.config}</title>
<para>
Variabel <parameter>{$smarty.config}</parameter> bisa digunakan untuk
merujuk ke <link linkend="language.config.variables">variabel config</link>
yang diambil.
<parameter>{$smarty.config.foo}</parameter> adalah sinonim untuk
<parameter>{#foo#}</parameter>. Lihat halaman
<link linkend="language.function.config.load">{config_load}</link> untuk
informasi lebih jauh.
</para>
</sect2>
<sect2 id="language.variables.smarty.loops">
<title>{$smarty.section}, {$smarty.foreach}</title>
<para>
Variabel <parameter>{$smarty.section}</parameter> dan
<parameter>{$smarty.foreach}</parameter> dapat digunakan untuk merujuk ke
masing-masing properti pengulangan
<link linkend="language.function.section"><varname>{section}</varname></link>
dan
<link linkend="language.function.foreach"><varname>{foreach}</varname></link>.
Ini memiliki beberapa nilai kegunaan seperti
<varname>.first</varname>, <varname>.index</varname>, dll.
</para>
</sect2>
<sect2 id="language.variables.smarty.template">
<title>{$smarty.template}</title>
<para>
Mengembalikan nama template yang sedang diproses saat ini. Contoh berikut
memperlihatkan <filename>container.tpl</filename> dan
<filename>banner.tpl</filename> yang disertakan dengan
<parameter>{$smarty.template}</parameter> di dalam keduanya.
</para>
<programlisting>
<![CDATA[
<b>Main container is {$smarty.template}</b>
{include file='banner.tpl'}
]]>
</programlisting>
<para>
akan menampilkan
</para>
<programlisting>
<![CDATA[
<b>Main page is container.tpl</b>
banner.tpl
]]>
</programlisting>
</sect2>
<sect2 id="language.variables.smarty.version">
<title>{$smarty.version}</title>
<para>
Mengembalikan versi Smarty di mana template sudah dikompilasi dengannya.
</para>
<programlisting>
<![CDATA[
<div id="footer">Powered by Smarty {$smarty.version}</div>
]]>
</programlisting>
</sect2>
<sect2 id="language.variables.smarty.ldelim">
<title>{$smarty.ldelim}, {$smarty.rdelim}</title>
<para>
Variabel ini dipakai untuk mencetak nilai pembatas-kiri dan pembatas-kanan
secara literal, sama seperti <link linkend="language.function.ldelim">
<varname>{ldelim},{rdelim}</varname></link>.
</para>
<para>
Lihat juga
<link linkend="language.assigned.variables">variabel yang ditempati</link> dan
<link linkend="language.config.variables">variabel config</link>
</para>
</sect2>
</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
-->

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="advanced.features.objects">
<title>Obyek</title>
<para>
Smarty membolehkan akses ke
<ulink url="&url.php-manual;object">obyek</ulink> PHP melalui template.
Ada dua cara untuk mengaksesnya.
</para>
<itemizedlist spacing="compact">
<listitem><para>
Cara pertama adalah <link linkend="api.register.object">meregistrasi obyek</link> ke
template, lalu menaksesnya via sintaks mirip dengan
<link linkend="language.custom.functions">fungsi kustom</link>.
</para></listitem>
<listitem><para>
Cara kedua adalah fungsi <link linkend="api.assign"><varname>assign()</varname>
</link> obyek ke template dan mengaksesnya seperti halnya variabel lainnya yang
ditempati.
</para></listitem>
</itemizedlist>
<para>
Metode pertama ini merupakan sintaks template lebih baik. Ia juga lebih aman,
karena obyek terdaftar dapat dibatasi ke metode atau properti tertentu. AKan tetapi,
<emphasis role="bold">obyek terdaftar tidak bisa diulang terus menerus atau ditempati
dalam obyek arrays</emphasis>, dll. Metode yang anda pilih akan ditentukan oleh
kebutuhan anda, tapi gunakan metode pertama bila memungkinkan untuk
memelihara sintaks template menjadi minimum.
</para>
<para>
Jika <link linkend="variable.security"><parameter>$security</parameter></link>
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.
</para>
<para>
Anda dapat membatasi metode dan propertis yang bisa diakses dengan
mendaftarkannya dalam sebuah array sebagai parameter ketiga registrasi.
</para>
<para>
Secara standar, parameter dioperkan ke obyek melaluis template, dioperkan
dengan cara yang sama
<link linkend="language.custom.functions">fungsi kustom</link> 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;.
</para>
<para>
Parameter opsional ke lima hanya berpengaruh dengan
<parameter>format</parameter> dijadikan &true;
dan berisi daftar metode yang seharusnya diperlakukan sebagai blok. Itu
berarti metode ini mempunyai tag penutup dalam template
(<literal>{foobar->meth2}...{/foobar->meth2}</literal>) dan
parameter pada metode mempunyai sinopsis yang sama seperti parameter
untuk
<link linkend="plugins.block.functions">
<varname>block-function-plugins</varname></link>:
Ia medapatkan empat parameters
<parameter>$params</parameter>,
<parameter>$content</parameter>,
<parameter>&amp;$smarty</parameter> dan
<parameter>&amp;$repeat</parameter> dan juga bertindak seperti
block-function-plugins.
</para>
<example>
<title>Menggunakan obyek teregistrasi atau ditempatkan</title>
<programlisting role="php">
<![CDATA[
<?php
// obyek
class My_Object {
function meth1($params, &$smarty_obj) {
return 'this is my meth1';
}
}
$myobj = new My_Object;
// meregistrasi obyek (akan menjadi referensi)
$smarty->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');
?>
]]>
</programlisting>
<para>
Dan ini adalah bagaimana untuk mengakses obyek anda dalam <filename>index.tpl</filename>:
</para>
<programlisting>
<![CDATA[
{* 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)}
]]>
</programlisting>
</example>
<para>
Lihat juga <link
linkend="api.register.object"><varname>register_object()</varname></link>
dan
<link linkend="api.assign"><varname>assign()</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
-->

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="advanced.features.outputfilters">
<title>Filter Output</title>
<para>
Ketika template dipanggil via
<link linkend="api.display"><varname>display()</varname></link> atau
<link linkend="api.fetch"><varname>fetch()</varname></link>, outputnya bisa
dikirimkan melalui satu atau lebih filter output. Ini berbeda dari
<link linkend="advanced.features.postfilters">
<varname>postfilters</varname></link>
karena postfilters beroperasi pada template terkompilasi sebelum disimpan
ke disk, sedangkan filter output beroperasi pada output template ketika ia
dijalankan.
</para>
<para>
Filter output bisa
<link linkend="api.register.outputfilter">teregistrasi</link> atau diambil dari
<link linkend="variable.plugins.dir">direktori plugins</link> dengan
menggunakan metode
<link linkend="api.load.filter"><varname>load_filter()</varname></link>
atau dengan menyetel variabel <link linkend="variable.autoload.filters">
<parameter>$autoload_filters</parameter></link>.
Smarty akan mengoper output template sebagai argumen pertama,
dan mengharapkan fungsi untuk mengembalikan hasil proses.
</para>
<example>
<title>Menggunakan template outputfilter</title>
<programlisting role="php">
<![CDATA[
<?php
// simpan ini dalam aplikasi anda
function protect_email($tpl_output, &$smarty)
{
$tpl_output =
preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
'$1%40$2', $tpl_output);
return $tpl_output;
}
// daftarkan outputfilter
$smarty->register_outputfilter('protect_email');
$smarty->display('index.tpl');
// sekarang setiap ada alamat email dalam output template akan mempunyai
// perlindungan sederhana terhadap spambots
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.register.outputfilter"><varname>register_outpurfilter()</varname></link>,
<link linkend="api.load.filter"><varname>load_filter()</varname></link>,
<link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link>,
<link linkend="advanced.features.postfilters">postfilters</link> dan
<link linkend="variable.plugins.dir"><parameter>$plugins_dir</parameter></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
-->

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="advanced.features.postfilters">
<title>Postfilters</title>
<para>
Template postfilters adalah fungsi PHP di mana templates anda dijalankan
<emphasis>setelah dikompilasi</emphasis>. Postfilters bisa
<link linkend="api.register.postfilter">teregistrasi</link> atau diambil dari
<link linkend="variable.plugins.dir">direktori plugins</link>
dengan menggunakan fungsi
<link linkend="api.load.filter"><varname>load_filter()</varname></link>
atau dengan menyetel variabel <link linkend="variable.autoload.filters">
<parameter>$autoload_filters</parameter></link>.
Smarty akan mengoper kode template terkompilasi sebagai argumen,
dan mengharapkan fungsi untuk mengembalikan hasil pemrosesan.
</para>
<example>
<title>Menggunakan template postfilter</title>
<programlisting role="php">
<![CDATA[
<?php
// simpan ini dalam aplikasi anda
function add_header_comment($tpl_source, &$smarty)
{
return "<?php echo \"<!-- Created by Smarty! -->\n\"; ?>\n".$tpl_source;
}
// daftarkan postfilter
$smarty->register_postfilter('add_header_comment');
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
Postfilter di atas akan membuat Smarty template
terkompilasi
<filename>index.tpl</filename> terlihat seperti:
</para>
<screen>
<![CDATA[
<!-- Created by Smarty! -->
{* konten template seterusnya... *}
]]>
</screen>
</example>
<para>
Lihat juga
<link linkend="api.register.postfilter"><varname>register_postfilter()</varname></link>,
<link linkend="advanced.features.prefilters">prefilters</link>
dan
<link linkend="api.load.filter"><varname>load_filter()</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
-->

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="advanced.features.prefilters">
<title>Prefilters</title>
<para>
Template prefilters adalah fungsi PHP di mana template anda dijalankan
<emphasis>sebelum dikompilasi</emphasis>. Ini bagus untuk preproses
template anda untuk menghapus komentar yang tidak diinginkan, mengawasi
apa yang disimpan orang dalam templatenya, dll.
</para>
<para>
Prefilters bisa <link
linkend="api.register.prefilter">teregistrasi</link> atau diambil dari
<link linkend="variable.plugins.dir">direktori plugins</link>
dengan menggunakan fungsi <link
linkend="api.load.filter"><varname>load_filter()</varname></link> atau dengan
menyetel variabel <link linkend="variable.autoload.filters">
<parameter>$autoload_filters</parameter></link>.
</para>
<para>
Smarty akan mengoper kode sumber template sebagai argumen pertama, dan
mengharapkan fungsi untuk mengembalikan hasil kode sumbber template.
</para>
<example>
<title>Menggunakan template prefilter</title>
<para>
Ini akan menghapus semua komentar html dalam sumber template.
</para>
<programlisting role="php">
<![CDATA[
<?php
// simpan ini dalam aplikasi anda
function remove_dw_comments($tpl_source, &$smarty)
{
return preg_replace("/<!--#.*-->/U",'',$tpl_source);
}
// daftarkan prefilter
$smarty->register_prefilter('remove_dw_comments');
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<para>Lihat juga
<link linkend="api.register.prefilter"><varname>register_prefilter()</varname></link>,
<link linkend="advanced.features.postfilters">postfilters</link>
dan
<link linkend="api.load.filter"><varname>load_filter()</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
-->

View File

@@ -0,0 +1,191 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="section.template.cache.handler.func">
<title>Fungsi Pengendali Cache</title>
<para>
Sebagai alternatif untuk menggunakan mekanisme cache berbasis-file
standar, anda bisa menetapkan fungsi penanganan cache kustom yang
akan digunakan untuk
<literal>membaca</literal>, <literal>menulis</literal> dan
<literal>membersihkan</literal> file yang di-cache.
</para>
<para>
Buat sebuah fungsi dalam aplikasi anda yang akan digunakan Smarty
sebagai pengendali cache. Set namanya dalam variabel kelas
<link linkend="variable.cache.handler.func">
<parameter>$cache_handler_func</parameter></link>
. Smarty
sekarang akan menggunakan ini untuk menangani data yang di-cache.
</para>
<itemizedlist>
<listitem><para>
Argumen pertama adalah aksi, yang akan berupa salah satu dari
<literal>read</literal>, <literal>write</literal> dan
<literal>clear</literal>.
</para></listitem>
<listitem><para>
Parameter kedua adalah obyek Smarty.
</para></listitem>
<listitem><para>Paremeter ketiga adalah konten yang di-cache.
Setelah <literal>menulis</literal>, Smarty mengoper konten yang
di-cache dalam parameter ini. Setelah <literal>membaca</literal>,
Smarty mengharapkan fungsi anda untuk menerima parameter ini
dengan referensi dan menempatkannya dengan data yang di-cache.
Setelah <literal>membersihkan</literal>, mengoper variabel dummy
di sini karena ia tidak digunakan.
</para></listitem>
<listitem><para>
Parameter ke empat adalah <parameter>nama</parameter> file template
,
diperlukan untuk membaca/menulis.
</para></listitem>
<listitem><para>
Parameter ke lima adalah opsional <parameter>$cache_id</parameter>.
</para></listitem>
<listitem><para>
Parameter ke enam adalah opsional <link linkend="variable.compile.id">
<parameter>$compile_id</parameter></link>.
</para></listitem>
<listitem><para>
Parameter ke tujuh dan parameter terakhir <parameter>$exp_time</parameter>
ditambahkan dalam Smarty-2.6.0.
</para></listitem>
</itemizedlist>
<example>
<title>Contoh menggunakan MySQL sebagai sumber cache</title>
<programlisting role="php">
<![CDATA[
<?php
/**************************************************
contoh pemakaian:
include('Smarty.class.php');
include('mysql_cache_handler.php');
$smarty = new Smarty;
$smarty->cache_handler_func = 'mysql_cache_handler';
$smarty->display('index.tpl');
database mysql diharapkan dalam format ini:
create database SMARTY_CACHE;
create table CACHE_PAGES(
CacheID char(32) PRIMARY KEY,
CacheContents MEDIUMTEXT NOT NULL
);
**************************************************/
function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null)
{
// set db host, user dan sandi di sini
$db_host = 'localhost';
$db_user = 'myuser';
$db_pass = 'mypass';
$db_name = 'SMARTY_CACHE';
$use_gzip = false;
// buat id cache unik
$CacheID = md5($tpl_file.$cache_id.$compile_id);
if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) {
$smarty_obj->_trigger_error_msg('cache_handler: could not connect to database');
return false;
}
mysql_select_db($db_name);
switch ($action) {
case 'read':
// baca cache dari database
$results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'");
if(!$results) {
$smarty_obj->_trigger_error_msg('cache_handler: query failed.');
}
$row = mysql_fetch_array($results,MYSQL_ASSOC);
if($use_gzip && function_exists('gzuncompress')) {
$cache_content = gzuncompress($row['CacheContents']);
} else {
$cache_content = $row['CacheContents'];
}
$return = $results;
break;
case 'write':
// simpan cache ke database
if($use_gzip && function_exists("gzcompress")) {
// compress the contents for storage efficiency
$contents = gzcompress($cache_content);
} else {
$contents = $cache_content;
}
$results = mysql_query("replace into CACHE_PAGES values(
'$CacheID',
'".addslashes($contents)."')
");
if(!$results) {
$smarty_obj->_trigger_error_msg('cache_handler: query failed.');
}
$return = $results;
break;
case 'clear':
// clear cache info
if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) {
// clear them all
$results = mysql_query('delete from CACHE_PAGES');
} else {
$results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'");
}
if(!$results) {
$smarty_obj->_trigger_error_msg('cache_handler: query failed.');
}
$return = $results;
break;
default:
// salah, aksi tidak dikenal
$smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\"");
$return = false;
break;
}
mysql_close($link);
return $return;
}
?>
]]>
</programlisting>
</example>
</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
-->

View File

@@ -0,0 +1,261 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="template.resources">
<title>Sumber daya</title>
<para>
Template mungkin berasal dari berbagai sumber. Ketika anda
<link linkend="api.display"><varname>display()</varname></link> atau
<link linkend="api.fetch"><varname>fetch()</varname></link>
sebuah template, atau saat anda menyertakan template dari dalam
template lain,
anda menyertakan sebuah tipe sumber daya, diikuti
oleh path dan nama template terkait. Jika sumber daya tidak secara
eksplisit diberi nilai, <link
linkend="variable.default.resource.type">
<parameter>$default_resource_type</parameter></link> yang diasumsikan.
</para>
<sect2 id="templates.from.template.dir">
<title>Templates dari $template_dir</title>
<para>
Template dari <link linkend="variable.template.dir">
<parameter>$template_dir</parameter></link> tidak membutuhkan sumber
daya template
, meskipun anda dapat menggunakan sumber daya
<literal>file:</literal> untuk konsistensi. Cukup sertakan path ke template yang
ingin anda gunakan relatif ke direktori akar <link linkend="variable.template.dir">
<parameter>$template_dir</parameter></link>.
</para>
<example>
<title>Menggunakan template dari $template_dir</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->display('index.tpl');
$smarty->display('admin/menu.tpl');
$smarty->display('file:admin/menu.tpl'); // sama seperti yang di atas
?>
]]>
</programlisting>
<para>Dari dalam template Smarty</para>
<programlisting>
<![CDATA[
{include file='index.tpl'}
{* di bawah ini sama seperti yang di atas*}
{include file='file:index.tpl'}
]]>
</programlisting>
</example>
</sect2>
<sect2 id="templates.from.any.dir">
<title>Template dari direktori mana saja</title>
<para>
Template di luar <link linkend="variable.template.dir">
<parameter>$template_dir</parameter></link>
memerlukan tipe sumber daya template <literal>file:</literal>, diikuti
oleh path absolut ke template.
</para>
<example>
<title>Menggunakan template daru direktori mana saja</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->display('file:/export/templates/index.tpl');
$smarty->display('file:/path/to/my/templates/menu.tpl');
?>
]]>
</programlisting>
<para>
Dan dari dalam template Smarty:
</para>
<programlisting>
<![CDATA[
{include file='file:/usr/local/share/templates/navigation.tpl'}
]]>
</programlisting>
</example>
<sect3 id="templates.windows.filepath">
<title>Path file Windows</title>
<para>
Jika anda menggunakan mesin Windows, path file biasanya menyertakan
sebuah huruf drive (C:) di awal nama path. Pastikan untuk menggunakan
<literal>file:</literal> dalam path guna menghindari konflik namespace dan
memperoleh hasil yang diinginkan.
</para>
<example>
<title>Menggunakan template dari path file windows</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->display('file:C:/export/templates/index.tpl');
$smarty->display('file:F:/path/to/my/templates/menu.tpl');
?>
]]>
</programlisting>
<para>
Dan dari dalam template Smarty:
</para>
<programlisting>
<![CDATA[
{include file='file:D:/usr/local/share/templates/navigation.tpl'}
]]>
</programlisting>
</example>
</sect3>
</sect2>
<sect2 id="templates.from.elsewhere">
<title>Template dari sumber daya lain</title>
<para>
Anda dapat mengambil template menggunakan sumber daya apapun
yang mungkin anda akses dengan PHP: database, soket, LDAP, dan
seterusnya. Anda melakukan ini dengan menulis fungsi plugins
sumber daya dan mendaftarkannya dengan Smarty.
</para>
<para>
Lihat seksi <link linkend="plugins.resources">plugins sumber daya</link>
untuk informasi lebih jauh mengenai fungsi yang harus anda sediakan.
</para>
<note>
<para>
Catatan bahwa anda tidak bisa menimpa sumber daya built-in
<literal>file:</literal>, tapi anda dapat menyediakan sumber daya yang
mengambil template dari sistem file dalam beberapa cara lain dengan
mendaftarkan di bawah nama sumber daya lain.
</para>
</note>
<example>
<title>Menggunakan sumber daya kustom</title>
<programlisting role="php">
<![CDATA[
<?php
// simpan fungsi ini di mana saja dalam aplikasi anda
function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
{
// lakukan pemanggilan database di sini untuk mengambil template anda,
// populasikan $tpl_source
$sql = new SQL;
$sql->query("select tpl_source
from my_table
where tpl_name='$tpl_name'");
if ($sql->num_rows) {
$tpl_source = $sql->record['tpl_source'];
return true;
} else {
return false;
}
}
function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
{
// tidak ada pemanggilan database di sini untuk mempopulasikan $tpl_timestamp.
$sql = new SQL;
$sql->query("select tpl_timestamp
from my_table
where tpl_name='$tpl_name'");
if ($sql->num_rows) {
$tpl_timestamp = $sql->record['tpl_timestamp'];
return true;
} else {
return false;
}
}
function db_get_secure($tpl_name, &$smarty_obj)
{
// menganggap seluruh template aman
return true;
}
function db_get_trusted($tpl_name, &$smarty_obj)
{
// tidak digunakan untu templates
}
// mendaftarkan nama sumber daya "db"
$smarty->register_resource("db", array("db_get_template",
"db_get_timestamp",
"db_get_secure",
"db_get_trusted"));
// menggunakan sumber daya dari naskah php
$smarty->display("db:index.tpl");
?>
]]>
</programlisting>
<para>
Dan dari dalam template Smarty:
</para>
<programlisting>
<![CDATA[
{include file='db:/extras/navigation.tpl'}
]]>
</programlisting>
</example>
</sect2>
<sect2 id="default.template.handler.function">
<title>Fungsi pengendali template default</title>
<para>
Anda bisa menetapkan fungsi yang dipakai untuk mengambil
konten template
seandainya template tidak dapat diambil dari
sumber dayanya. Satu kegunaan dari ini adalah untuk membuat
template yang tidak ada secara-langsung.
</para>
<example>
<title>Menggunakan fungsi pengendali template default</title>
<programlisting role="php">
<![CDATA[
<?php
// simpan ini di mana saja dalam aplikasi anda
function make_template ($resource_type, $resource_name, &$template_source, &$template_timestamp,
&$smarty_obj)
{
if( $resource_type == 'file' ) {
if ( ! is_readable ( $resource_name )) {
// buat file template, hasilkan konten.
$template_source = "This is a new template.";
require_once SMARTY_CORE_DIR . 'core.write_file.php';
smarty_core_write_file( array( 'filename'=>$smarty_obj->template_dir . DIRECTORY_SEPARATOR . $resource_name, 'contents'=>$template_source ), $smarty_obj );
return true;
}
} else {
// bukan sebuah file
return false;
}
}
// set pengendali standar
$smarty->default_template_handler_func = 'make_template';
?>
]]>
</programlisting>
</example>
</sect2>
</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
-->

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.append.by.ref">
<refnamediv>
<refname>append_by_ref()</refname>
<refpurpose>menambah nilai dengan referensi</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>append_by_ref</methodname>
<methodparam><type>string</type><parameter>varname</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam>
</methodsynopsis>
<para>
Ini digunakan untuk
<link linkend="api.append"><varname>append()</varname></link> nilai ke template
dengan referensi.
Jika anda menambah sebuah variabel dengan referensi lalu mengubah nilainya,
nilai yang ditambahkan melihat perubahannya juga. Untuk
<link linkend="advanced.features.objects">objects</link>,
<varname>append_by_ref()</varname> juga menghindari duplikat obyek yang ditambahkan
dalam-memori.
Lihat manual PHP pada mereferensi variabel untuk penjelasan lebih dalam. Jika
anda mengoper parameter opsional ketiga yakni &true;, nilai akan digabung
dengan array daripada ditambahkan.
</para>
&note.parameter.merge;
<example>
<title>append_by_ref</title>
<programlisting role="php">
<![CDATA[
<?php
// menambahkan pasangan nama/nilai
$smarty->append_by_ref('Name', $myname);
$smarty->append_by_ref('Address', $address);
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.append"><varname>append()</varname></link>,
<link linkend="api.assign"><varname>assign()</varname></link>
dan
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.append">
<refnamediv>
<refname>append()</refname>
<refpurpose>menambahkan sebuah element ke array yang ditempatkan</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>append</methodname>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<methodsynopsis>
<type>void</type><methodname>append</methodname>
<methodparam><type>string</type><parameter>varname</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam>
</methodsynopsis>
<para>
Jika anda menambahkan ke nilai string, ia diubah ke nilai array dan kemudian ditambahkannya .
Anda bisa mengoper pasangan nama/nilai, atau array asosiatif yang berisi pasangan nama/nilai.
Jika anda mengoper parameter opsional ketiga &true;, nilai akan digabung dengan array saat ini
daripada ditambahkannya.
</para>
&note.parameter.merge;
<example>
<title>append</title>
<programlisting role="php">
<![CDATA[
<?php
// Ini secara efektif sama seperti assign()
$smarty->append('foo', 'Fred');
// Setelah baris ini, foo sekarang terlihat sebagai array dalam template
$smarty->append('foo', 'Albert');
$array = array(1 => 'one', 2 => 'two');
$smarty->append('X', $array);
$array2 = array(3 => 'three', 4 => 'four');
// The following line will add a second element to the X array
$smarty->append('X', $array2);
// mengoper sebuah array
asosiatif
$smarty->append(array('city' => 'Lincoln', 'state' => 'Nebraska'));
?>
]]>
</programlisting>
</example>
<para>Lihat juga
<link linkend="api.append.by.ref"><varname>append_by_ref()</varname></link>,
<link linkend="api.assign"><varname>assign()</varname></link>
dan
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.assign.by.ref">
<refnamediv>
<refname>assign_by_ref()</refname>
<refpurpose>menempatkan nilai dengan referensi</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>assign_by_ref</methodname>
<methodparam><type>string</type><parameter>varname</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<para>
Ini digunakan untuk <link linkend="api.assign"><varname>assign()</varname></link>
nilai ke template denganvreferensi daripada membuat duplikat. Lihat manual PHP
pada mereferensi variabel untuk penjelasan.
</para>
<note>
<title>Catatan Teknis</title>
<para>
Ini digunakan untuk menempatkan nilai ke template dengan referensi.
Jika anda menempatkan sebuah variabel dengan referensi maka mengubah
nilainya, nilai yang ditempati akan berubah juga. Untuk
<link linkend="advanced.features.objects">obyek</link>,
<varname>assign_by_ref()</varname> juga menghindari duplikasi obyek yang
ditempatkan dalam-memori.
Lihat manual PHP pada mereferensi variabel untuk penjelasan lebih dalam.
</para>
</note>
<example>
<title>assign_by_ref()</title>
<programlisting role="php">
<![CDATA[
<?php
// mengoper pasangan nama/nilai
$smarty->assign_by_ref('Name', $myname);
$smarty->assign_by_ref('Address', $address);
?>
]]>
</programlisting>
</example>
<para>
See also
<link linkend="api.assign"><varname>assign()</varname></link>,
<link linkend="api.clear.all.assign"><varname>clear_all_assign()</varname></link>,
<link linkend="api.append"><varname>append()</varname></link>,
<link linkend="language.function.assign"><varname>{assign}</varname></link>
and
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.assign">
<refnamediv>
<refname>assign()</refname>
<refpurpose>menempatkan nilai ke template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>assign</methodname>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<methodsynopsis>
<type>void</type><methodname>assign</methodname>
<methodparam><type>string</type><parameter>varname</parameter></methodparam>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<para>
Anda bisa mengoper pasangan nama/nilai secara eksplisit, atau array
asosiatif yang berisi pasangan nama/nilai.
</para>
<example>
<title>assign()</title>
<programlisting role="php">
<![CDATA[
<?php
// mengoper pasangan nama/nilai
$smarty->assign('Name', 'Fred');
$smarty->assign('Address', $address);
// mengurai array asosiatif
$smarty->assign(array('city' => 'Lincoln', 'state' => 'Nebraska'));
// mengurai sebuah array
$myArray = array('no' => 10, 'label' => 'Peanuts');
$smarty->assign('foo',$myArray);
// mengurai baris dari database (contoh adodb)
$sql = 'select id, name, email from contacts where contact ='.$id;
$smarty->assign('contact', $db->getRow($sql));
?>
]]>
</programlisting>
<para>
Ini diakses dalam template dengan
</para>
<programlisting>
<![CDATA[
{* catatan vars adalah sensitif huruf seperti php *}
{$Name}
{$Address}
{$city}
{$state}
{$foo.no}, {$foo.label}
{$contact.id}, {$contact.name},{$contact.email}
]]>
</programlisting>
</example>
<para>
Untuk mengakses penempatan array lebih komples lihat
<link linkend="language.function.foreach"><varname>{foreach}</varname></link>
dan
<link linkend="language.function.section"><varname>{section}</varname></link>
</para>
<para>
Lihat juga
<link linkend="api.assign.by.ref"><varname>assign_by_ref()</varname></link>,
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>,
<link linkend="api.clear.assign"><varname>clear_assign()</varname></link>,
<link linkend="api.append"><varname>append()</varname></link>
dan
<link linkend="language.function.assign"><varname>{assign}</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.all.assign">
<refnamediv>
<refname>clear_all_assign()</refname>
<refpurpose>membersihkan nilai dari seluruh variabel yang ditempati</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_all_assign</methodname>
<void />
</methodsynopsis>
<example>
<title>clear_all_assign()</title>
<programlisting role="php">
<![CDATA[
<?php
// mengirimkan pasangan nama/nilai
$smarty->assign('Name', 'Fred');
$smarty->assign('Address', $address);
// akan menampilkan yang di atas
print_r( $smarty->get_template_vars() );
// bersihkan seluruh variabel yang ditempati
$smarty->clear_all_assign();
// tidak akan menampilkan apapun
print_r( $smarty->get_template_vars() );
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.assign"><varname>clear_assign()</varname></link>,
<link linkend="api.clear.config"><varname>clear_config()</varname></link>,
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>,
<link linkend="api.assign"><varname>assign()</varname></link>
dan <link linkend="api.append"><varname>append()</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.all.cache">
<refnamediv>
<refname>clear_all_cache()</refname>
<refpurpose>membersihkan seluruh cache template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_all_cache</methodname>
<methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam>
</methodsynopsis>
<para>
Sebagai parameter opsional, anda bisa menyertakan waktu minimum dalam detik file cache
seharusnya sebelum dibersihkan.
</para>
<example>
<title>clear_all_cache</title>
<programlisting role="php">
<![CDATA[
<?php
// membersihkan seluruh cache
$smarty->clear_all_cache();
// membersihkan seluruh file yang lebih dari satu jam lamanya
$smarty->clear_all_cache(3600);
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.cache"><varname>clear_cache()</varname></link>,
<link linkend="api.is.cached"><varname>is_cached()</varname></link>
dan halaman
<link linkend="caching">caching</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.assign">
<refnamediv>
<refname>clear_assign()</refname>
<refpurpose>membersihkan nilai dari variabel yang ditempati</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_assign</methodname>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<para>
Ini dapat berupa nilai tunggal, atau array nilai.
</para>
<example>
<title>clear_assign()</title>
<programlisting role="php">
<![CDATA[
<?php
// membersihkan variabel tunggal
$smarty->clear_assign('Name');
// membersihkan multipel variabel
$smarty->clear_assign(array('Name', 'Address', 'Zip'));
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.all.assign"><varname>clear_all_assign()</varname></link>,
<link linkend="api.clear.config"><varname>clear_config()</varname></link>,
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>,
<link linkend="api.assign"><varname>assign()</varname></link>
dan <link linkend="api.append"><varname>append()</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.cache">
<refnamediv>
<refname>clear_cache()</refname>
<refpurpose>membersihkan cache untuk template tertentu</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_cache</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter>
</methodparam>
<methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam>
</methodsynopsis>
<itemizedlist>
<listitem><para>
Jika anda mempunyai <link linkend="caching.multiple.caches">multipel cache</link>
untuk sebuah template, anda bisa membersihkan cache tertentu dengan
menyertakan <parameter>cache_id</parameter> sebagai parameter kedua.
</para></listitem>
<listitem><para>
Anda juga bisa mengirimkan
<link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>
sebagai parameter ketiga.
Anda dapat <link linkend="caching.groups">mengelompokan template bersama</link>
agar bisas dihapus sebagai sebuah grup, lihat
<link linkend="caching">seksi cache</link> untuk informasi lebih jauh.
</para></listitem>
<listitem><para>
Sebagai parameter opsional keempat, anda dapat menyertakan waktu
minimum dalam detik cache file seharusnya sebelum dibersihkan.
</para></listitem>
</itemizedlist>
<example>
<title>clear_cache()</title>
<programlisting role="php">
<![CDATA[
<?php
// bersihkan cache untuk sebuah template
$smarty->clear_cache('index.tpl');
// bersihkan cache untuk id cache tertentu dalam multipel-cache template
$smarty->clear_cache('index.tpl', 'MY_CACHE_ID');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>
dan seksi
<link linkend="caching"><varname>caching</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.compiled.tpl">
<refnamediv>
<refname>clear_compiled_tpl()</refname>
<refpurpose>membersihkan versi terkompilasi dari sumber daya template yang ditetapkan</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_compiled_tpl</methodname>
<methodparam choice="opt"><type>string</type><parameter>tpl_file</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter>
</methodparam>
<methodparam choice="opt"><type>int</type><parameter>exp_time</parameter></methodparam>
</methodsynopsis>
<para>
Ini membersihkan versi terkompilasi dari sumber daya template yang ditetapkan,
atau semua file template yang dikompilasi bila ini tidak ditetapkan.
Jika anda mengirimkan
<link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>
hanya template terkompilasi untuk
<link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>
spesifik ini yang dibersihkan. Jika anda mengirimkan exp_time, maka hanya
template terkompilasi yang lebih lama dari <parameter>exp_time</parameter> detik
yang dibersihkan, standarnya template terkompilasi dibersihkan dengan
mengabaikan usianya.
Fungsi ini hanya untuk penggunaan tingkat lanjut, tidak untuk kebutuhan normal.
</para>
<example>
<title>clear_compiled_tpl()</title>
<programlisting role="php">
<![CDATA[
<?php
// bersihkan sumber daya template tertentu
$smarty->clear_compiled_tpl('index.tpl');
// bersihkan seluruh direktori kompilasi
$smarty->clear_compiled_tpl();
?>
]]>
</programlisting>
</example>
<para>Lihat juga
<link linkend="api.clear.cache"><varname>clear_cache()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.clear.config">
<refnamediv>
<refname>clear_config()</refname>
<refpurpose>membersihkan variabel config yang ditempati</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>clear_config</methodname>
<methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam>
</methodsynopsis>
<para>
Ini membersihkan semua
<link linkend="language.config.variables">variabel config</link>
yang ditempati.
Jika nama variabel disertakan, hanya variabel itu yang dibersihkan.
</para>
<example>
<title>clear_config()</title>
<programlisting role="php">
<![CDATA[
<?php
// bersihkan semua variabel config yang ditempati.
$smarty->clear_config();
// bersihkan satu variabel
$smarty->clear_config('foobar');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.get.config.vars"><varname>get_config_vars()</varname></link>,
<link linkend="language.config.variables"><varname>config variables</varname></link>,
<link linkend="config.files"><varname>config files</varname></link>,
<link linkend="language.function.config.load"><varname>{config_load}</varname></link>,
<link linkend="api.config.load"><varname>config_load()</varname></link>
dan
<link linkend="api.clear.assign"><varname>clear_assign()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.config.load">
<refnamediv>
<refname>config_load()</refname>
<refpurpose>mengambil data file config yang menempatinya ke template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>config_load</methodname>
<methodparam><type>string</type><parameter>file</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam>
</methodsynopsis>
<para>
Ini mengambil data
<link linkend="config.files">file config</link>
dan menempatkannya ke template. Pekerjaan ini persis sama dengan fungsi template
<link linkend="language.function.config.load">
<varname>{config_load}</varname></link>.
</para>
<note>
<title>Catatan Teknis</title>
<para>
Sejak Smarty 2.4.0, variabel template yang ditempati dipelihara terhadap
permintaan
<link linkend="api.fetch"><varname>fetch()</varname></link>
dan <link linkend="api.display"><varname>display()</varname></link>.
Config vars yang diambil dari
<varname>config_load()</varname> selalu dalam lingkup global.
File config juga dikompilasi untuk eksekusi lebih cepat, dan
memperhatikan setelan
<link linkend="variable.force.compile">
<parameter>$force_compile</parameter></link> dan
<link linkend="variable.compile.check">
<parameter>$compile_check</parameter></link>.
</para>
</note>
<example>
<title>config_load()</title>
<programlisting role="php">
<![CDATA[
<?php
// ambil variabel config dan menempatinya
$smarty->config_load('my.conf');
// ambil seksi
$smarty->config_load('my.conf', 'foobar');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="language.function.config.load"><varname>{config_load}</varname></link>,
<link linkend="api.get.config.vars"><varname>get_config_vars()</varname></link>,
<link linkend="api.clear.config"><varname>clear_config()</varname></link>,
dan
<link linkend="language.config.variables"><varname>variabel config</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.display">
<refnamediv>
<refname>display()</refname>
<refpurpose>menampilkan template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>display</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter>
</methodparam>
</methodsynopsis>
<para>
Ini menampilkan template tidak seperti
<link linkend="api.fetch"><varname>fetch()</varname></link>.
Sertakan tipe dan path <link
linkend="template.resources">sumber daya template</link> yang benar.
Sebagai parameter opsional kedua, anda bisa mengirimkan
<parameter>$cache id</parameter>, lihat
<link linkend="caching">seksi caching</link> untuk informasi lebih jauh.
</para>
&parameter.compileid;
<example>
<title>display()</title>
<programlisting role="php">
<![CDATA[
<?php
include(SMARTY_DIR.'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('data', $db_data);
}
// tampilkan output
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<example>
<title>Contoh sumber data lain dari display()</title>
<para>
Gunakan sintaks <link
linkend="template.resources">sumber daya template</link> untuk
menampilkan file di luar
<link linkend="variable.template.dir">
<parameter>$template_dir</parameter></link> direktori.
</para>
<programlisting role="php">
<![CDATA[
<?php
// path file absolut
$smarty->display('/usr/local/include/templates/header.tpl');
// path file absolut (hal yang sama)
$smarty->display('file:/usr/local/include/templates/header.tpl');
// path file absolut windows (HARUS memakai prefiks "file:")
$smarty->display('file:C:/www/pub/templates/header.tpl');
// sertakan dari sumber daya template bernama "db"
$smarty->display('db:header.tpl');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="api.fetch"><varname>fetch()</varname></link> dan
<link linkend="api.template.exists"><varname>template_exists()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.fetch">
<refnamediv>
<refname>fetch()</refname>
<refpurpose>mengembalikan output template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>string</type><methodname>fetch</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>$compile_id</parameter>
</methodparam>
</methodsynopsis>
<para>
Ini mengembalikan output template daripada
<link linkend="api.display">menampilkan</link> ouput.
Sertakan tipe dan path <link
linkend="template.resources">sumber daya template</link>
yang benar. Sebagai parameter opsional ketiga, anda dapat mengirimkan
<parameter>$cache id</parameter>, lihat <link linkend="caching">seksi caching</link>
untuk informasi lebih jauh.
</para>
&parameter.compileid;
<para>
<example>
<title>fetch()</title>
<programlisting role="php">
<![CDATA[
<?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;
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Menggunakan fetch() untuk mengirim sebuah email</title>
<para>
Template <filename>email_body.tpl</filename>
</para>
<programlisting>
<![CDATA[
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'}
]]>
</programlisting>
<para>
Template <filename>email_disclaimer.tpl</filename> yang menggunakan pengubah
<link linkend="language.function.textformat">
<varname>{textformat}</varname></link>.
</para>
<programlisting>
<![CDATA[
{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}
]]>
</programlisting>
<para>
Naskah php menggunakan fungsi PHP
<ulink url="&url.php-manual;function.mail">
<varname>mail()</varname></ulink>
</para>
<programlisting role="php">
<![CDATA[
<?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'));
?>
]]>
</programlisting>
</example>
</para>
<para>
Lihat juga
<link linkend="language.function.fetch"><varname>{fetch}</varname></link>
<link linkend="api.display"><varname>display()</varname></link>,
<link linkend="language.function.eval"><varname>{eval}</varname></link>,
dan
<link linkend="api.template.exists"><varname>template_exists()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.get.config.vars">
<refnamediv>
<refname>get_config_vars()</refname>
<refpurpose>mengembalikan nilai variabel config yang diambil</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>array</type><methodname>get_config_vars</methodname>
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
</methodsynopsis>
<para>
Jika tidak ada parameter yang diberikan, array dari semua
<link linkend="language.config.variables">variabel config</link>
array dikembalikan.
</para>
<example>
<title>get_config_vars()</title>
<programlisting role="php">
<![CDATA[
<?php
// dapatkan var config template yang diambil #foo#
$myVar = $smarty->get_config_vars('foo');
// dapatkan semua var config template yang diambil
$all_config_vars = $smarty->get_config_vars();
// lihat isinya
print_r($all_config_vars);
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.config"><varname>clear_config()</varname></link>,
<link linkend="language.function.config.load"><varname>{config_load}</varname></link>,
<link linkend="api.config.load"><varname>config_load()</varname></link>
dan
<link linkend="api.get.template.vars"><varname>get_template_vars()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.get.registered.object">
<refnamediv>
<refname>get_registered_object()</refname>
<refpurpose>mengembalikan referensi ke obyek terdaftar</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>array</type><methodname>get_registered_object</methodname>
<methodparam><type>string</type><parameter>object_name</parameter></methodparam>
</methodsynopsis>
<para>
Ini berguna dari dalam fungsi kustom saat anda memerlukan akses langsung ke
<link linkend="api.register.object">obyek terdaftar</link>. Lihat halaman
<link linkend="advanced.features.objects">obyek</link> untuk info lebih jauh.
</para>
<example>
<title>get_registered_object()</title>
<programlisting role="php">
<![CDATA[
<?php
function smarty_block_foo($params, &$smarty)
{
if (isset($params['object'])) {
// dapatkan referensi ke obyek terdaftar
$obj_ref = &$smarty->get_registered_object($params['object']);
// pemakaian $obj_ref sekarang mereferensi ke obyek
}
}
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.register.object"><varname>register_object()</varname></link>,
<link linkend="api.unregister.object"><varname>unregister_object()</varname></link>
dan
<link linkend="advanced.features.objects">halaman obyek</link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.get.template.vars">
<refnamediv>
<refname>get_template_vars()</refname>
<refpurpose>mengembalikan nilai variabel yang ditempatkan</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>array</type><methodname>get_template_vars</methodname>
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
</methodsynopsis>
<para>
Jika tidak diberikan parameter, array semua variabel yang
is given, an array of all <link linkend="api.assign">ditempati</link>
dikembalikan.
</para>
<example>
<title>get_template_vars</title>
<programlisting role="php">
<![CDATA[
<?php
// dapatkan var template 'foo' yang ditempati
$myVar = $smarty->get_template_vars('foo');
// dapatkan semua var template yang ditempati
$all_tpl_vars = $smarty->get_template_vars();
// lihat isinya
print_r($all_tpl_vars);
?>
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="api.assign"><varname>assign()</varname></link>,
<link linkend="language.function.assign"><varname>{assign}</varname></link>,
<link linkend="api.append"><varname>append()</varname></link>,
<link linkend="api.clear.assign"><varname>clear_assign()</varname></link>,
<link linkend="api.clear.all.assign"><varname>clear_all_assign()</varname></link>
dan
<link linkend="api.get.config.vars"><varname>get_config_vars()</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.is.cached">
<refnamediv>
<refname>is_cached()</refname>
<refpurpose>mengembalikan true jika ada cache yang benar untuk template ini</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>bool</type><methodname>is_cached</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter>
</methodparam>
</methodsynopsis>
<itemizedlist>
<listitem><para>
Ini hanya bekerja jika <link linkend="variable.caching">
<parameter>$caching</parameter></link> disetel ke &true;, lihat
<link linkend="caching">seksi caching</link> untuk info lebih jauh.
</para></listitem>
<listitem><para>
Anda juga dapat mengirimkan <parameter>$cache_id</parameter> sebagai parameter
opsional kedua seandainya anda menginginkan
<link linkend="caching.multiple.caches">multipel cache</link>
untuk template yang diberikan.
</para></listitem>
<listitem><para>
Anda dapat menyertakan
<link linkend="variable.compile.id"><parameter>$compile id</parameter></link>
sebagai parameter opsional ketiga. Jika anda mengabaikan parameter itu
persisten <link linkend="variable.compile.id">
<parameter>$compile_id</parameter></link> dipakai bila disetel.
</para></listitem>
<listitem><para>
Jika anda tidak ingin mengirimkan <parameter>$cache_id</parameter> tapi ingin
mengirimkan <link linkend="variable.compile.id">
<parameter>$compile_id</parameter></link> anda harus mengirimkan
&null; sebagai <parameter>$cache_id</parameter>.
</para></listitem>
</itemizedlist>
<note>
<title>Catatan Teknis</title>
<para>
Jika <varname>is_cached()</varname> menghasilkan &true; ia sebenarnya
mengambil output yang di-cache dan menyimpannya secara internal.
Setiap panggilan berikutnya ke
<link linkend="api.display"><varname>display()</varname></link> atau
<link linkend="api.fetch"><varname>fetch()</varname></link>
akan mengembalikan ouput ini yang secara internal disimpan dan tidak
mencoba mengambil ulang file cache. Ini menghindari kondisi lomba yang
mungkin terjadi saat proses kedua membersihkan cache diantara panggilan
ke <varname>is_cached()</varname> dan ke
<link linkend="api.display"><varname>display()</varname></link>
dalam contoh di atas. Ini juga berarti panggilan ke
<link linkend="api.clear.cache"><varname>clear_cache()</varname></link>
dan perubahan lain dari setelan-cache mungkin tidak berpengaruh setelah
<varname>is_cached()</varname> mengembalikan &true;.
</para>
</note>
<example>
<title>is_cached()</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) {
// lakukan panggilan database, tempatkan vars di sini
}
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<example>
<title>is_cached() with multiple-cache template</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl', 'FrontPage')) {
// lakukan panggilan database, tempatkan vars di sini
}
$smarty->display('index.tpl', 'FrontPage');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.clear.cache"><varname>clear_cache()</varname></link>,
<link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>,
and
<link linkend="caching">seksi caching</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.load.filter">
<refnamediv>
<refname>load_filter()</refname>
<refpurpose>mengambil plugin filter</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>load_filter</methodname>
<methodparam><type>string</type><parameter>type</parameter></methodparam>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Argumen pertama menetapkan tipe filter yang diambil dan bisa salah satu dari
yang berikut ini: <literal>pre</literal>, <literal>post</literal> atau
<literal>output</literal>.
Argumen kedua menetapkan <parameter>nama</parameter> plugin filter.
</para>
<example>
<title>Mengambil plugin filter</title>
<programlisting role="php">
<![CDATA[
<?php
// ambil prefilter bernama 'trim'
$smarty->load_filter('pre', 'trim');
// ambil prefilter lain bernama 'datefooter'
$smarty->load_filter('pre', 'datefooter');
// ambil filter output bernama 'compress'
$smarty->load_filter('output', 'compress');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.register.prefilter"><varname>register_prefilter()</varname></link>,
<link linkend="api.register.postfilter"><varname>register_postfilter()</varname></link>,
<link linkend="api.register.outputfilter"><varname>register_outputfilter()</varname></link>,
<link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link>
dan
<link linkend="advanced.features">advanced features</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.block">
<refnamediv>
<refname>register_block()</refname>
<refpurpose>secara dinamis meregistrasi plugins fungsi blok</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_block</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>mixed</type><parameter>impl</parameter></methodparam>
<methodparam><type>bool</type><parameter>cacheable</parameter></methodparam>
<methodparam><type>mixed</type><parameter>cache_attrs</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk meregistrasi
<link linkend="plugins.block.functions">plugin fungsi blok</link> secara
dinamis.
Mengirimkan <parameter>name</parameter> fungsi blok, diikuti oleh nama fungsi
PHP yang mengimplementasikannya.
</para>
&api.register.snippet;
<para>
<parameter>cacheable</parameter> dan <parameter>cache_attrs</parameter>
dapat diabaikan. Lihat seksi <link
linkend="caching.cacheable">mengontrol output plugin yang dapat di-cache</link>
atas bagaimana untuk mengimplementasikannya dengan benar.
</para>
<example>
<title>register_block()</title>
<programlisting role="php">
<![CDATA[
<?php
// deklararsi fungsi
function do_translation ($params, $content, &$smarty, &$repeat)
{
if (isset($content)) {
$lang = $params['lang'];
// lakukan beberapa terjemahan dengan $content
return $translation;
}
}
// registrasi dengan smarty
$smarty->register_block('translate', 'do_translation');
?>
]]>
</programlisting>
<para>
Di mana template adalah:
</para>
<programlisting>
<![CDATA[
{translate lang='br'}Hello, world!{/translate}
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.unregister.block"><varname>unregister_block()</varname></link>
dan halaman
<link linkend="plugins.block.functions">fungsi blok plugin</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.compiler.function">
<refnamediv>
<refname>register_compiler_function()</refname>
<refpurpose>secara dinamis meregistrasi plugins fungsi kompilator</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>bool</type><methodname>register_compiler_function</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>mixed</type><parameter>impl</parameter></methodparam>
<methodparam><type>bool</type><parameter>cacheable</parameter></methodparam>
</methodsynopsis>
<para>
Mengirimkan nama
<link linkend="plugins.compiler.functions">fungsi kompilator</link>,
diikuti oleh fungsi PHP yang mengimplementasikannya.
</para>
&api.register.snippet;
<para>
<parameter>cacheable</parameter> dapat diabaikan. Lihat
<link linkend="caching.cacheable">mengontrol output plugin
yang dapat di-cache</link> atas bagaimana untuk menggunakannya dengan benar.
</para>
<para>
Lihat juga
<link linkend="api.unregister.compiler.function">
<varname>unregister_compiler_function()</varname></link>
dan seksi
<link linkend="plugins.compiler.functions">fungsi kompilator plugin</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.function">
<refnamediv>
<refname>register_function()</refname>
<refpurpose>secara dinamis meregistrasi plugin fungsi template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_function</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>mixed</type><parameter>impl</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>cacheable</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>cache_attrs</parameter>
</methodparam>
</methodsynopsis>
<para>
Mengirimkan nama <link linkend="plugins.functions">fungsi template</link>,
diikuti oleh nama fungsi PHP yang mengimplementasikannya.
</para>
&api.register.snippet;
<para>
<parameter>cacheable</parameter> dan <parameter>cache_attrs</parameter> dapat
diabaikan. Lihat <link
linkend="caching.cacheable">mengontrol output plugin yang dapat di-cache</link>
atas bagaimana menggunakannya dengan benar.
</para>
<example>
<title>register_function()</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->register_function('date_now', 'print_current_date');
function print_current_date($params, &$smarty)
{
if(empty($params['format'])) {
$format = "%b %e, %Y";
} else {
$format = $params['format'];
}
return strftime($format,time());
}
?>
]]>
</programlisting>
<para>
Dan dalam template
</para>
<programlisting>
<![CDATA[
{date_now}
{* atau untuk membentuk secara berbeda *}
{date_now format="%Y/%m/%d"}
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.unregister.function"><varname>unregister_function()</varname></link>
dan seksi
<link linkend="plugins.functions">fungsi plugin</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.modifier">
<refnamediv>
<refname>register_modifier()</refname>
<refpurpose>secara dinamis meregistrasi plugin pengubah</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_modifier</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>mixed</type><parameter>impl</parameter></methodparam>
</methodsynopsis>
<para>
Mengirimkan nama pengubah template, diikuti oleh fungsi PHP yang
mengimplementasikannya.
</para>
&api.register.snippet;
<example>
<title>register_modifier()</title>
<programlisting role="php">
<![CDATA[
<?php
// mari peta-kan fungsi PHP stripslashes ke pengubah Smarty.
$smarty->register_modifier('ss', 'stripslashes');
?>
]]>
</programlisting>
<para>Dalam template, pakai <literal>ss</literal> untuk membuang garis miring.</para>
<programlisting>
<![CDATA[
<?php
{$var|ss}
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.unregister.modifier"><varname>unregister_modifier()</varname></link>,
<link linkend="api.register.function"><varname>register_function()</varname></link>,
seksi <link linkend="language.modifiers">pengubah</link>,
<link linkend="plugins">memperluas Smarty dengan plugins</link>
dan
<link linkend="plugins.modifiers">membuat pengubah plugin</link>,
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.object">
<refnamediv>
<refname>register_object()</refname>
<refpurpose>meregistrasi obyek untuk digunakan dalam template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_object</methodname>
<methodparam><type>string</type><parameter>object_name</parameter></methodparam>
<methodparam><type>object</type><parameter>object</parameter></methodparam>
<methodparam><type>array</type><parameter>allowed_methods_properties</parameter>
</methodparam>
<methodparam><type>boolean</type><parameter>format</parameter></methodparam>
<methodparam><type>array</type><parameter>block_methods</parameter></methodparam>
</methodsynopsis>
<para>
Lihat
<link linkend="advanced.features.objects">seksi obyek</link>
untuk informasi lebih jauh.
</para>
<para>
Lihat juga
<link linkend="api.get.registered.object"><varname>get_registered_object()</varname></link>,
dan
<link linkend="api.unregister.object"><varname>unregister_object()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.outputfilter">
<refnamediv>
<refname>register_outputfilter()</refname>
<refpurpose>secara dinamis meregistrasi outputfilters</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsin</title>
<methodsynopsis>
<type>void</type><methodname>register_outputfilter</methodname>
<methodparam><type>mixed</type><parameter>function</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk meregistrasi
<link linkend="plugins.outputfilters">outputfilters</link> secara dinamis
guna beroperasi pada output template sebelum ia
<link linkend="api.display">ditampilkan</link>. Lihat
<link linkend="advanced.features.outputfilters">filter output
template</link>
untuk informasi lebih jauh atas bagaimana menyiapkan fungsi filter output.
</para>
&api.register.snippet;
&note.parameter.function;
<para>
Lihat juga
<link linkend="api.unregister.outputfilter"><varname>unregister_outputfilter()</varname></link>,
<link linkend="api.load.filter"><varname>load_filter()</varname></link>,
<link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link>
dan seksi
<link linkend="advanced.features.outputfilters">filter output template</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.postfilter">
<refnamediv>
<refname>register_postfilter()</refname>
<refpurpose>secara dinamis meregistrasi postfilters</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_postfilter</methodname>
<methodparam><type>mixed</type><parameter>function</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk meregistrasi
<link linkend="advanced.features.postfilters">postfilters</link> secara
dinamis guna menjalankan template setelah ia dikompilasi. Lihat <link
linkend="advanced.features.postfilters">template postfilters</link> untuk
informasi lebih jauh atas bagaimana menyiapkan postfilter fungsi.
</para>
&api.register.snippet;
&note.parameter.function;
<para>
Lihat juga
<link linkend="api.unregister.postfilter">
<varname>unregister_postfilter()</varname></link>,
<link linkend="api.register.prefilter">
<varname>register_prefilter()</varname></link>,
<link linkend="api.load.filter"><varname>load_filter()</varname></link>,
<link linkend="variable.autoload.filters">
<parameter>$autoload_filters</parameter></link>
dan seksi
<link linkend="advanced.features.outputfilters">template output filters</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.prefilter">
<refnamediv>
<refname>register_prefilter()</refname>
<refpurpose>secara dinamis meregistrasi prefilters</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_prefilter</methodname>
<methodparam><type>mixed</type><parameter>function</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk meregistrasi
<link linkend="advanced.features.prefilters">prefilters</link> secara
dinamis guna menjalankan template sebelum ia dikompilas. Lihat <link
linkend="advanced.features.prefilters">template prefilters</link>
untuk informasi lebih jauh atas bagaimana menyiapkan prefilter fungsi.
</para>
&api.register.snippet;
&note.parameter.function;
<para>
Lihat juga
<link linkend="api.unregister.prefilter"><varname>unregister_prefilter()</varname></link>,
<link linkend="api.register.postfilter"><varname>register_postfilter()</varname></link>,
<link linkend="api.register.outputfilter"><varname>register_ouputfilter()</varname></link>,
<link linkend="api.load.filter"><varname>load_filter()</varname></link>,
<link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link>
dan seksi
<link linkend="advanced.features.outputfilters">template output filters</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.register.resource">
<refnamediv>
<refname>register_resource()</refname>
<refpurpose>secara dinamis meregistrasi sumberdaya</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>register_resource</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>array</type><parameter>resource_funcs</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk meregistrasi
<link linkend="template.resources">plugin sumber daya</link> secara
dinamis dengan Smarty.
Mengirimkan <parameter>name</parameter> sumber daya dab fungsi array PHP
yang mengimplementasikannya. Lihat
<link linkend="template.resources">sumber daya template</link>
untuk informasi lebih jauh atas bagaimana menyiapkan fungsi untuk mengambil
templates.
<note>
<title>Catatan Teknis</title>
<para>
Panjang nama sumber daya harus berisi setidaknya 2 karakter. Satu karakter
nama sumber daya akan diabaikan dan dipakai sebagai bagian dari path file,
misalnya <literal>$smarty->display('c:/path/to/index.tpl');</literal>
</para>
</note>
</para>
<itemizedlist>
<listitem><para>
array-fungsi-php <parameter>resource_funcs</parameter>
harus mempunyai 4 atau 5 elemen.
</para></listitem>
<listitem><para>
Dengan 4 elemen, elemen adalah callback-fungsi untuk fungsi <literal>source</literal>
masing-masing,
<literal>timestamp</literal>, <literal>secure</literal> dan
<literal>trusted</literal> dari sumber daya.
</para></listitem>
<listitem><para>
Dengan 5 elemen, elemen pertama harus berupa referensi obyek atau nama kelas
obyek atau kelas yang mengimplementasikan sumber daya dan 4 elemen berikut
harus berupa nama metode yang mengimplementasikan <literal>source</literal>,
<literal>timestamp</literal>, <literal>secure</literal>
dan <literal>trusted</literal>.
</para></listitem>
</itemizedlist>
<example>
<title>register_resource()</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->register_resource('db', array(
'db_get_template',
'db_get_timestamp',
'db_get_secure',
'db_get_trusted')
);
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.unregister.resource"><varname>unregister_resource()</varname></link>
dan seksi
<link linkend="template.resources">sumber daya template</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.template.exists">
<refnamediv>
<refname>template_exists()</refname>
<refpurpose>memeiksa apakah template yang ditetapkan sudah ada</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>bool</type><methodname>template_exists</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
</methodsynopsis>
<para>
Ini dapat menerima baik path ke template pada sistem file ataupun string
sumber daya yang menetapkan template.
</para>
<example>
<title>template_exists()</title>
<para>
Contoh ini menggunakan <literal>$_GET['page']</literal> untuk
<link linkend="language.function.include"><varname>{include}</varname></link>
konten template. Jika template tidak ada maka halaman kesalahan yang
ditampilkan. Pertama <filename>page_container.tpl</filename>
</para>
<programlisting role="php">
<![CDATA[
<html>
<head><title>{$title}</title></head>
<body>
{include file='page_top.tpl'}
{* sertakan halaman konten tengah *}
{include file=$content_template}
{include file='page_footer.tpl'}
</body>
]]>
</programlisting>
<para>
Dan naskah php
</para>
<programlisting role="php">
<![CDATA[
<?php
// set nama file, contoh index.inc.tpl
$mid_template = $_GET['page'].'.inc.tpl';
if( !$smarty->template_exists($mid_template) ){
$mid_template = 'page_not_found.tpl';
}
$smarty->assign('content_template', $mid_template);
$smarty->display('page_container.tpl');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.display"><varname>display()</varname></link>,
<link linkend="api.fetch"><varname>fetch()</varname></link>,
<link linkend="language.function.include"><varname>{include}</varname></link>
and
<link linkend="language.function.insert"><varname>{insert}</varname></link>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.trigger.error">
<refnamediv>
<refname>trigger_error()</refname>
<refpurpose>menampilkan pesan kesalahan</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>trigger_error</methodname>
<methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>level</parameter></methodparam>
</methodsynopsis>
<para>
Fungsi ini dapat dipakai untuk menampilkan pesan kesalahan menggunakan Smarty.
Parameter <parameter>level</parameter> bisa salah satu dari nilai yang dipakai
fungsi PHP <ulink url="&url.php-manual;trigger_error">
<varname>trigger_error()</varname></ulink>, contoh:
<literal>E_USER_NOTICE</literal>, <literal>E_USER_WARNING</literal>, dll.
Standarnya adalah <literal>E_USER_WARNING</literal>.
</para>
<para>
Lihat juga
<link linkend="variable.error.reporting">
<parameter>$error_reporting</parameter></link>,
<link linkend="chapter.debugging.console">debugging</link>
dan
<link linkend="smarty.php.errors">pemecahan masalah</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.unregister.block">
<refnamediv>
<refname>unregister_block()</refname>
<refpurpose>secara dinamis membatalkan registrasi plugin fungsi blok</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>unregister_block</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Gunakan ini untuk membatalkan registrasi
<link linkend="plugins.block.functions">plugin fungsi blok</link> secara
dinamis.
Mengirimkan fungsi blok <parameter>name</parameter>.
</para>
<para>
Lihat juga
<link linkend="api.register.block"><varname>register_block()</varname></link>
dan
<link linkend="plugins.block.functions">plugins fungsi blok</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.unregister.compiler.function">
<refnamediv>
<refname>unregister_compiler_function()</refname>
<refpurpose>secara dinamis membatalkan registrasi fungsi kompilator</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>unregister_compiler_function</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Mengirimkan <parameter>name</parameter> fungsi kompilator.
</para>
<para>
Lihat juga
<link linkend="api.register.compiler.function">
<varname>register_compiler_function()</varname></link>
dan
<link linkend="plugins.compiler.functions">fungsi kompilator plugin</link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.unregister.function">
<refnamediv>
<refname>unregister_function</refname>
<refpurpose>secara dinamis membatalkan registrasi plugin fungsi template</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>unregister_function</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Mengirimkan fungsi template <parameter>name</parameter>.
</para>
<example>
<title>unregister_function</title>
<programlisting role="php">
<![CDATA[
<?php
// kita tidak menginginkan desainer template harus mengakses file sistem
$smarty->unregister_function('fetch');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga <link linkend="api.register.function">
<varname>register_function()</varname></link>.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<refentry id="api.unregister.modifier">
<refnamediv>
<refname>unregister_modifier()</refname>
<refpurpose>secara dinamis membatalkan registrasi plugin pengubah</refpurpose>
</refnamediv>
<refsect1>
<title>Deskripsi</title>
<methodsynopsis>
<type>void</type><methodname>unregister_modifier</methodname>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Mengirimkan pengubah template <parameter>name</parameter>.
</para>
<example>
<title>unregister_modifier()</title>
<programlisting role="php">
<![CDATA[
<?php
// kita tidak menginginkan desainer template untuk membuang taag dari elemen
$smarty->unregister_modifier('strip_tags');
?>
]]>
</programlisting>
</example>
<para>
Lihat juga
<link linkend="api.register.modifier"><varname>register_modifier()</varname></link>
dan
<link linkend="plugins.modifiers">pengubah plugin</link>,
</para>
</refsect1>
</refentry>
<!-- 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
-->

Some files were not shown because too many files have changed in this diff Show More