LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Zaenal Mutaqin Date: Tue Sep 18 11:41:05 2007 Subject: cvs: smarty /docs/id/designers/language-basic-syntax language-escaping.xml language-math.xml language-syntax-attributes.xml
language-syntax-comments.xml language-syntax-functions.xml language-syntax-quotes.xml language-syntax-variables.xml
/docs/id/designers/language-builtin-functions language-function-capture.xml language-function-config-load.xml language-function-foreach.xml
language-function-if.xml language-function-include-php.xml language-function-include.xml language-function-insert.xml language-function-ldelim.xml
language-function-literal.xml language-function-php.xml language-function-section.xml language-function-strip.xml
/docs/id/designers/language-custom-functions language-function-assign.xml language-function-counter.xml language-function-cycle.xml
language-function-debug.xml language-function-eval.xml language-function-fetch.xml language-function-html-checkboxes.xml
language-function-html-image.xml language-function-html-options.xml language-functio!
n-html-radios.xml language-function-html-select-date.xml language-function-html-select-time.xml language-function-html-table.xml
language-function-mailto.xml language-function-math.xml language-function-popup-init.xml language-function-popup.xml language-function-textformat.xml
/docs/id/designers/language-modifiers language-modifier-capitalize.xml language-modifier-cat.xml language-modifier-count-characters.xml
language-modifier-count-paragraphs.xml language-modifier-count-sentences.xml language-modifier-count-words.xml language-modifier-date-format.xml
language-modifier-default.xml language-modifier-escape.xml language-modifier-indent.xml language-modifier-lower.xml language-modifier-nl2br.xml
language-modifier-regex-replace.xml language-modifier-replace.xml language-modifier-spacify.xml language-modifier-string-format.xml
language-modifier-strip-tags.xml language-modifier-strip.xml language-modifier-truncate.xml language-modifier-upper.xml
language-modifier-wordwrap.xml !
/docs/id/designers/language-variables language-assigned-variables.xml language-config-variables.xml language-variables-smarty.xml
adezm Tue Sep 18 17:41:05 2007 UTC
Added files:
/smarty/docs/id/designers/language-basic-syntax
language-escaping.xml
language-math.xml
language-syntax-attributes.xml
language-syntax-comments.xml
language-syntax-functions.xml
language-syntax-quotes.xml
language-syntax-variables.xml
/smarty/docs/id/designers/language-builtin-functions
language-function-capture.xml
language-function-config-load.xml
language-function-foreach.xml
language-function-if.xml
language-function-include-php.xml
language-function-include.xml
language-function-insert.xml
language-function-ldelim.xml
language-function-literal.xml
language-function-php.xml
language-function-section.xml
language-function-strip.xml
/smarty/docs/id/designers/language-custom-functions
language-function-assign.xml
language-function-counter.xml
language-function-cycle.xml
language-function-debug.xml
language-function-eval.xml
language-function-fetch.xml
language-function-html-checkboxes.xml
language-function-html-image.xml
language-function-html-options.xml
language-function-html-radios.xml
language-function-html-select-date.xml
language-function-html-select-time.xml
language-function-html-table.xml
language-function-mailto.xml
language-function-math.xml
language-function-popup-init.xml
language-function-popup.xml
language-function-textformat.xml
/smarty/docs/id/designers/language-modifiers
language-modifier-capitalize.xml
language-modifier-cat.xml
language-modifier-count-characters.xml
language-modifier-count-paragraphs.xml
language-modifier-count-sentences.xml
language-modifier-count-words.xml
language-modifier-date-format.xml
language-modifier-default.xml
language-modifier-escape.xml
language-modifier-indent.xml
language-modifier-lower.xml
language-modifier-nl2br.xml
language-modifier-regex-replace.xml
language-modifier-replace.xml
language-modifier-spacify.xml
language-modifier-string-format.xml
language-modifier-strip-tags.xml
language-modifier-strip.xml
language-modifier-truncate.xml
language-modifier-upper.xml
language-modifier-wordwrap.xml
/smarty/docs/id/designers/language-variables
language-assigned-variables.xml
language-config-variables.xml
language-variables-smarty.xml
Log:
Typos correction and all translated now.
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-escaping.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-escaping.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-escaping.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-math.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-math.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-math.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-syntax-attributes.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-syntax-attributes.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-syntax-attributes.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-syntax-comments.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-syntax-comments.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-syntax-comments.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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><!-- HTML comments --></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.. *}
{* $Id: Exp $ *}
{* $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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-syntax-functions.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-syntax-functions.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-syntax-functions.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-syntax-quotes.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-syntax-quotes.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-syntax-quotes.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-basic-syntax/language-syntax-variables.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-basic-syntax/language-syntax-variables.xml
+++ smarty/docs/id/designers/language-basic-syntax/language-syntax-variables.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-capture.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-capture.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-capture.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-config-load.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-config-load.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-config-load.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-foreach.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-foreach.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-foreach.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-if.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-if.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-if.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>&&</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>></entry>
<entry>gt</entry>
<entry>$a gt $b</entry>
<entry>lebih besar dari</entry>
<entry>></entry>
</row>
<row>
<entry><</entry>
<entry>lt</entry>
<entry>$a lt $b</entry>
<entry>kurang dari</entry>
<entry><</entry>
</row>
<row>
<entry>>=</entry>
<entry>gte, ge</entry>
<entry>$a ge $b</entry>
<entry>lebih besar atau sama</entry>
<entry>>=</entry>
</row>
<row>
<entry><=</entry>
<entry>lte, le</entry>
<entry>$a le $b</entry>
<entry>kurang dari atau sama</entry>
<entry><=</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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-include-php.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-include-php.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-include-php.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-include.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-include.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-include.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-insert.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-insert.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-insert.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-ldelim.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-ldelim.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-ldelim.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-literal.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-literal.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-literal.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-php.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-php.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-php.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/designers/language-builtin-functions/language-function-section.xml?view=markup&rev=1.1
Index: smarty/docs/id/designers/language-builtin-functions/language-function-section.xml
+++ smarty/docs/id/designers/language-builtin-functions/language-function-section.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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 dim