LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Zaenal Mutaqin Date: Tue Sep 18 11:45:48 2007 Subject: cvs: smarty /docs/id/programmers/advanced-features advanced-features-objects.xml advanced-features-outputfilters.xml advanced-features-postfilters.xml
advanced-features-prefilters.xml section-template-cache-handler-func.xml template-resources.xml /docs/id/programmers/api-functions
api-append-by-ref.xml api-append.xml api-assign-by-ref.xml api-assign.xml api-clear-all-assign.xml api-clear-all-cache.xml api-clear-assign.xml
api-clear-cache.xml api-clear-compiled-tpl.xml api-clear-config.xml api-config-load.xml api-display.xml api-fetch.xml api-get-config-vars.xml
api-get-registered-object.xml api-get-template-vars.xml api-is-cached.xml api-load-filter.xml api-register-block.xml
api-register-compiler-function.xml api-register-function.xml api-register-modifier.xml api-register-object.xml api-register-outputfilter.xml
api-register-postfilter.xml api-register-prefilter.xml api-register-resource.xml api-template-exists.xml api-trigger-error.xml
api-unregister-block.xml a!
pi-unregister-compiler-function.xml api-unregister-function.xml api-unregister-modifier.xml api-unregister-object.xml
api-unregister-outputfilter.xml api-unregister-postfilter.xml api-unregister-prefilter.xml api-unregister-resource.xml
/docs/id/programmers/api-variables variable-autoload-filters.xml variable-cache-dir.xml variable-cache-handler-func.xml variable-cache-lifetime.xml
variable-cache-modified-check.xml variable-caching.xml variable-compile-check.xml variable-compile-dir.xml variable-compile-id.xml
variable-compiler-class.xml variable-config-booleanize.xml variable-config-dir.xml variable-config-fix-newlines.xml variable-config-overwrite.xml
variable-config-read-hidden.xml variable-debug-tpl.xml variable-debugging-ctrl.xml variable-debugging.xml variable-default-modifiers.xml
variable-default-resource-type.xml variable-default-template-handler-func.xml variable-error-reporting.xml variable-force-compile.xml
variable-left-delimiter.xml variable-php-handling.xml !
variable-plugins-dir.xml variable-request-use-auto-globals.xml variable-request-vars-order.xml variable-right-delimiter.xml variable-secure-dir.xml
variable-security-settings.xml variable-security.xml variable-template-dir.xml variable-trusted-dir.xml variable-use-sub-dirs.xml
/docs/id/programmers/caching caching-cacheable.
adezm Tue Sep 18 17:45:48 2007 UTC
Added files:
/smarty/docs/id/programmers/advanced-features
advanced-features-objects.xml
advanced-features-outputfilters.xml
advanced-features-postfilters.xml
advanced-features-prefilters.xml
section-template-cache-handler-func.xml
template-resources.xml
/smarty/docs/id/programmers/api-functions api-append-by-ref.xml
api-append.xml
api-assign-by-ref.xml
api-assign.xml
api-clear-all-assign.xml
api-clear-all-cache.xml
api-clear-assign.xml
api-clear-cache.xml
api-clear-compiled-tpl.xml
api-clear-config.xml
api-config-load.xml
api-display.xml
api-fetch.xml
api-get-config-vars.xml
api-get-registered-object.xml
api-get-template-vars.xml
api-is-cached.xml
api-load-filter.xml
api-register-block.xml
api-register-compiler-function.xml
api-register-function.xml
api-register-modifier.xml
api-register-object.xml
api-register-outputfilter.xml
api-register-postfilter.xml
api-register-prefilter.xml
api-register-resource.xml
api-template-exists.xml
api-trigger-error.xml
api-unregister-block.xml
api-unregister-compiler-function.xml
api-unregister-function.xml
api-unregister-modifier.xml
api-unregister-object.xml
api-unregister-outputfilter.xml
api-unregister-postfilter.xml
api-unregister-prefilter.xml
api-unregister-resource.xml
/smarty/docs/id/programmers/api-variables
variable-autoload-filters.xml
variable-cache-dir.xml
variable-cache-handler-func.xml
variable-cache-lifetime.xml
variable-cache-modified-check.xml
variable-caching.xml
variable-compile-check.xml
variable-compile-dir.xml
variable-compile-id.xml
variable-compiler-class.xml
variable-config-booleanize.xml
variable-config-dir.xml
variable-config-fix-newlines.xml
variable-config-overwrite.xml
variable-config-read-hidden.xml
variable-debug-tpl.xml
variable-debugging-ctrl.xml
variable-debugging.xml
variable-default-modifiers.xml
variable-default-resource-type.xml
variable-default-template-handler-func.xml
variable-error-reporting.xml
variable-force-compile.xml
variable-left-delimiter.xml
variable-php-handling.xml
variable-plugins-dir.xml
variable-request-use-auto-globals.xml
variable-request-vars-order.xml
variable-right-delimiter.xml
variable-secure-dir.xml
variable-security-settings.xml
variable-security.xml
variable-template-dir.xml
variable-trusted-dir.xml
variable-use-sub-dirs.xml
/smarty/docs/id/programmers/caching caching-cacheable.xml
caching-groups.xml
caching-multiple-caches.xml
caching-setting-up.xml
/smarty/docs/id/programmers/plugins plugins-block-functions.xml
plugins-compiler-functions.xml
plugins-functions.xml
plugins-howto.xml
plugins-inserts.xml
plugins-modifiers.xml
plugins-naming-conventions.xml
plugins-outputfilters.xml
plugins-prefilters-postfilters.xml
plugins-resources.xml
plugins-writing.xml
Log:
Typos correction and all translated now.
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/advanced-features-objects.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/advanced-features-objects.xml
+++ smarty/docs/id/programmers/advanced-features/advanced-features-objects.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>&$smarty</parameter> dan
<parameter>&$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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/advanced-features-outputfilters.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/advanced-features-outputfilters.xml
+++ smarty/docs/id/programmers/advanced-features/advanced-features-outputfilters.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/advanced-features-postfilters.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/advanced-features-postfilters.xml
+++ smarty/docs/id/programmers/advanced-features/advanced-features-postfilters.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/advanced-features-prefilters.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/advanced-features-prefilters.xml
+++ smarty/docs/id/programmers/advanced-features/advanced-features-prefilters.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/section-template-cache-handler-func.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/section-template-cache-handler-func.xml
+++ smarty/docs/id/programmers/advanced-features/section-template-cache-handler-func.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/advanced-features/template-resources.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/advanced-features/template-resources.xml
+++ smarty/docs/id/programmers/advanced-features/template-resources.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-append-by-ref.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-append-by-ref.xml
+++ smarty/docs/id/programmers/api-functions/api-append-by-ref.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>
¬e.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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-append.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-append.xml
+++ smarty/docs/id/programmers/api-functions/api-append.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>
¬e.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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-assign-by-ref.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-assign-by-ref.xml
+++ smarty/docs/id/programmers/api-functions/api-assign-by-ref.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-assign.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-assign.xml
+++ smarty/docs/id/programmers/api-functions/api-assign.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-all-assign.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-all-assign.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-all-assign.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-all-cache.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-all-cache.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-all-cache.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-assign.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-assign.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-assign.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-cache.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-cache.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-cache.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-compiled-tpl.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-compiled-tpl.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-compiled-tpl.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-clear-config.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-clear-config.xml
+++ smarty/docs/id/programmers/api-functions/api-clear-config.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-config-load.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-config-load.xml
+++ smarty/docs/id/programmers/api-functions/api-config-load.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-display.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-display.xml
+++ smarty/docs/id/programmers/api-functions/api-display.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>
¶meter.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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-fetch.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-fetch.xml
+++ smarty/docs/id/programmers/api-functions/api-fetch.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>
¶meter.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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-get-config-vars.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-get-config-vars.xml
+++ smarty/docs/id/programmers/api-functions/api-get-config-vars.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-get-registered-object.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-get-registered-object.xml
+++ smarty/docs/id/programmers/api-functions/api-get-registered-object.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-get-template-vars.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-get-template-vars.xml
+++ smarty/docs/id/programmers/api-functions/api-get-template-vars.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-is-cached.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-is-cached.xml
+++ smarty/docs/id/programmers/api-functions/api-is-cached.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-load-filter.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-load-filter.xml
+++ smarty/docs/id/programmers/api-functions/api-load-filter.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-block.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-register-block.xml
+++ smarty/docs/id/programmers/api-functions/api-register-block.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-compiler-function.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-register-compiler-function.xml
+++ smarty/docs/id/programmers/api-functions/api-register-compiler-function.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-function.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-register-function.xml
+++ smarty/docs/id/programmers/api-functions/api-register-function.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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
-->
http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-modifier.xml?view=markup&rev=1.1
Index: smarty/docs/id/programmers/api-functions/api-register-modifier.xml
+++ smarty/docs/id/programmers/api-functions/api-register-modifier.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<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>