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.
| From: | Zaenal Mutaqin | Date: | Tue, 18 Sep 2007 17:45:48 +0000 |
| 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. |
||
| Groups: | php.smarty.cvs | ||
| Request: | Send a blank email to php-smarty-cvs+get-2266@lists.php.net to get a copy of this message | ||
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> <!-- 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-object.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-object.xml +++ smarty/docs/id/programmers/api-functions/api-register-object.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.object"> <refnamediv> <refname>register_object()</refname> <refpurpose>meregistrasi obyek untuk digunakan dalam template</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_object</methodname> <methodparam><type>string</type><parameter>object_name</parameter></methodparam> <methodparam><type>object</type><parameter>object</parameter></methodparam> <methodparam><type>array</type><parameter>allowed_methods_properties</parameter> </methodparam> <methodparam><type>boolean</type><parameter>format</parameter></methodparam> <methodparam><type>array</type><parameter>block_methods</parameter></methodparam> </methodsynopsis> <para> Lihat <link linkend="advanced.features.objects">seksi obyek</link> untuk informasi lebih jauh. </para> <para> Lihat juga <link linkend="api.get.registered.object"><varname>get_registered_object()</varname></link>, dan <link linkend="api.unregister.object"><varname>unregister_object()</varname></link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.outputfilter"> <refnamediv> <refname>register_outputfilter()</refname> <refpurpose>secara dinamis meregistrasi outputfilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsin</title> <methodsynopsis> <type>void</type><methodname>register_outputfilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="plugins.outputfilters">outputfilters</link> secara dinamis guna beroperasi pada output template sebelum ia <link linkend="api.display">ditampilkan</link>. Lihat <link linkend="advanced.features.outputfilters">filter output template</link> untuk informasi lebih jauh atas bagaimana menyiapkan fungsi filter output. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.outputfilter"><varname>unregister_outputfilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">filter output template</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-postfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-postfilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-postfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.postfilter"> <refnamediv> <refname>register_postfilter()</refname> <refpurpose>secara dinamis meregistrasi postfilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_postfilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="advanced.features.postfilters">postfilters</link> secara dinamis guna menjalankan template setelah ia dikompilasi. Lihat <link linkend="advanced.features.postfilters">template postfilters</link> untuk informasi lebih jauh atas bagaimana menyiapkan postfilter fungsi. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.postfilter"> <varname>unregister_postfilter()</varname></link>, <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"> <parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-prefilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-prefilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-prefilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.prefilter"> <refnamediv> <refname>register_prefilter()</refname> <refpurpose>secara dinamis meregistrasi prefilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_prefilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="advanced.features.prefilters">prefilters</link> secara dinamis guna menjalankan template sebelum ia dikompilas. Lihat <link linkend="advanced.features.prefilters">template prefilters</link> untuk informasi lebih jauh atas bagaimana menyiapkan prefilter fungsi. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.prefilter"><varname>unregister_prefilter()</varname></link>, <link linkend="api.register.postfilter"><varname>register_postfilter()</varname></link>, <link linkend="api.register.outputfilter"><varname>register_ouputfilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-resource.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-resource.xml +++ smarty/docs/id/programmers/api-functions/api-register-resource.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.resource"> <refnamediv> <refname>register_resource()</refname> <refpurpose>secara dinamis meregistrasi sumberdaya</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_resource</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> <methodparam><type>array</type><parameter>resource_funcs</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="template.resources">plugin sumber daya</link> secara dinamis dengan Smarty. Mengirimkan <parameter>name</parameter> sumber daya dab fungsi array PHP yang mengimplementasikannya. Lihat <link linkend="template.resources">sumber daya template</link> untuk informasi lebih jauh atas bagaimana menyiapkan fungsi untuk mengambil templates. <note> <title>Catatan Teknis</title> <para> Panjang nama sumber daya harus berisi setidaknya 2 karakter. Satu karakter nama sumber daya akan diabaikan dan dipakai sebagai bagian dari path file, misalnya <literal>$smarty->display('c:/path/to/index.tpl');</literal> </para> </note> </para> <itemizedlist> <listitem><para> array-fungsi-php <parameter>resource_funcs</parameter> harus mempunyai 4 atau 5 elemen. </para></listitem> <listitem><para> Dengan 4 elemen, elemen adalah callback-fungsi untuk fungsi <literal>source</literal> masing-masing, <literal>timestamp</literal>, <literal>secure</literal> dan <literal>trusted</literal> dari sumber daya. </para></listitem> <listitem><para> Dengan 5 elemen, elemen pertama harus berupa referensi obyek atau nama kelas obyek atau kelas yang mengimplementasikan sumber daya dan 4 elemen berikut harus berupa nama metode yang mengimplementasikan <literal>source</literal>, <literal>timestamp</literal>, <literal>secure</literal> dan <literal>trusted</literal>. </para></listitem> </itemizedlist> <example> <title>register_resource()</title> <programlisting role="php"> <![CDATA[ <?php $smarty->register_resource('db', array( 'db_get_template', 'db_get_timestamp', 'db_get_secure', 'db_get_trusted') ); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.unregister.resource"><varname>unregister_resource()</varname></link> dan seksi <link linkend="template.resources">sumber daya template</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-template-exists.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-template-exists.xml +++ smarty/docs/id/programmers/api-functions/api-template-exists.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.template.exists"> <refnamediv> <refname>template_exists()</refname> <refpurpose>memeiksa apakah template yang ditetapkan sudah ada</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>bool</type><methodname>template_exists</methodname> <methodparam><type>string</type><parameter>template</parameter></methodparam> </methodsynopsis> <para> Ini dapat menerima baik path ke template pada sistem file ataupun string sumber daya yang menetapkan template. </para> <example> <title>template_exists()</title> <para> Contoh ini menggunakan <literal>$_GET['page']</literal> untuk <link linkend="language.function.include"><varname>{include}</varname></link> konten template. Jika template tidak ada maka halaman kesalahan yang ditampilkan. Pertama <filename>page_container.tpl</filename> </para> <programlisting role="php"> <![CDATA[ <html> <head><title>{$title}</title></head> <body> {include file='page_top.tpl'} {* sertakan halaman konten tengah *} {include file=$content_template} {include file='page_footer.tpl'} </body> ]]> </programlisting> <para> Dan naskah php </para> <programlisting role="php"> <![CDATA[ <?php // set nama file, contoh index.inc.tpl $mid_template = $_GET['page'].'.inc.tpl'; if( !$smarty->template_exists($mid_template) ){ $mid_template = 'page_not_found.tpl'; } $smarty->assign('content_template', $mid_template); $smarty->display('page_container.tpl'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.display"><varname>display()</varname></link>, <link linkend="api.fetch"><varname>fetch()</varname></link>, <link linkend="language.function.include"><varname>{include}</varname></link> and <link linkend="language.function.insert"><varname>{insert}</varname></link> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-trigger-error.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-trigger-error.xml +++ smarty/docs/id/programmers/api-functions/api-trigger-error.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.trigger.error"> <refnamediv> <refname>trigger_error()</refname> <refpurpose>menampilkan pesan kesalahan</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>trigger_error</methodname> <methodparam><type>string</type><parameter>error_msg</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>level</parameter></methodparam> </methodsynopsis> <para> Fungsi ini dapat dipakai untuk menampilkan pesan kesalahan menggunakan Smarty. Parameter <parameter>level</parameter> bisa salah satu dari nilai yang dipakai fungsi PHP <ulink url="&url.php-manual;trigger_error"> <varname>trigger_error()</varname></ulink>, contoh: <literal>E_USER_NOTICE</literal>, <literal>E_USER_WARNING</literal>, dll. Standarnya adalah <literal>E_USER_WARNING</literal>. </para> <para> Lihat juga <link linkend="variable.error.reporting"> <parameter>$error_reporting</parameter></link>, <link linkend="chapter.debugging.console">debugging</link> dan <link linkend="smarty.php.errors">pemecahan masalah</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-block.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-block.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-block.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.block"> <refnamediv> <refname>unregister_block()</refname> <refpurpose>secara dinamis membatalkan registrasi plugin fungsi blok</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_block</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk membatalkan registrasi <link linkend="plugins.block.functions">plugin fungsi blok</link> secara dinamis. Mengirimkan fungsi blok <parameter>name</parameter>. </para> <para> Lihat juga <link linkend="api.register.block"><varname>register_block()</varname></link> dan <link linkend="plugins.block.functions">plugins fungsi blok</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.compiler.function"> <refnamediv> <refname>unregister_compiler_function()</refname> <refpurpose>secara dinamis membatalkan registrasi fungsi kompilator</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_compiler_function</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan <parameter>name</parameter> fungsi kompilator. </para> <para> Lihat juga <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link> dan <link linkend="plugins.compiler.functions">fungsi kompilator plugin</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-function.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-function.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-function.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.function"> <refnamediv> <refname>unregister_function</refname> <refpurpose>secara dinamis membatalkan registrasi plugin fungsi template</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_function</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan fungsi template <parameter>name</parameter>. </para> <example> <title>unregister_function</title> <programlisting role="php"> <![CDATA[ <?php // kita tidak menginginkan desainer template harus mengakses file sistem $smarty->unregister_function('fetch'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.function"> <varname>register_function()</varname></link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.modifier"> <refnamediv> <refname>unregister_modifier()</refname> <refpurpose>secara dinamis membatalkan registrasi plugin pengubah</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_modifier</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan pengubah template <parameter>name</parameter>. </para> <example> <title>unregister_modifier()</title> <programlisting role="php"> <![CDATA[ <?php // kita tidak menginginkan desainer template untuk membuang taag dari elemen $smarty->unregister_modifier('strip_tags'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.modifier"><varname>register_modifier()</varname></link> dan <link linkend="plugins.modifiers">pengubah plugin</link>, </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-object.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-object.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-object.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.object"> <refnamediv> <refname>unregister_object()</refname> <refpurpose>secara dinamis membatalkan registrasi obyek</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_object</methodname> <methodparam><type>string</type><parameter>object_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.register.object"><varname>register_object()</varname></link> dan <link linkend="advanced.features.objects">objects section</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-unregister-outputfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-outputfilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-outputfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.outputfilter"> <refnamediv> <refname>unregister_outputfilter()</refname> <refpurpose>secara dinamis membatalkan registrasi filter output</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_outputfilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk membatalkan registrasi filter output secara dinamis. </para> <para> Lihat juga <link linkend="api.register.outputfilter"> <varname>register_outputfilter()</varname></link> dan <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.postfilter"> <refnamediv> <refname>unregister_postfilter()</refname> <refpurpose>secara dinamis membatalkan registrasi postfilter</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_postfilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.unregister.postfilter"> <varname>register_postfilter()</varname></link> dan <link linkend="plugins.prefilters.postfilters">template post filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.prefilter"> <refnamediv> <refname>unregister_prefilter()</refname> <refpurpose>secara dinamis membatalkan registrasi prefilter</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_prefilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link> dan <link linkend="plugins.prefilters.postfilters">pre filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-resource.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-resource.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-resource.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.resource"> <refnamediv> <refname>unregister_resource()</refname> <refpurpose>secara dinamis membatalkan registrasi sebuah plugin sumber daya</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_resource</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> mengirimkan <parameter>name</parameter> sumber daya. </para> <example> <title>unregister_resource()</title> <programlisting role="php"> <![CDATA[ <?php $smarty->unregister_resource('db'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.resource"> <varname>register_resource()</varname></link> dan <link linkend="template.resources">template resources</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-variables/variable-autoload-filters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-autoload-filters.xml +++ smarty/docs/id/programmers/api-variables/variable-autoload-filters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.autoload.filters"> <title>$autoload_filters</title> <para> Jika ada beberapa filter yang ingin diambil pada setiap permintaan template, anda bisa menetapkannya menggunakan variabel ini dan Smarty akan secara otomatis mengambilnya bagi anda. Variabel adalah array asosiatif di mana kunci adalah tipe filter dan nilai adalah array nama filter. Sebagai contoh: <informalexample> <programlisting role="php"> <![CDATA[ <?php $smarty->autoload_filters = array('pre' => array('trim', 'stamp'), 'output' => array('convert')); ?> ]]> </programlisting> </informalexample> </para> <para> Lihat juga <link linkend="api.register.outputfilter"><varname>register_outputfilter()</varname></link>, <link linkend="api.register.prefilter"><varname>register_prefilter()</varname></link>, <link linkend="api.register.postfilter"><varname>register_postfilter()</varname></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/api-variables/variable-cache-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.dir"> <title>$cache_dir</title> <para> Ini adalah nama direktori di mana cache template disimpan. Standarnya adalah <filename class="directory">./cache</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">cache/</filename> di direktori yang sama seperti naskah php yang dijalankan <emphasis role="bold">direktori ini harus bisa ditulisi oleh server web </emphasis>, <link linkend="installing.smarty.basic">lihat instalasi</link> untuk info lebih lengkap. </para> <para> Anda juga dapat menggunakan fungsi <link linkend="section.template.cache.handler.func"> pengendali cache kustom</link> sendiri guna mengontrol file cache, yang akan mengabaikan setelan ini. Lihat juga <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</parameter></link>. </para> <note> <title>Catatan Teknis</title> <para> Setelan ini harus path relatif atau absolut. include_path tidak dipakai untuk menulis file. </para> </note> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> <para> Lihat juga <link linkend="variable.caching"><parameter>$caching</parameter></link>, <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, <link linkend="variable.cache.modified.check"><parameter>$cache_modified_check</parameter></link> dan <link linkend="caching">seksi caching</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/api-variables/variable-cache-handler-func.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-handler-func.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-handler-func.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.handler.func"> <title>$cache_handler_func</title> <para> Anda dapat menyertakan fungsi kustom untuk menangani file cache daripada menggunakan metode built-in menggunakan <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Lihat <link linkend="section.template.cache.handler.func">seksi fungsi pengendali cache</link> untuk lebih jelasnya. </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/api-variables/variable-cache-lifetime.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-lifetime.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-lifetime.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.lifetime"> <title>$cache_lifetime</title> <para> Ini adalah lama waktu dalam detik berlakunya cache template. Sekali ini berakhir, cache akan dibuat ulang. </para> <itemizedlist> <listitem><para> <parameter>$caching</parameter> harus dihidupkan (baik 1 atau 2) agar <parameter>$cache_lifetime</parameter> berfungsi dengan benar. </para></listitem> <listitem><para> Nilai -1 akan memaksa cache agar tidak pernah berakhir. </para></listitem> <listitem><para>Nilai 0 akan menyebabkan cache selalu dibuat ulang (hanya baik untuk pengujian saja, untuk mematikan cache lebih efisien ialah menyetel set <link linkend="variable.caching"><parameter>$caching</parameter></link> = 0). </para></listitem> <listitem><para> Jika anda ingin memberikan template tertentu memiliki usia cache sendiri, anda dapat melakukan ini dengan menyetel <link linkend="variable.caching"> <parameter>$caching</parameter></link> = 2, kemudian setel <parameter>$cache_lifetime</parameter> ke nilai unik sebelum memanggil <link linkend="api.display"><varname>display()</varname> </link> atau <link linkend="api.fetch"><varname>fetch()</varname></link>. </para></listitem> </itemizedlist> <para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, file cache akan dibuat ulang setiap waktu, secara efektif mematikan cache. Anda bisa membersihkan seluruh file cache dengan fungsi <link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>, atau file cache individual (atau grup) dengan fungsi <link linkend="api.clear.cache"><varname>clear_cache()</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/api-variables/variable-cache-modified-check.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-modified-check.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-modified-check.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.modified.check"> <title>$cache_modified_check</title> <para> Jika disetel &true;, Smarty akan memperhatikan Jika-Diubah-Sejak header dikirimkan dari klien. Jika cap waktu file yang di-cache tidak diubah sejak kuncjungan terakhir, maka header <literal>'304: Not Modified'</literal> akan dikirimkan daripada kontennya. Pekerjaan ini hanya pada kodten yang di-cache tanpa tag <link linkend="language.function.insert"><varname>{insert}</varname></link>. </para> <para> Lihat juga <link linkend="variable.caching"><parameter>$caching</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, dan <link linkend="caching">seksi caching</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/api-variables/variable-caching.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-caching.xml +++ smarty/docs/id/programmers/api-variables/variable-caching.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.caching"> <title>$caching</title> <para> Ini memberitahu Smarty apakah melakukan cache output template atau tidak ke <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Standarnya ini disetel 0 yakni dimatikan. Jika template anda membuat konten berlebihan, disarankan untuk menghidupkan <parameter>$caching</parameter>, karena ini akan menghasilkan keuntungan performansi signifikan. </para> <para> Anda juga memiliki <link linkend="caching.multiple.caches">multipel</link> cache untuk template yang sama. </para> <itemizedlist> <listitem><para> Nilai 1 atau 2 menghidupkan cache. </para></listitem> <listitem><para> Nilai 1 memberitahu Smarty untuk menggunakan variabel <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> saat ini guna menetapkan apakah cache sudah berakhir. </para></listitem> <listitem><para>Nilai 2 memberitahu Smarty untuk menggunakan nilai <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> saat waktu cache dibuat. Dengan cara ini anda bisa menyetel <link linkend="variable.cache.lifetime"> <parameter>$cache_lifetime</parameter></link> cukup sebelum <link linkend="api.fetch">fetching</link> template untuk memiliki kontrol granular melewati berakhirnya cache tertentu. Lihat juga <link linkend="api.is.cached"><varname>is_cached()</varname></link>. </para></listitem> <listitem><para> Jika <link linkend="variable.compile.check"><parameter>$compile_check</parameter></link> dihidupkan, konten yang di-cache akan dibuat ulang bila setiap template atau file config yang adalah bagian dari cache ini diubah. </para></listitem> <listitem><para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, konten yang di-cache akan selalu dibuat ulang. </para></listitem> </itemizedlist> <para> Lihat juga <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, <link linkend="variable.cache.modified.check"><parameter>$cache_modified_check</parameter></link>, <link linkend="api.is.cached"><varname>is_cached()</varname></link> dan <link linkend="caching">seksi caching</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/api-variables/variable-compile-check.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-check.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-check.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.check"> <title>$compile_check</title> <para> Setelah setiap permintaan dari aplikasi PHP, Smarty menguji untuk melihat apakah template saat ini sudah diubah (cap waktu berbeda) sejak terakhir dikompilasi, ia merekompilasi ulang template itu. Jika template tidak diubah ia akan mengompilasi dengan mengabaikan setelan ini. Standarnya variabel ini disetel ke &true;. </para> <para>Sekali aplikasi disimpan ke dalam produksi (misalnya template tidak akan berubah), langkah pemeriksaan kompilasi tidak lagi diperlukan. Pastikan untuk menyetel <parameter>$compile_check</parameter> ke &false; untuk performansi maksimal. Catatan bahwa jika anda mengubah ini ke &false; dan file template berubah, anda *tidak* akan melihat perubahan karena template tidak akan direkompilasi. Jika <link linkend="variable.caching"><parameter>$caching</parameter></link> dihidupkan dan <parameter>$compile_check</parameter> dihidupkan, maka file yang di-cache akan dibuat ulang bila file template terkait atau file konfig dimutakhirkan. Lihat <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dan <link linkend="api.clear.compiled.tpl"><varname>clear_compiled_tpl()</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/api-variables/variable-compile-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.dir"> <title>$compile_dir</title> <para> Ini adalah nama direktori di mana template terkompilasi ditempatkan. Standarnya ialah <filename class="directory">./templates_c</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">templates_c/</filename> di direktori yang sama seperti naskah php yang sedang dijalankan. <emphasis role="bold">Direktori ini harus bisa ditulisi oleh server web</emphasis>, <link linkend="installing.smarty.basic">lihat instalasi</link> untuk informasi lebih jauh. </para> <note> <title>Catatan Teknis</title> <para> Setelan ini harus path relatif atau absolut, absolute path. include_path tidak dipakai untuk menulis file. </para> </note> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori di bawah akar dokumen server web. </para> </note> <para> Lihat juga <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link> dan <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</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/api-variables/variable-compile-id.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-id.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-id.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.id"> <title>$compile_id</title> <para> Pengenal kompilasi persisten. Sebagai alternatif untuk mengirimkan <parameter>$compile_id</parameter> yang sama ke setiap fungsi panggil, anda bisa menyetel <parameter>$compile_id</parameter> ini dan ia akan dipakai secara implisit setelahnya. </para> <para> Dengan <parameter>$compile_id</parameter> anda bisa mengatasi batasan di mana anda tidak bisa memakai <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link> yang sama untuk <link linkend="variable.template.dir"> <parameter>$template_dirs</parameter></link> yang berbeda. Jika anda menyetel <parameter>$compile_id</parameter> untuk setiap <link linkend="variable.template.dir"><parameter>$template_dir</parameter> </link> maka Smarty bisa memberitahu bagian template terkompilasi dengan <parameter>$compile_id</parameter>-nya. </para> <para> Jika anda mempunyai misalnya <link linkend="plugins.prefilters.postfilters">prefilter</link> yang melokalisir template anda (yaitu: menterjemahkan bahasa bagian tersendiri) saat waktu kompilasi, selanjutnya anda dapat memakai bahasa saat ini sebagai <parameter>$compile_id</parameter> dan anda akan mendapatkan satu set template terkompilasi untuk setiap bahasa yang anda gunakan. </para> <para> Apliukasi lain akan menggunakan direktori kompilasi yang sama melalui multipel domain / multipel host virtual. </para> <example> <title>$compile_id dalam lingkungan host virtual</title> <programlisting role="php"> <![CDATA[ <?php $smarty->compile_id = $_SERVER['SERVER_NAME']; $smarty->compile_dir = '/path/to/shared_compile_dir'; ?> ]]> </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/api-variables/variable-compiler-class.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compiler-class.xml +++ smarty/docs/id/programmers/api-variables/variable-compiler-class.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compiler.class"> <title>$compiler_class</title> <para> Menetapkan nama kelas kompilator yang akan digunakan Smarty untuk mengkompilasi template. Standarnya adalah 'Smarty_Compiler'. Hanya untuk pengguna tingkat lanjut. </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/api-variables/variable-config-booleanize.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-booleanize.xml +++ smarty/docs/id/programmers/api-variables/variable-config-booleanize.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.booleanize"> <title>$config_booleanize</title> <para> Jika disetel &true;, nilai <link linkend="config.files">file konfig</link> dari <literal>on/true/yes</literal> dan <literal>off/false/no</literal> diubah ke nilai boolean secara otomatis. Dengan cara ini anda bisa menggunakan nilai dalam template seperti: <literal>{if #foobar#}...{/if}</literal>. Jika foobar <literal>on</literal>, <literal>true</literal> atau <literal>yes</literal>, pernyataan <varname>{if}</varname> akan dijalankan. Standarnya adalah &true;. </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/api-variables/variable-config-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-config-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.dir"> <title>$config_dir</title> <para> Ini adalah direktori yang digunakan untuk menyimpan <link linkend="config.files">file config</link> yang dipakai pada templates. Standarnya adalah <filename class="directory">./configs</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">configs/</filename> di direktori yang sama seperti naskah php sedang dijalankan. </para> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml +++ smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.fix.newlines"> <title>$config_fix_newlines</title> <para> Jika disetel ke &true;, baris baru mac dan dos misalnya <literal>'\r'</literal> dan <literal>'\r\n'</literal> dalam file konfig diubah ke <literal>'\n'</literal> ketika ia diuraikan. Standarnya adalah &true;. </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/api-variables/variable-config-overwrite.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-overwrite.xml +++ smarty/docs/id/programmers/api-variables/variable-config-overwrite.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.overwrite"> <title>$config_overwrite</title> <para> Jika disetel &true;, standarnya maka variabel yang dibaca dari <link linkend="config.files">file config</link> akan saling menimpa. Sebaliknya, variabel akan dimasukan ke dalam array. Ini membantu jika anda ingin menyimpan array data dalam file config, cukup daftarkan setiap elemen berkali-kali. </para> <example> <title>Array config #variables#</title> <para> Contoh ini menggunakan <link linkend="language.function.cycle"><varname>{cycle}</varname></link> untuk menampilkan tabel dengan warna baris berbeda merah/hijau/biru dengan <parameter>$config_overwrite</parameter> = &false;. </para> <para>File config.</para> <programlisting> <![CDATA[ # warna baris rowColors = #FF0000 rowColors = #00FF00 rowColors = #0000FF ]]> </programlisting> <para> Template dengan pengulangan <link linkend="language.function.section"> <varname>{section}</varname></link>. </para> <programlisting> <![CDATA[ <table> {section name=r loop=$rows} <tr bgcolor="{cycle values=#rowColors#}"> <td> ....dll.... </td> </tr> {/section} </table> ]]> </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>, <link linkend="api.config.load"><varname>config_load()</varname></link> dan <link linkend="config.files">seksi file config</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/api-variables/variable-config-read-hidden.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-read-hidden.xml +++ smarty/docs/id/programmers/api-variables/variable-config-read-hidden.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.read.hidden"> <title>$config_read_hidden</title> <para> Jika disetel &true;, seksi tersembunyi misalnya nama seksi yang diawali dengan .period dalam <link linkend="config.files">file config</link> bisa dibaca dari template. Biasanya anda akan membiarkan ini ke &false;, dengan cara itu anda dapat menyimpan data sensitif dalam file config seperti parameter database dan tidak mencemaskan mengenai template mengembilnya. &false; standarnya. </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/api-variables/variable-debug-tpl.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debug-tpl.xml +++ smarty/docs/id/programmers/api-variables/variable-debug-tpl.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debug.tpl"> <title>$debug_tpl</title> <para> Ini adalah nama dari file template yang digunakan untuk konsol debug. Standarnya, ia dinamai <filename>debug.tpl</filename> dan ditempatkan di <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>. </para> <para> Lihat juga <link linkend="variable.debugging"><parameter>$debugging</parameter></link> dan seksi <link linkend="chapter.debugging.console">konsol debug</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/api-variables/variable-debugging-ctrl.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debugging-ctrl.xml +++ smarty/docs/id/programmers/api-variables/variable-debugging-ctrl.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debugging.ctrl"> <title>$debugging_ctrl</title> <para> Ini membolehkan cara alternatif untuk menghidupkan debugging. <literal>NONE</literal> berarti tidak ada metode alternatif yang dibolehkan. <literal>URL</literal> berarti ketika kata kunci <literal>SMARTY_DEBUG</literal> ditemukan dalam <literal>QUERY_STRING</literal>, debugging dihidupkan untuk naskah permintaan itu. Jika <link linkend="variable.debugging"> <parameter>$debugging</parameter></link> adalah &true;, nilai ini diabaikan. </para> <example> <title>$debugging_ctrl pada localhost</title> <programlisting role="php"> <![CDATA[ <?php // menampilkan konsol debug hanya pada localhost misalnya // http://localhost/script.php?foo=bar&SMARTY_DEBUG $smarty->debugging = false; // standar $smarty->debugging_ctrl = ($_SERVER['SERVER_NAME'] == 'localhost') ? 'URL' : 'NONE'; ?> ]]> </programlisting> </example> <para> Lihat juga seksi <link linkend="chapter.debugging.console">konsol debugging</link> dan <link linkend="variable.debugging"><parameter>$debugging</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/api-variables/variable-debugging.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debugging.xml +++ smarty/docs/id/programmers/api-variables/variable-debugging.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debugging"> <title>$debugging</title> <para> Ini menghidupkan <link linkend="chapter.debugging.console">debugging console</link>. Konsol adalah jendela popup javascript yang memberitahu anda terhadap template yang <link linkend="language.function.include">disertakan</link>, variabel yang <link linkend="api.assign">ditempati</link> dari php dan <link linkend="language.config.variables">variabel file config</link> untuk naskah saat ini. Ia tidak menampilkan variabel yang ditempatkan dalam template dengan fungsi <link linkend="language.function.assign"><varname>{assign}</varname> </link>. </para> <para>Konsol bisa juga dihidupkan dari url dengan <link linkend="variable.debugging.ctrl"> <parameter>$debugging_ctrl</parameter></link>. </para> <para> Lihat juga <link linkend="language.function.debug"><varname>{debug}</varname></link>, <link linkend="variable.debug.tpl"><parameter>$debug_tpl</parameter></link>, dan <link linkend="variable.debugging.ctrl"><parameter>$debugging_ctrl</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/api-variables/variable-default-modifiers.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-modifiers.xml +++ smarty/docs/id/programmers/api-variables/variable-default-modifiers.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.modifiers"> <title>$default_modifiers</title> <para> Ini adalah sebuah array pengubah untuk menerapkan secara implisit ke setiap variabel dalam sebuah template. Sebagai contoh, untuk setiap variabel HTML-escape standarnya, menggunakan <literal>array('escape:"htmlall"')</literal>. Untuk mengecualikan variabel dari pengubah standar, kirimkan pengubah khusus <literal>smarty</literal> dengan nilai parameter pengubah <literal>nodefaults</literal> ke dalamnya, misalnya <literal>{$var|smarty:nodefaults}</literal>. </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/api-variables/variable-default-resource-type.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-resource-type.xml +++ smarty/docs/id/programmers/api-variables/variable-default-resource-type.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.resource.type"> <title>$default_resource_type</title> <para> Ini memberitahu smarty tipe sumber daya apa yang digunakan secara implisit. Nilai standarnya adalah <literal>file</literal>, berarti bahwa <literal>$smarty->display('index.tpl')</literal> dan <literal>$smarty->display('file:index.tpl')</literal> adalah sama dalam arti. Lihat bab <link linkend="template.resources">sumber daya</link> untuk lebih jelasnya. </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/api-variables/variable-default-template-handler-func.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-template-handler-func.xml +++ smarty/docs/id/programmers/api-variables/variable-default-template-handler-func.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.template.handler.func"> <title>$default_template_handler_func</title> <para> Fungsi ini dipanggil saat template tidak bisa didapatkan dari sumber dayanya. </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/api-variables/variable-error-reporting.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-error-reporting.xml +++ smarty/docs/id/programmers/api-variables/variable-error-reporting.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.error.reporting"> <title>$error_reporting</title> <para> Ketika nilai ini disetel ke nilai-non-null, nilainya dipakai sebagai tingkat <ulink url="&url.php-manual;error_reporting"><varname>error_reporting</varname></ulink> di dalam <link linkend="api.display"><varname>display()</varname></link> dan <link linkend="api.fetch"><varname>fetch()</varname></link>. Ketika <link linkend="chapter.debugging.console"><parameter>debugging</parameter></link> menghidupkan nilai ini, ia diabaikan dan tingkat kesalahan dibiarkan apa adanya. </para> <para> Lihat juga <link linkend="api.trigger.error"><varname>trigger_error()</varname></link>, <link linkend="chapter.debugging.console">debugging</link> dan <link linkend="troubleshooting">pemecahan masalah</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/api-variables/variable-force-compile.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-force-compile.xml +++ smarty/docs/id/programmers/api-variables/variable-force-compile.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.force.compile"> <title>$force_compile</title> <para> Ini memaksa Smarty untuk mengkompilasi ulang template pada setiap permintaan. Setelan ini mengabaikan <link linkend="variable.compile.check"> <parameter>$compile_check</parameter></link>. Standarnya adalah &false;. Ini membantu saat pengembangan dan <link linkend="chapter.debugging.console">debugging</link>. Ini tidak boleh dipakai dalam lingkungan produksi. Jika <link linkend="variable.caching"><parameter>$caching</parameter></link> dihidupkan, file cache selalu akan dibuat ulang. </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/api-variables/variable-left-delimiter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-left-delimiter.xml +++ smarty/docs/id/programmers/api-variables/variable-left-delimiter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.left.delimiter"> <title>$left_delimiter</title> <para> Ini adalah pemisah kiri yang dipakai oleh bahasa template. Standarnya ialah <literal>{</literal>. </para> <para> Lihat juga <link linkend="variable.right.delimiter"><parameter>$right_delimiter</parameter></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/programmers/api-variables/variable-php-handling.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-php-handling.xml +++ smarty/docs/id/programmers/api-variables/variable-php-handling.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.php.handling"> <title>$php_handling</title> <para> Ini memberitahu Smarty bagaimana untuk menangani kode PHP yang disertakan dalam template. Ada empat kemungkinan setelan, standarnya adalah <constant>SMARTY_PHP_PASSTHRU</constant>. Catatan bahwa ini tidak mempengaruhi kode php di dalam tag <link linkend="language.function.php"> <varname>{php}{/php}</varname></link> pada template. </para> <itemizedlist> <listitem><para> <constant>SMARTY_PHP_PASSTHRU</constant> - Smarty menampilkan tag apa adanya. </para></listitem> <listitem><para> <constant>SMARTY_PHP_QUOTE</constant> - Smarty memberi tanda kutip tag sebagai entitas html. </para></listitem> <listitem><para> <constant>SMARTY_PHP_REMOVE</constant> - Smarty menghapus tag dari template.</para></listitem> <listitem><para> <constant>SMARTY_PHP_ALLOW</constant> - Smarty akan menjalankan tag sebagai kode PHP.</para></listitem> </itemizedlist> <note> <para> Menyertakan kode PHP ke dalam template sangat tidak disarankan. Lebih baik gunakan <link linkend="plugins.functions">fungsi kustom</link> atau <link linkend="plugins.modifiers">pengubah</link>. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.plugins.dir"> <title>$plugins_dir</title> <para> Ini adalah directori ke mana Smarty akan mencari plugins yang dibutuhkannya. Standarnya ialah <filename class="directory">plugins/</filename> di bawah <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>. Jika anda menyertakan path relatif, pertama Smarty akan mencari di bawah <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>, kemudian relatif ke direktori kerja saat ini, lalu relatif terhadap include_path PHP. Jika <parameter>$plugins_dir</parameter> adalah sebuah array direktori, Smarty akan mencari plugin anda di setiap direktori plugin <emphasis role="bold">dalam urutan sesuai yang diberikan</emphasis>. </para> <note> <title>Catatan Teknis</title> <para> Untuk performansi terbaik, jangan siapkan <parameter>$plugins_dir</parameter> anda harus memakai path include PHP. Gunakan nama path absolut, atau path relatif ke <constant>SMARTY_DIR</constant> atau direktori kerja saat ini. </para> </note> <example> <title>Menambahkan direktori plugin lokal</title> <programlisting role="php"> <![CDATA[ <?php $smarty->plugins_dir[] = 'includes/my_smarty_plugins'; ?> ]]> </programlisting> </example> <example> <title>Multiple $plugins_dir</title> <programlisting role="php"> <![CDATA[ <?php $smarty->plugins_dir = array( 'plugins', // standar di bawah SMARTY_DIR '/path/to/shared/plugins', '../../includes/my/plugins' ); ?> ]]> </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/api-variables/variable-request-use-auto-globals.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-request-use-auto-globals.xml +++ smarty/docs/id/programmers/api-variables/variable-request-use-auto-globals.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.request.use.auto.globals"> <title>$request_use_auto_globals</title> <para> Menetapkan apakah Smarty harus menggunakan <literal>$HTTP_*_VARS[]</literal> PHP saat &false; atau <literal>$_*[]</literal> saat &true; yang merupakan nilai standarnya. Ini mempengaruhi templates yang menggunakan <link linkend="language.variables.smarty"> <literal>{$smarty.request.*}, {$smarty.get.*}</literal></link> dll. </para> <note> <title>Perhatian</title> <para> Jika anda menyetel <literal>$request_use_auto_globals ke true</literal>, <link linkend="variable.request.vars.order"> <parameter>$request_vars_order</parameter></link> tidak berpengaruh tapi nilai konfigurasi PHP <literal>gpc_order</literal> yang digunakan. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml +++ smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.request.vars.order"> <title>$request_vars_order</title> <para> Urutan di mana variabel yang diminta sudah terdaftar, mirip dengan variables_order dalam php.ini </para> <para> Lihat juga <link linkend="language.variables.smarty"><parameter>$smarty.request</parameter></link> dan <link linkend="variable.request.use.auto.globals"><parameter>$request_use_auto_globals</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/api-variables/variable-right-delimiter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-right-delimiter.xml +++ smarty/docs/id/programmers/api-variables/variable-right-delimiter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.right.delimiter"> <title>$right_delimiter</title> <para> Ini adalah pemisah kanan yang digunakan oleh bahasa template. Standarnya adalah <literal>}</literal>. </para> <para> Lihat juga <link linkend="variable.left.delimiter"><parameter>$left_delimiter</parameter></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/programmers/api-variables/variable-secure-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-secure-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-secure-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.secure.dir"> <title>$secure_dir</title> <para> Ini adalah array dari semua file lokal dan direktori yang dianggap aman. <link linkend="language.function.include"><varname>{include}</varname></link> dan <link linkend="language.function.fetch"><varname>{fetch}</varname></link> gunakan ini ketika <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. </para> <example> <title>$secure_dir example</title> <programlisting role="php"> <![CDATA[ <?php $secure_dirs[] = '/path/to/site/root/templates/'; $secure_dirs[] = '/path/to/includes/'; $smarty->secure_dir = $secure_dirs; ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> dan <link linkend="variable.trusted.dir"><parameter>$trusted_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/api-variables/variable-security-settings.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-security-settings.xml +++ smarty/docs/id/programmers/api-variables/variable-security-settings.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.security.settings"> <title>$security_settings</title> <para> Ini dipakai untuk menimpa atau menetapkan setelan keamanan saat <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. Ini adalah kemungkinan setelan: </para> <itemizedlist> <listitem> <para> <constant>PHP_HANDLING</constant> - boolean. Jika disetel &true;, setelan <link linkend="variable.php.handling"><parameter>$php_handling</parameter></link> tidak diperiksa untuk keamanan. </para> </listitem> <listitem> <para> <constant>IF_FUNCS</constant> - array. Nama-nama fungsi PHP yang diijinkan dalam pernyataan <link linkend="language.function.if"><varname>{if}</varname></link>. </para> </listitem> <listitem> <para> <constant>INCLUDE_ANY</constant> - boolean. Jika disetel &true;, setiap template dapat <link linkend="language.function.include">disertakan</link> dari sistem file, mengabaikan daftar <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link>. </para> </listitem> <listitem> <para> <constant>PHP_TAGS</constant> - boolean. Jika disetel &true;, tag <link linkend="language.function.php"><varname>{php}{/php}</varname></link> diijinkan dalam template. </para> </listitem> <listitem> <para> <constant>MODIFIER_FUNCS</constant> - array. Nama-nama fungsi PHP yang diijinkan yang dapat dipakai sebagai pengubah variabel. </para> </listitem> <listitem> <para> <constant>ALLOW_CONSTANTS</constant> - boolean. Jika disetel &true;, konstan melalui <link linkend="language.variables.smarty.const"><parameter>{$smarty.const.FOO}</parameter></link> dibolehkan dalam template. </para> </listitem> </itemizedlist> </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-variables/variable-security.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-security.xml +++ smarty/docs/id/programmers/api-variables/variable-security.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.security"> <title>$security</title> <para> <parameter>$security</parameter> bisa &true; atau &false;, standarnya &false;. Keamana baik untuk situasi saat anda mempunyai rekan yang tidak dipercaya mengedit template misalnya melalui ftp, dan anda ingin mengurangi resiko yang berkaitan dengan keamanan sistem dalam bahasa template. Menghidupkan keamanan, memaksa aturan berikut terhadap bahasa template, kecuali secara khusus ditimpa dengan <link linkend="variable.security.settings"> <parameter>$security_settings</parameter></link>: </para> <itemizedlist> <listitem> <para>Jika <link linkend="variable.php.handling"><parameter>$php_handling</parameter></link> disetel ke <constant>SMARTY_PHP_ALLOW</constant>, ini secara implisit mengubah <constant>SMARTY_PHP_PASSTHRU</constant> </para></listitem> <listitem> <para> Fungsi PHP tidak dibolehkan dalam pernyataan <link linkend="language.function.if"><varname>{if}</varname></link>, kecuali yang ditetapkan dalam <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> </para></listitem> <listitem><para> Template hanya bisa disertakan dari direktori yang didaftarkan dalam array <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link> </para></listitem> <listitem><para> File lokal hanya dapat diambil dari direktori yang didaftarkan dalam <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link> array menggunakan <link linkend="language.function.fetch"><varname>{fetch}</varname></link> </para></listitem> <listitem><para> Tag <link linkend="language.function.php"><varname>{php}{/php}</varname></link> tidak dibolehkan </para></listitem> <listitem><para> Fungsi PHP tidak dibolehkan sebagai pengubah, kecuali itu ditetapkan dalam <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> </para></listitem> </itemizedlist> </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-variables/variable-template-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-template-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-template-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.template.dir"> <title>$template_dir</title> <para> Ini adalah nama standar direktori template. Jika anda tidak menyertakan tipe sumber daya ketika menyertakan file, akan ditemukan di sini. Standarnya ini adalah <filename class="directory">./templates</filename>, yang berarti bahwa Smarty akan mencari direktori <filename class="directory">templates/</filename> dalam direktori yang sama dengan naskah php yang dieksekusi. </para> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.trusted.dir"> <title>$trusted_dir</title> <para> <parameter>$trusted_dir</parameter> hanya dipakai ketika <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. Ini adalah array dari seluruh direktori yang dianggap dipercaya. Direktori yang dipercaya adalah di mana anda memelihara naskah php yang dijalankan secara langsung dari template with <link linkend="language.function.include.php"><varname>{include_php}</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/api-variables/variable-use-sub-dirs.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-use-sub-dirs.xml +++ smarty/docs/id/programmers/api-variables/variable-use-sub-dirs.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.use.sub.dirs"> <title>$use_sub_dirs</title> <para> Smarty akan membuat subdirektori di bawah <link linkend="variable.compile.dir">template terkompilasi</link> dan direktori <link linkend="variable.cache.dir">cache</link> jika <parameter>$use_sub_dirs</parameter> disetel ke &true;, standarnya &false;. Dalam sebuah lingkungan di mana ada potensi sepulu dari ribuan file dibuat, ini dapat membantu kecepatan sistem file. Dengan kata lain, beberapa lingkungan tidak membolehkan proses PHP membuat direktori, maka ini harus dimatikan yang sudah jadi standarnya. </para> <para> Sub direktori lebih efisien, maka gunakan jika anda bisa. Secara teori anda memperoleh performansi lebih baik pada sistem file dengan 10 direktori masing-masing memiliki 100 file, daripada dengan 1 direktori yang memiliki 1000 file. Ini tentunya kasus dengan Solaris 7 (UFS)... dengan sistem file lebih baru seperti ext3 dan terutama reiserfs, perbedaannya hampir tidak ada. </para> <note> <title>Catatan Teknis</title> <itemizedlist> <listitem> <para><literal>$use_sub_dirs=true</literal> tidak bekerja dengan <ulink url="&url.php-manual;features.safe-mode">safe_mode=On</ulink>, itulah mengapa dapat diputar dan mengapa standarnya dimatikan. </para> </listitem> <listitem> <para><literal>$use_sub_dirs=true</literal> pada Windows bisa menimbulkan masalah.</para> </listitem> <listitem> <para>Safe_mode akan menjadi usang dalam PHP6.</para> </listitem> </itemizedlist> </note> <para> Lihat juga <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>, <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>, dan <link linkend="variable.compile.dir"><parameter>$compile_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/caching/caching-cacheable.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-cacheable.xml +++ smarty/docs/id/programmers/caching/caching-cacheable.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.cacheable"> <title>Mengontrol Plugins ynd Bisa Di-cache' Output</title> <para> Sejak plugin Smarty-2.6.0, plugins yang bisa di-cache dapat dideklarasikan saat meregistrasinya. Parameter ketiga pada <link linkend="api.register.block"><varname>register_block()</varname></link>, <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link> dan <link linkend="api.register.function"><varname>register_function()</varname></link> disebut <parameter>$cacheable</parameter> dan standarnya &true; yang juga merupakan tabiat plugins dalam Smarty versi sebelum 2.6.0 </para> <para> Ketika meregistrasi sebuah plugin dengan <literal>$cacheable=false</literal>, plugin dipanggil setiap kali halaman ditampilkan, meskipun halaman berasal dari cache. Fungsi plugin berlaku sedikit mirip fungsi <link linkend="plugins.inserts"><varname>{insert}</varname></link>. </para> <para> Sebaliknya dari <link linkend="plugins.inserts"><varname>{insert}</varname> </link> atribut plugins standarnya tidak di-cache. Bisa dideklarasikan untuk di-cache dengan parameter keempat <parameter>$cache_attrs</parameter>. <parameter>$cache_attrs</parameter> adalah array nama-atribut yang harus di-cache, agar fungsi-plugin memperoleh nilai seperti pertama kali halaman dituliskan ke cache, setiap kali ia diambil dari cache. </para> <example> <title>Menghindari output plugin di-cache</title> <programlisting role="php"> <![CDATA[ <?php $smarty->caching = true; function remaining_seconds($params, &$smarty) { $remain = $params['endtime'] - time(); if($remain >= 0){ return $remain . ' second(s)'; }else{ return 'done'; } } $smarty->register_function('remaining', 'remaining_seconds', false, array('endtime')); if (!$smarty->is_cached('index.tpl')) { // ambil $obj dari db dan tempatkan... $smarty->assign_by_ref('obj', $obj); } $smarty->display('index.tpl'); ?> ]]> </programlisting> <para> di mana <filename>index.tpl</filename> adalah: </para> <programlisting> <![CDATA[ Time Remaining: {remaining endtime=$obj->endtime} ]]> </programlisting> <para> Jumlah detik sampai endtime <literal>$obj</literal> dicapai, perubahan pada setiap tampilan halaman, meskipun bila halaman di-cache. Karena atribut endtime di-cache. obyek harus ditarik dari database ketika halaman dituliskan ke cache tapi tidak pada permintaan halaman berikutnya. </para> </example> <example> <title>Menghindari seluruh bagian template di-cache</title> <programlisting role="php"> <![CDATA[ index.php: <?php $smarty->caching = 1; function smarty_block_dynamic($param, $content, &$smarty) { return $content; } $smarty->register_block('dynamic', 'smarty_block_dynamic', false); $smarty->display('index.tpl'); ?> ]]> </programlisting> <para> where <filename>index.tpl</filename> is: </para> <programlisting> <![CDATA[ Page created: {'0'|date_format:'%D %H:%M:%S'} {dynamic} Now is: {'0'|date_format:'%D %H:%M:%S'} .... do other stuff ... {/dynamic} ]]> </programlisting> </example> <para> Ketika mengambil ulang halaman, anda akan mencatat bahwa kedua tanggal berbeda. Satu <quote>dynamis</quote> dan satu <quote>statis</quote>. Anda dapat melakukan apapun antara <literal>{dynamic}...{/dynamic}</literal> dan pastikan ia tidak akan di-cache seperti bagian halaman lainnya. </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/caching/caching-groups.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-groups.xml +++ smarty/docs/id/programmers/caching/caching-groups.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.groups"> <title>Grup Cache</title> <para> Anda dapat melakukan pengelompokan elaborasi dengan menyiapkan grup <parameter>$cache_id</parameter>. Ini dilakukan dengan memisahkan setiap sub-grup dengan bar vertikal <literal>|</literal> dalam nilai <parameter>$cache_id</parameter>. Anda bisas memiliki sebanyak-banyaknya sub-grup yang anda inginkan. </para> <itemizedlist> <listitem><para> Anda bisa membayangkan grup cache seperti hirarki direktori. Sebagai contoh, grup cache <literal>'a|b|c'</literal> bisa dibayangkan sebagai struktur direktori <literal>'/a/b/c/'</literal>. </para></listitem> <listitem><para> <literal>clear_cache(null,'a|b|c')</literal> akan seperti menghapus file <literal>'/a/b/c/*'</literal>. <literal>clear_cache(null,'a|b')</literal> akan seperti menghapus file <literal>'/a/b/*'</literal>. </para></listitem> <listitem><para> Jika anda menetapkan <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link> seperti <literal>clear_cache(null,'a|b','foo')</literal> ini diperlakukan sebagai grup cache yang ditambahkan <literal>'/a/b/c/foo/'</literal>. </para></listitem> <listitem><para> Jika anda menetapkan nama template seperti <literal>clear_cache('foo.tpl','a|b|c')</literal> maka Smarty akan mencoba untuk menghapus <literal>'/a/b/c/foo.tpl'</literal>. </para></listitem> <listitem><para> Anda TIDAK BISA menghapus nama template yang ditetapkan di bawah multipel grup cache seperti <literal>'/a/b/*/foo.tpl'</literal>, pengelompokan cache HANYA bekerja dari kiri-ke-kanan. Anda perlu mengelompokan template anda di bawah satu hirarki grup cache agar bisa membersihkannya sebagai sebuah grup. </para></listitem> </itemizedlist> <para> Pengelompokan cache seharusnya tidak dibingungkan dengan hirarki direktori template anda, pengelompokan cache tidak mengetahui bagaiman template anda dibentuk. Maka sebagai contoh, jika anda mempunyai struktur template seperti <filename>themes/blue/index.tpl</filename> dan anda ingin bisa membersihkan seluruh file cache untuk tema <quote>blue</quote>, anda perlu membuat struktur grup cache yang meniru struktur file template, seperti <literal>display('themes/blue/index.tpl','themes|blue')</literal>, lalu membersihkannya dengan <literal>clear_cache(null,'themes|blue')</literal>. </para> <example> <title>$cache_id groups</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = true; // membersihkan semua cache dengan 'sports|basketball' sebagai dua grup cache_id pertama $smarty->clear_cache(null,'sports|basketball'); // bersihkan semua cache dengan "sports" sebagai grup cache_id pertama. Ini akan // menyertakan "sports|basketball", atau "sports|(anything)|(anything)|(anything)|..." $smarty->clear_cache(null,'sports'); // bersihkan file cache foo.tpl dengan "sports|basketball" sebagai cache_id $smarty->clear_cache('foo.tpl','sports|basketball'); $smarty->display('index.tpl','sports|basketball'); ?> ]]> </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/caching/caching-multiple-caches.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-multiple-caches.xml +++ smarty/docs/id/programmers/caching/caching-multiple-caches.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.multiple.caches"> <title>Multipel Caches Per Halaman</title> <para> Anda dapat memiliki multipel file cache untuk satu panggilan ke <link linkend="api.display"><varname>display()</varname></link> atau <link linkend="api.fetch"><varname>fetch()</varname></link>. Katakanlah sebuah panggilan ke <literal>display('index.tpl')</literal> memiliki beberapa konten output berbeda tergantung dari beberapa kondisi, dan anda ingin memisahkan cache masing-masing. Anda bisa melakukan ini dengan mengirimkan <parameter>$cache_id</parameter> sebagai parameter kedua ke fungsi panggil. </para> <example> <title>Mengirimkan $cache_id untuk display()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $my_cache_id = $_GET['article_id']; $smarty->display('index.tpl', $my_cache_id); ?> ]]> </programlisting> </example> <para> Di atas, kita mengirimkan variabel <literal>$my_cache_id</literal> ke <link linkend="api.display"><varname>display()</varname></link> sebagai <parameter>$cache_id</parameter>. Untuk setiap nilai unik dari <literal>$my_cache_id</literal>, cache terpisah akan dibuat untuk <filename>index.tpl</filename>. Dalam contoh ini, <literal>article_id</literal> dikirimpan dalam URL dan digunakan sebagai <parameter>$cache_id</parameter>. </para> <note> <title>Catatan Teknis</title> <para> Harap berhati-hati saat mengirimkan nilai dari klien (web browser) ke dalam Smarty atau setiap aplikasi PHP. Meskipun contoh di atas menggunakan article_id dari URL terlihat mudah, ia dapat menimbulkan konsekuensi yang buruk. <parameter>$cache_id</parameter> dipakai untuk membuat direktori pada sistem file, maka jika pengguna memutuskan untuk mengirimkan nilai yang sangat besar untuk article_id, atau menulis naskah yang mengirimkan article_id acak dengan kecepatan tinggi, ini mungkin dapat menimbulkan masalah di tingkat server. Pastikan mengamankan setiap data yang dikirimkan sebelum menggunakannya. Dalam contoh ini, mungkin anda mengetahui article_id memiliki panjang sepuluh karakter dan hanya terdiri dari alfa-numerik, dan harus article_id yang benar dalam database. Periksa hal ini! </para> </note> <para> Pastikan untuk mengirimkan <parameter>$cache_id</parameter> yang sama sebagai parameter kedua ke <link linkend="api.is.cached"><varname>is_cached()</varname></link> dan <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Mengirimkan cache_id ke is_cached()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $my_cache_id = $_GET['article_id']; if(!$smarty->is_cached('index.tpl',$my_cache_id)) { // Cache tidak tersedia, lakukan penempatan variabel di sini. $contents = get_database_contents(); $smarty->assign($contents); } $smarty->display('index.tpl',$my_cache_id); ?> ]]> </programlisting> </example> <para> Anda bisa membersihkan semua cache untul <parameter>$cache_id</parameter> tertentu dengan mengirimkan &null; sebagai parameter kedua ke <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Membersihkan semua cache untuk $cache_id tertentu</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; // bersihkan semua cache dengan "sports" sebagai $cache_id $smarty->clear_cache(null,'sports'); $smarty->display('index.tpl','sports'); ?> ]]> </programlisting> </example> <para> Dengan cara ini, anda bisa <quote>mengelompokan</quote> cache anda bersama dengan memberikannya <parameter>$cache_id</parameter> yang sama. </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/caching/caching-setting-up.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-setting-up.xml +++ smarty/docs/id/programmers/caching/caching-setting-up.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.setting.up"> <title>Menyiapkan Cache</title> <para> Hal pertama yang dilakukan adalah menghidupkan cache dengan menyetel <link linkend="variable.caching"> <parameter>$caching</parameter></link><literal> = 1 (atau 2)</literal>. </para> <example> <title>Menghidupkan cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Dengan menghidupkan cache, fungsi panggil ke <literal>display('index.tpl')</literal> akan membuat template seperti biasa, tapi juga menyimpan duplikat dari outputnya ke sebuah file (duplikat cache) dalam <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Panggilan berikutnya ke <literal>display('index.tpl')</literal>, duplikat cache akan dipakai daripada membuat template kembali. </para> <note> <title>Catatan Teknis</title> <para> File dalam <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link> diberi nama mirip dengan nama template. Meskipun berakhir dalam ekstensi <filename>.php</filename>, ini tidak dimaksudkan dijalankan secara langsung. Jangan edit file ini! </para> </note> <para> Setiap halaman yang di-cache memiliki batasan usia yang ditentukan oleh <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>. Nilai standarnya adalah 3600 detik atau satu jam. Setelah itu waktu berakhir, cache dibuat ulang. Dimungkinkan untuk memberikan cache individual memiliki waktu berakhirnya dengan menyetel <link linkend="variable.caching"><parameter>$caching</parameter></link><literal>=2</literal>. Lihat <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> untuk lebih jelasnya. </para> <example> <title>Menyetel $cache_lifetime per cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 2; // usia per cache // set cache_lifetime untuk index.tpl ke 5 menit $smarty->cache_lifetime = 300; $smarty->display('index.tpl'); // set cache_lifetime untuk home.tpl ke 1 jam $smarty->cache_lifetime = 3600; $smarty->display('home.tpl'); // CATATAN: setelan $cache_lifetime berikut tidak akan bekerja saat $caching = 2. // Usia cache untuk home.tpl sudah disetel ke 1 jam, dan tidak akan memperhatikan // nilai lagi $cache_lifetime. // Cache home.tpl masih akan berakhir setelah 1 jam. $smarty->cache_lifetime = 30; // 30 seconds $smarty->display('home.tpl'); ?> ]]> </programlisting> </example> <para> Jika <link linkend="variable.compile.check"> <parameter>$compile_check</parameter></link> dihidupkan, setiap file template dan file config yang terkait dengan file cache diperiksa modifikasinya. Jika setiap file sudah dimodifikasi sejak cache dibuat, cache segera dibuat ulang. Ini adalah beban kecil untuk performansi optimal, set <link linkend="variable.compile.check"><parameter>$compile_check</parameter> </link> ke &false;. </para> <example> <title>Menghidupkan $compile_check</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->compile_check = true; $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, file cache akan selalu dibuat. Ini efektif mematikan cache. <link linkend="variable.force.compile"><parameter>$force_compile</parameter> </link> biasanya hanya untuk keperluan <link linkend="chapter.debugging.console">debugging</link>, cara yang lebih efisien mematikan cache adalah menyetel <link linkend="variable.caching"><parameter>$caching</parameter> </link><literal> = 0</literal>. </para> <para> Fungsi <link linkend="api.is.cached"><varname>is_cached()</varname></link> dapat digunakan untuk menguji jika template memiliki cache yang benar atau tidak. Jika anda memiliki template yang di-cache yang memerlukan hal seperti pengambilan database, anda bisa menggunakan ini untuk melewati proses itu. </para> <example> <title>Menggunakan is_cached()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; if(!$smarty->is_cached('index.tpl')) { // Cache tidak tersedia, lakukan penempatan variabel di sini. $contents = get_database_contents(); $smarty->assign($contents); } $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Anda dapat memelihara bagian halaman dinamis dengan fungsi template <link linkend="language.function.insert"><varname>{insert}</varname></link>. Katakanlah seluruh halaman dapat di-cache kecuali untuk iklan yang ditampilkan di bawah halaman. Dengan menggunakan fungsi <link linkend="language.function.insert"><varname>{insert}</varname></link> untuk iklan, anda bisa memelihara elemen ini dinamis dalam konten yang di-cache. Lihat dokumentasi pada <link linkend="language.function.insert"><varname>{insert}</varname></link> untuk lebih jelas dan contohnya. </para> <para> Anda bisa membersihkan semua file cache dengan fungsi<link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>, atau file cache individual <link linkend="caching.groups">dan grup</link> dengan fungsi <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Membersihkan cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; // bersihkan hanya cache untuk index.tpl $smarty->clear_cache('index.tpl'); // bersihkan semua file cache $smarty->clear_all_cache(); $smarty->display('index.tpl'); ?> ]]> </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/plugins/plugins-block-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-block-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-block-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.block.functions"><title>Fungsi Blok</title> <funcsynopsis> <funcprototype> <funcdef>void <function>smarty_block_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>mixed <parameter>$content</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> <paramdef>boolean <parameter>&$repeat</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Fungsi blok adalah fungsi dari bentuk: <literal>{func} .. {/func}</literal>. Dengan kata lain, ia ditutupi blok template dan beroperasi pada isi dari blok ini. Fungsi blok mendahului <link linkend="language.custom.functions">fungsi kustom</link> pada nama yang sama, yaitu anda tidak bisa mempunyai kedua fungsi kustom <literal>{func}</literal> dan fungsi blok <literal>{func}..{/func}</literal>. </para> <itemizedlist> <listitem><para> Standarnya implementasi fungsi anda dipanggil dua kali oleh Smarty: sekali untuk membuka tag, dan sekali untuk meneutup tag. (Lihat <literal>$repeat</literal> di bawah untuk bagaimana mengubah ini.) </para></listitem> <listitem><para> Hanya tag terbuka terhadap fungsi blok boleh memiliki <link linkend="language.syntax.attributes">atribut</link>. Semua atribut dikirimkan ke fungsi template dari template diisikan dalam variabel <parameter>$params</parameter> sebagai array asosiatif. Atribut tag terbuka juga dapat diakses oleh fungsi anda saat memproses tag penutup. </para></listitem> <listitem><para> Nilai variabel <parameter>$content</parameter> tergantung pada apakah fungsi anda dipanggil untuk membuka atau menutup tag. Dalam hal membuka tag, ia akan menjadi &null;, dan dalam hal menutup tag ia akan menjadi isi dari blok template. Catatan bahwa blok template sudah diproses oleh Smarty, semua yang akan anda terima adalah output template, bukan sumber template. </para></listitem> <listitem><para> Parameter <parameter>$repeat</parameter> dikirimkan dengan referensi ke implementasi fungsi dan menyediakan sebuah kemungkinan untuk mengontrol berapa kali blok ditampilkan. Standarnya <parameter>$repeat</parameter> adalah &true; pada panggilan pertama fungsi-blok(tag pembuka) dan and &false; pada panggilan berikutnya ke fungsi blok (tag penutup blok). Setiap kali implementasi fungsi kembali dengan <parameter>$repeat</parameter> menjadi &true;, isi antara <literal>{func}...{/func}</literal> dievaluasi dan implementasi fungsi dipanggil lagi dengan isi blok baru dalam parameter <parameter>$content</parameter>. </para></listitem> </itemizedlist> <para> Jika anda mempunyai fungsi blok berulang, dimungkinkan untuk mencari fungsi blok leluhur apa dengan mengakses variabel <literal>$smarty->_tag_stack</literal>. Cukup lakukan <ulink url="&url.php-manual;var_dump"><varname>var_dump()</varname></ulink> padanya dan struktur menjadi terlihat. </para> <example> <title>fungsi blok</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: block.translate.php * Type: block * Name: translate * Purpose: translate a block of text * ------------------------------------------------------------- */ function smarty_block_translate($params, $content, &$smarty, &$repeat) { // hanya output pada tag penutup if(!$repeat){ if (isset($content)) { $lang = $params['lang']; // lakukan beberapa terjemahan puntar di sini dengan $content return $translation; } } } ?> ]]> </programlisting> </example> <para> Lihat juga: <link linkend="api.register.block"><varname>register_block()</varname></link>, <link linkend="api.unregister.block"><varname>unregister_block()</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/plugins/plugins-compiler-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-compiler-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-compiler-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.compiler.functions"><title>Fungsi Kompilator</title> <para> Fungsi kompilator dipanggil hanya selama kompilasi template. Ini berguna untuk menginjeksi kode PHP atau isi statis sensitif-waktu ke dalam template. Jika ada kedua fungsi kompilator dan <link linkend="language.custom.functions">fungsi kustom</link> terdaftar dengan nama sama, fungsi kompilator yang lebih tinggi. </para> <funcsynopsis> <funcprototype> <funcdef>mixed <function>smarty_compiler_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$tag_arg</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Fungsi kompilator diberi dua parameter: argumen string tag - pada dasarnya, apapun dari nama fungsi sampai akhir pemisah, dan obyek Smarty. Ia seharusnya mengembalikan kode PHP yang disisipkan ke dalam template terkompilasi. </para> <example> <title>Fungsi kompilator sederhana</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: compiler.tplheader.php * Tipe: kompilator * Nama: tplheader * Kegunaan: Output header berisi nama file sumber dan waktu * dikompilasinya. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($tag_arg, &$smarty) { return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';"; } ?> ]]> </programlisting> <para> Fungsi ini dipanggil dari template sebagai: </para> <programlisting> <![CDATA[ {* fungsi ini dijalankan hanya saat waktu kompilasi *} {tplheader} ]]> </programlisting> <para> Kode PHP yang dihasilkan dalam template terkompilasi akan menjadi seperti ini: </para> <programlisting role="php"> <![CDATA[ <?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link>, <link linkend="api.unregister.compiler.function"> <varname>unregister_compiler_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/programmers/plugins/plugins-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.functions"><title>Fungsi Template</title> <funcsynopsis> <funcprototype> <funcdef>void <function>smarty_function_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Semua <link linkend="language.syntax.attributes">atribut</link> yang dikirimkan ke fungsi template dari template yang berisi <parameter>$params</parameter> sebagai array asosiatif. </para> <para> Output (nilai hasil) atas fungsi akan diganti di tempat tag fungsi dalam template, misalnya fungsi <link linkend="language.f unction.fetch"><varname>{fetch}</varname></link>. Alternatif lain, fungsi bisa hanya melakukan beberapa tugas tanpa output apapun, misalnya fugnsi <link linkend="language.function.assign"> <varname>{assign}</varname></link>. </para> <para> Jika fungsi perlu menempatkan beberapa variabel ke template atau gunakan beberapa fungsionalitas lain yang disediakan-Smarty, ini dapat menggunakan obyek <parameter>$smarty</parameter> yang disertakan untuk melakukannya misaslnya <literal>$smarty->foo()</literal>. </para> <para> <example> <title>plugin fungsi dengan output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.eightball.php * Tipe: fungsi * Nama: eightball * Kegunaan: menampilkan jawaban acak magis * ------------------------------------------------------------- */ function smarty_function_eightball($params, &$smarty) { $answers = array('Yes', 'No', 'No way', 'Outlook not so good', 'Ask again soon', 'Maybe in your reality'); $result = array_rand($answers); return $answers[$result]; } ?> ]]> </programlisting> </example> </para> <para> yang dapat digunakan dalam template sebagai: </para> <programlisting> Question: Will we ever have time travel? Answer: {eightball}. </programlisting> <para> <example> <title>plugin fungsi tanpa output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.assign.php * Tipe: fungsi * Nama: assign * Kegunaan: menempatkan nilai ke varabel template * ------------------------------------------------------------- */ function smarty_function_assign($params, &$smarty) { if (empty($params['var'])) { $smarty->trigger_error("assign: missing 'var' parameter"); return; } if (!in_array('value', array_keys($params))) { $smarty->trigger_error("assign: missing 'value' parameter"); return; } $smarty->assign($params['var'], $params['value']); } ?> ]]> </programlisting> </example> </para> <para> Lihat juga: <link linkend="api.register.function"><varname>register_function()</varname></link>, <link linkend="api.unregister.function"><varname>unregister_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/programmers/plugins/plugins-howto.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-howto.xml +++ smarty/docs/id/programmers/plugins/plugins-howto.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.howto"> <title>Bagaimana Plugin Bekerja</title> <para> Plugin selalu diambil saat dibutuhkan. Hanya pengubah tertentu, fungsi, sumber daya, dll yang diminta dalam naskah template akan diambil. Selanjutnya, setiap plugin diambil hanya sekali, meskipun anda mempunyai beberapa turunan Smarty yang berjalan dalam permintaan yang sama. </para> <para> Pre/postfilters dan filter output sedikit dari hal khusus. Karena tidak disetbutkan dalam template, ini harus didaftarkan atau diambil secara eksplisit melalui fungis API sebelum template diproses. Urutan di mana multipel filter dengan tipe sama dijalankan tergantung pada urutan di mana ia didaftarkan atau diambil. </para> <para> <link linkend="variable.plugins.dir">Direktori plugin</link> dapat berupa string yang berisi path atau array yang berisi multipel path. Untuk menginstalasi sebuah plugin, cukup tempatkan dalam salah satu direktori dan Smarty akan menggunakannya secara otomatis. </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/plugins/plugins-inserts.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-inserts.xml +++ smarty/docs/id/programmers/plugins/plugins-inserts.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.inserts"><title>Inserts</title> <para> Plugin insert dipakai untuk mengimplementasikan fungsi yang diminta oleh tag <link linkend="language.function.insert"><varname>{insert}</varname></link> dalam template. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_insert_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama ke fungsi adalah array asosiatif dari atribut yang dikirimkan ke insert. </para> <para> Fungsi insert seharusnya mengembalikan hasil yang akan di tempatkan pada tag <varname>{insert}</varname> dalam template. </para> <example> <title>plugin insert</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: insert.time.php * Tipe: time * Nama: time * Kegunaan: Menyisipkan tanggak/jam saat ini berdasarkan format * ------------------------------------------------------------- */ function smarty_insert_time($params, &$smarty) { if (empty($params['format'])) { $smarty->trigger_error("insert time: missing 'format' parameter"); return; } return strftime($params['format']); } ?> ]]> </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/plugins/plugins-modifiers.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-modifiers.xml +++ smarty/docs/id/programmers/plugins/plugins-modifiers.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.modifiers"><title>Pengubah</title> <para> <link linkend="language.modifiers">Pengubah</link> adalah fungsi kecil yang diterapkan ke variabel dalam template sebelum ia ditampilkan atau digunakan dalam beberapa konteks lain. Pengubah dapat dirangkai bersama. </para> <funcsynopsis> <funcprototype> <funcdef>mixed <function>smarty_modifier_<replaceable>name</replaceable></function></funcdef> <paramdef>mixed <parameter>$value</parameter></paramdef> <paramdef>[mixed <parameter>$param1</parameter>, ...]</paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama pada plugin pengubah adalah nilai di mana pengubah beroperasi. Parameter sisanya adalah opsional, tergantung pada jenis operasi apa yang dilakukan. </para> <para> Pengubah harus <ulink url="&url.php-manual;return">mengembalikan</ulink> hasil dari prosesnya. </para> <example> <title>Plugin pengubah sederhana</title> <para> Plugin ini pada dasarnya alias dari salah satu fungsi built-in PHP. Ini tidak mempunyai parameter tambahan. </para> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.capitalize.php * Tipe: pengubah * Nama: capitalize * Kegunaan: membesarkan kata dalam string * ------------------------------------------------------------- */ function smarty_modifier_capitalize($string) { return ucwords($string); } ?> ]]> </programlisting> </example> <para></para> <example> <title>Plugin pengubah lebih kompleks</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.truncate.php * Tipe: pengubah * Nama: truncate * Kegunaan: Potong string ke panjang tertentu bila perlu, * secara opsional memisahkan di tengah kata, dan * menambahkan string $etc. * ------------------------------------------------------------- */ function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false) { if ($length == 0) return ''; if (strlen($string) > $length) { $length -= strlen($etc); $fragment = substr($string, 0, $length+1); if ($break_words) $fragment = substr($fragment, 0, -1); else $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); return $fragment.$etc; } else return $string; } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.modifier"><varname>register_modifier()</varname></link>, <link linkend="api.unregister.modifier"><varname>unregister_modifier()</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/plugins/plugins-naming-conventions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-naming-conventions.xml +++ smarty/docs/id/programmers/plugins/plugins-naming-conventions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.naming.conventions"> <title>Konvensi Penamaan</title> <para> File plugin dan fungsi harus mengikuti konvensi penamaan khusus agar dapat ditempatkan oleh Smarty. </para> <para> <emphasis role="bold">file plugin</emphasis> harus dinamai sebagai berikut: <blockquote> <para> <filename> <replaceable>type</replaceable>.<replaceable>name</replaceable>.php </filename> </para> </blockquote> </para> <itemizedlist> <listitem><para> Di mana <literal>type</literal> salah satu tipe plugin ini: <itemizedlist spacing="compact"> <listitem><simpara>function</simpara></listitem> <listitem><simpara>modifier</simpara></listitem> <listitem><simpara>block</simpara></listitem> <listitem><simpara>compiler</simpara></listitem> <listitem><simpara>prefilter</simpara></listitem> <listitem><simpara>postfilter</simpara></listitem> <listitem><simpara>outputfilter</simpara></listitem> <listitem><simpara>resource</simpara></listitem> <listitem><simpara>insert</simpara></listitem> </itemizedlist> </para> </listitem> <listitem><para> Dan <literal>name</literal> harus pengenal yang benar; huruf, angka, dan hanya garis bawah, lihat <ulink url="&url.php-manual;language.variables">variabel php</ulink>. </para></listitem> <listitem><para> Beberapa contoh: <filename>function.html_select_date.php</filename>, <filename>resource.db.php</filename>, <filename>modifier.spacify.php</filename>. </para> </listitem> </itemizedlist> <para> <emphasis role="bold">fungsi plugin</emphasis> di dalam file PHP harus dinamai sebagai berikut: <blockquote> <para> <function>smarty_<replaceable>type</replaceable>_<replaceable>name</replaceable></function> </para> </blockquote> </para> <itemizedlist> <listitem><para> Arti dari <literal>type</literal> dan <literal>name</literal> sama seperti di atas. </para></listitem> <listitem><para> Contoh nama pengubah <varname>foo</varname> akan menjadi <literal>function smarty_modifier_foo()</literal>. </para></listitem> </itemizedlist> <para> Smarty akan menampilkan pesan kesalahan terkait jika file plugin yang dibutuhkan tidak ditemukan, atau jika file atau fungsi plugin dinamai secara tidak benar. </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/plugins/plugins-outputfilters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-outputfilters.xml +++ smarty/docs/id/programmers/plugins/plugins-outputfilters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.outputfilters"><title>Filter Output</title> <para> Plugin filter output beroperasi pada output template, setelah template diambil dan dijalankan, tapi sebelum output ditampilkan. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_outputfilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$template_output</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama pada fungsi filter output adalah output template yang perlu diproses, dan parameter kedua adalah turunan dari Smarty yang meminta plugin. Plugin seharusnya melakukan proses dan mengembalikan hasilnya. </para> <example> <title>Plugin filter output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: outputfilter.protect_email.php * Tipe: outputfilter * Nama: protect_email * Kegunaan: Mengubah tanda @ dalam alamat email menjadi %40 * sebagai proteksi sedarhana terhadap spambots * ------------------------------------------------------------- */ function smarty_outputfilter_protect_email($output, &$smarty) { return preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $output); } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.outputfilter"> <varname>register_outputfilter()</varname></link>, <link linkend="api.unregister.outputfilter"> <varname>unregister_outputfilter()</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/plugins/plugins-prefilters-postfilters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-prefilters-postfilters.xml +++ smarty/docs/id/programmers/plugins/plugins-prefilters-postfilters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.prefilters.postfilters"> <title>Prefilters/Postfilters</title> <para> Plugin prefilter dan postfilter sangat mirip dalam konsep; di mana keduanya berbeda dalam eksekusi -- lebih tepatnya waktu eksekusinya. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_prefilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$source</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Prefilters dipakai untuk memproses sumber template segera sebelum kompilasi. Parameter pertama ke fungsi prefilter adalah sumber template, kemungkinan diubah oleh beberapa prefilters lain. Plugin seharusnya mengembalikan sumber yang diubah. Catatan bahwa sumber ini tidak disimpan di mana pun, hanya dipakai untuk kompilasi. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_postfilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$compiled</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Postfilters dipakai untuk memproses output terkompilasi dari template (kode PHP) segera setelah kompilasi dikerjakan sebelum template terkompilasi disimpan ke sistem file. Parameter pertama ke fungsi postfilter adalah kode template terkompilasi, kemungkinan diubah oleh postfilters lainnya. Plugin seharusnya mengembalikan versi yang diubah atas kode ini. </para> <example> <title>plugin prefilter</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: prefilter.pre01.php * Tipe: prefilter * Nama: pre01 * Kegunaan: Mengubah tag html ke huruf kecil. * ------------------------------------------------------------- */ function smarty_prefilter_pre01($source, &$smarty) { return preg_replace('!<(\w+)[^>]+>!e', 'strtolower("$1")', $source); } ?> ]]> </programlisting> </example> <para></para> <example> <title>plugin postfilter</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: postfilter.post01.php * Tipe: postfilter * Nama: post01 * Kegunaan: Kode output yang mendaftarkan semua var template saat * ini. * ------------------------------------------------------------- */ function smarty_postfilter_post01($compiled, &$smarty) { $compiled = "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" . $compiled; return $compiled; } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link>, <link linkend="api.unregister.prefilter"> <varname>unregister_prefilter()</varname></link> <link linkend="api.register.postfilter"> <varname>register_postfilter()</varname></link>, <link linkend="api.unregister.postfilter"> <varname>unregister_postfilter()</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/plugins/plugins-resources.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-resources.xml +++ smarty/docs/id/programmers/plugins/plugins-resources.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.resources"><title>Sumber daya</title> <para> Plugin sumber daya diartikan sebagai cara umum atas penyediaan sumber template atau komponen naskah PHP untuk Smarty. Beberapa contoh sumber daya: database, LDAP, memori berbagi, soket, dan seterusnya. </para> <para> Ada empat fungsi yang perlu didaftarkan untuk setiap tipe sumber daya. Setiap fungsi akan menerima sumber daya yang diminta sebagai paramneter pertama dan obyek Smarty sebagai parameter terkahir. Parameter sisanya tergantung pada fungsi. </para> <funcsynopsis> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_source</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>&$source</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_timestamp</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>int <parameter>&$timestamp</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_secure</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_trusted</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <itemizedlist> <listitem><para> Fungsi pertama, <literal>source()</literal> is supposed to retrieve the resource. Its second parameter <parameter>$source</parameter> is a variable passed by reference where the result should be stored. The function is supposed to return &true; if it was able to successfully retrieve the resource and &false; otherwise. </para></listitem> <listitem><para> Fungsi kedua, <literal>timestamp()</literal> is supposed to retrieve the last modification time of the requested resource, as a UNIX timestamp. The second parameter <parameter>$timestamp</parameter> is a variable passed by reference where the timestamp should be stored. The function is supposed to return &true; if the timestamp could be succesfully determined, or &false; otherwise. </para></listitem> <listitem><para> Fungsi ketiga, <literal>secure()</literal>is supposed to return &true; or &false;, depending on whether the requested resource is secure or not. This function is used only for template resources but should still be defined. </para></listitem> <listitem><para> Fungsi keempat, <literal>trusted()</literal> seharusnya mengembalikan &true; atau &false;, tergantung pada apakah sumber daya yang diminta dipercaya atau tidak. Fungsi ini dipakai hanya untuk komponen naskah PHP yang diminta oleh tag <link linkend="language.function.include.php"> <varname>{include_php}</varname></link> atau tag <link linkend="language.function.insert"><varname>{insert}</varname></link> dengan atribut <parameter>src</parameter>. Akan tetapi, ini masih harus didefinisikan meskipun untuk sumber daya template. </para></listitem> </itemizedlist> <example> <title>plugin sumber daya</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: resource.db.php * Tipe: sumber daya * Nama: db * Kegunaan: Mengambil template dari database * ------------------------------------------------------------- */ function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty) { // lakukan pemanggilan database di sini untuk mengambil template anda, // mempopulasikan $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 smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) { // lakukan 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 smarty_resource_db_secure($tpl_name, &$smarty) { // menganggap semua template aman return true; } function smarty_resource_db_trusted($tpl_name, &$smarty) { // tidak dipakai untuk template } ?> ]]> </programlisting> </example> <para> LIhat juga <link linkend="api.register.resource"><varname>register_resource()</varname></link>, <link linkend="api.unregister.resource"><varname>unregister_resource()</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/plugins/plugins-writing.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-writing.xml +++ smarty/docs/id/programmers/plugins/plugins-writing.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.writing"> <title>Menulis Plugin</title> <para> Plugin dapat diambil baik oleh Smarty secara otomatis dari sistem file ataupun didaftarkan saat runtime via salah satu fungsi API register_*. Juga dapat dibatalkan registrasinya dengan menggunakan fungsi API unregister_*. </para> <para> Untuk plugin yang terdaftar saat runtime, nama fungsi plugin tidak harus mengikuti konvensi penamaan. </para> <para> Jika sebuah plugin tergantung pada beberapa fungsionalitas yang disediakan oleh plugin lainnya (seperti dengan beberapa plugin yang dibundel dengan Smarty), maka cara yang benar untuk mengambil plugin yang dibutuhkan ialah: </para> <programlisting role="php"> <![CDATA[ <?php require_once $smarty->_get_plugin_filepath('function', 'html_options'); ?> ]]> </programlisting> <para> Sebagai aturan umum, obyek Smarty selalu dikirimkan ke plugin sebagai parameter terakhir dengan dua kekecualian: </para> <itemizedlist> <listitem><para> pengubah tidak mendapatkan obyek Smarty sama sekali </para></listitem> <listitem><para> blok mendapatkan kirim <parameter>$repeat</parameter> setelah obyek Smarty untuk memelihara kompatibilitas mundur dengan versi Smarty sebelumnya. </para></listitem> </itemizedlist> </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-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> <!-- 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-object.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-object.xml +++ smarty/docs/id/programmers/api-functions/api-register-object.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.object"> <refnamediv> <refname>register_object()</refname> <refpurpose>meregistrasi obyek untuk digunakan dalam template</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_object</methodname> <methodparam><type>string</type><parameter>object_name</parameter></methodparam> <methodparam><type>object</type><parameter>object</parameter></methodparam> <methodparam><type>array</type><parameter>allowed_methods_properties</parameter> </methodparam> <methodparam><type>boolean</type><parameter>format</parameter></methodparam> <methodparam><type>array</type><parameter>block_methods</parameter></methodparam> </methodsynopsis> <para> Lihat <link linkend="advanced.features.objects">seksi obyek</link> untuk informasi lebih jauh. </para> <para> Lihat juga <link linkend="api.get.registered.object"><varname>get_registered_object()</varname></link>, dan <link linkend="api.unregister.object"><varname>unregister_object()</varname></link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-outputfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.outputfilter"> <refnamediv> <refname>register_outputfilter()</refname> <refpurpose>secara dinamis meregistrasi outputfilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsin</title> <methodsynopsis> <type>void</type><methodname>register_outputfilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="plugins.outputfilters">outputfilters</link> secara dinamis guna beroperasi pada output template sebelum ia <link linkend="api.display">ditampilkan</link>. Lihat <link linkend="advanced.features.outputfilters">filter output template</link> untuk informasi lebih jauh atas bagaimana menyiapkan fungsi filter output. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.outputfilter"><varname>unregister_outputfilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">filter output template</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-postfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-postfilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-postfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.postfilter"> <refnamediv> <refname>register_postfilter()</refname> <refpurpose>secara dinamis meregistrasi postfilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_postfilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="advanced.features.postfilters">postfilters</link> secara dinamis guna menjalankan template setelah ia dikompilasi. Lihat <link linkend="advanced.features.postfilters">template postfilters</link> untuk informasi lebih jauh atas bagaimana menyiapkan postfilter fungsi. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.postfilter"> <varname>unregister_postfilter()</varname></link>, <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"> <parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-prefilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-prefilter.xml +++ smarty/docs/id/programmers/api-functions/api-register-prefilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.prefilter"> <refnamediv> <refname>register_prefilter()</refname> <refpurpose>secara dinamis meregistrasi prefilters</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_prefilter</methodname> <methodparam><type>mixed</type><parameter>function</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="advanced.features.prefilters">prefilters</link> secara dinamis guna menjalankan template sebelum ia dikompilas. Lihat <link linkend="advanced.features.prefilters">template prefilters</link> untuk informasi lebih jauh atas bagaimana menyiapkan prefilter fungsi. </para> &api.register.snippet; ¬e.parameter.function; <para> Lihat juga <link linkend="api.unregister.prefilter"><varname>unregister_prefilter()</varname></link>, <link linkend="api.register.postfilter"><varname>register_postfilter()</varname></link>, <link linkend="api.register.outputfilter"><varname>register_ouputfilter()</varname></link>, <link linkend="api.load.filter"><varname>load_filter()</varname></link>, <link linkend="variable.autoload.filters"><parameter>$autoload_filters</parameter></link> dan seksi <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-register-resource.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-register-resource.xml +++ smarty/docs/id/programmers/api-functions/api-register-resource.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.register.resource"> <refnamediv> <refname>register_resource()</refname> <refpurpose>secara dinamis meregistrasi sumberdaya</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>register_resource</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> <methodparam><type>array</type><parameter>resource_funcs</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk meregistrasi <link linkend="template.resources">plugin sumber daya</link> secara dinamis dengan Smarty. Mengirimkan <parameter>name</parameter> sumber daya dab fungsi array PHP yang mengimplementasikannya. Lihat <link linkend="template.resources">sumber daya template</link> untuk informasi lebih jauh atas bagaimana menyiapkan fungsi untuk mengambil templates. <note> <title>Catatan Teknis</title> <para> Panjang nama sumber daya harus berisi setidaknya 2 karakter. Satu karakter nama sumber daya akan diabaikan dan dipakai sebagai bagian dari path file, misalnya <literal>$smarty->display('c:/path/to/index.tpl');</literal> </para> </note> </para> <itemizedlist> <listitem><para> array-fungsi-php <parameter>resource_funcs</parameter> harus mempunyai 4 atau 5 elemen. </para></listitem> <listitem><para> Dengan 4 elemen, elemen adalah callback-fungsi untuk fungsi <literal>source</literal> masing-masing, <literal>timestamp</literal>, <literal>secure</literal> dan <literal>trusted</literal> dari sumber daya. </para></listitem> <listitem><para> Dengan 5 elemen, elemen pertama harus berupa referensi obyek atau nama kelas obyek atau kelas yang mengimplementasikan sumber daya dan 4 elemen berikut harus berupa nama metode yang mengimplementasikan <literal>source</literal>, <literal>timestamp</literal>, <literal>secure</literal> dan <literal>trusted</literal>. </para></listitem> </itemizedlist> <example> <title>register_resource()</title> <programlisting role="php"> <![CDATA[ <?php $smarty->register_resource('db', array( 'db_get_template', 'db_get_timestamp', 'db_get_secure', 'db_get_trusted') ); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.unregister.resource"><varname>unregister_resource()</varname></link> dan seksi <link linkend="template.resources">sumber daya template</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-template-exists.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-template-exists.xml +++ smarty/docs/id/programmers/api-functions/api-template-exists.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.template.exists"> <refnamediv> <refname>template_exists()</refname> <refpurpose>memeiksa apakah template yang ditetapkan sudah ada</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>bool</type><methodname>template_exists</methodname> <methodparam><type>string</type><parameter>template</parameter></methodparam> </methodsynopsis> <para> Ini dapat menerima baik path ke template pada sistem file ataupun string sumber daya yang menetapkan template. </para> <example> <title>template_exists()</title> <para> Contoh ini menggunakan <literal>$_GET['page']</literal> untuk <link linkend="language.function.include"><varname>{include}</varname></link> konten template. Jika template tidak ada maka halaman kesalahan yang ditampilkan. Pertama <filename>page_container.tpl</filename> </para> <programlisting role="php"> <![CDATA[ <html> <head><title>{$title}</title></head> <body> {include file='page_top.tpl'} {* sertakan halaman konten tengah *} {include file=$content_template} {include file='page_footer.tpl'} </body> ]]> </programlisting> <para> Dan naskah php </para> <programlisting role="php"> <![CDATA[ <?php // set nama file, contoh index.inc.tpl $mid_template = $_GET['page'].'.inc.tpl'; if( !$smarty->template_exists($mid_template) ){ $mid_template = 'page_not_found.tpl'; } $smarty->assign('content_template', $mid_template); $smarty->display('page_container.tpl'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.display"><varname>display()</varname></link>, <link linkend="api.fetch"><varname>fetch()</varname></link>, <link linkend="language.function.include"><varname>{include}</varname></link> and <link linkend="language.function.insert"><varname>{insert}</varname></link> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-trigger-error.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-trigger-error.xml +++ smarty/docs/id/programmers/api-functions/api-trigger-error.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.trigger.error"> <refnamediv> <refname>trigger_error()</refname> <refpurpose>menampilkan pesan kesalahan</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>trigger_error</methodname> <methodparam><type>string</type><parameter>error_msg</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>level</parameter></methodparam> </methodsynopsis> <para> Fungsi ini dapat dipakai untuk menampilkan pesan kesalahan menggunakan Smarty. Parameter <parameter>level</parameter> bisa salah satu dari nilai yang dipakai fungsi PHP <ulink url="&url.php-manual;trigger_error"> <varname>trigger_error()</varname></ulink>, contoh: <literal>E_USER_NOTICE</literal>, <literal>E_USER_WARNING</literal>, dll. Standarnya adalah <literal>E_USER_WARNING</literal>. </para> <para> Lihat juga <link linkend="variable.error.reporting"> <parameter>$error_reporting</parameter></link>, <link linkend="chapter.debugging.console">debugging</link> dan <link linkend="smarty.php.errors">pemecahan masalah</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-block.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-block.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-block.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.block"> <refnamediv> <refname>unregister_block()</refname> <refpurpose>secara dinamis membatalkan registrasi plugin fungsi blok</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_block</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk membatalkan registrasi <link linkend="plugins.block.functions">plugin fungsi blok</link> secara dinamis. Mengirimkan fungsi blok <parameter>name</parameter>. </para> <para> Lihat juga <link linkend="api.register.block"><varname>register_block()</varname></link> dan <link linkend="plugins.block.functions">plugins fungsi blok</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-compiler-function.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.compiler.function"> <refnamediv> <refname>unregister_compiler_function()</refname> <refpurpose>secara dinamis membatalkan registrasi fungsi kompilator</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_compiler_function</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan <parameter>name</parameter> fungsi kompilator. </para> <para> Lihat juga <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link> dan <link linkend="plugins.compiler.functions">fungsi kompilator plugin</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-function.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-function.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-function.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.function"> <refnamediv> <refname>unregister_function</refname> <refpurpose>secara dinamis membatalkan registrasi plugin fungsi template</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_function</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan fungsi template <parameter>name</parameter>. </para> <example> <title>unregister_function</title> <programlisting role="php"> <![CDATA[ <?php // kita tidak menginginkan desainer template harus mengakses file sistem $smarty->unregister_function('fetch'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.function"> <varname>register_function()</varname></link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-modifier.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.modifier"> <refnamediv> <refname>unregister_modifier()</refname> <refpurpose>secara dinamis membatalkan registrasi plugin pengubah</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_modifier</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> Mengirimkan pengubah template <parameter>name</parameter>. </para> <example> <title>unregister_modifier()</title> <programlisting role="php"> <![CDATA[ <?php // kita tidak menginginkan desainer template untuk membuang taag dari elemen $smarty->unregister_modifier('strip_tags'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.modifier"><varname>register_modifier()</varname></link> dan <link linkend="plugins.modifiers">pengubah plugin</link>, </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-object.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-object.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-object.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.object"> <refnamediv> <refname>unregister_object()</refname> <refpurpose>secara dinamis membatalkan registrasi obyek</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_object</methodname> <methodparam><type>string</type><parameter>object_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.register.object"><varname>register_object()</varname></link> dan <link linkend="advanced.features.objects">objects section</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-unregister-outputfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-outputfilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-outputfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.outputfilter"> <refnamediv> <refname>unregister_outputfilter()</refname> <refpurpose>secara dinamis membatalkan registrasi filter output</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_outputfilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Gunakan ini untuk membatalkan registrasi filter output secara dinamis. </para> <para> Lihat juga <link linkend="api.register.outputfilter"> <varname>register_outputfilter()</varname></link> dan <link linkend="advanced.features.outputfilters">template output filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-postfilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.postfilter"> <refnamediv> <refname>unregister_postfilter()</refname> <refpurpose>secara dinamis membatalkan registrasi postfilter</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_postfilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.unregister.postfilter"> <varname>register_postfilter()</varname></link> dan <link linkend="plugins.prefilters.postfilters">template post filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-prefilter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.prefilter"> <refnamediv> <refname>unregister_prefilter()</refname> <refpurpose>secara dinamis membatalkan registrasi prefilter</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_prefilter</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> </methodsynopsis> <para> Lihat juga <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link> dan <link linkend="plugins.prefilters.postfilters">pre filters</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-functions/api-unregister-resource.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-functions/api-unregister-resource.xml +++ smarty/docs/id/programmers/api-functions/api-unregister-resource.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <refentry id="api.unregister.resource"> <refnamediv> <refname>unregister_resource()</refname> <refpurpose>secara dinamis membatalkan registrasi sebuah plugin sumber daya</refpurpose> </refnamediv> <refsect1> <title>Deskripsi</title> <methodsynopsis> <type>void</type><methodname>unregister_resource</methodname> <methodparam><type>string</type><parameter>name</parameter></methodparam> </methodsynopsis> <para> mengirimkan <parameter>name</parameter> sumber daya. </para> <example> <title>unregister_resource()</title> <programlisting role="php"> <![CDATA[ <?php $smarty->unregister_resource('db'); ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.resource"> <varname>register_resource()</varname></link> dan <link linkend="template.resources">template resources</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-variables/variable-autoload-filters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-autoload-filters.xml +++ smarty/docs/id/programmers/api-variables/variable-autoload-filters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.autoload.filters"> <title>$autoload_filters</title> <para> Jika ada beberapa filter yang ingin diambil pada setiap permintaan template, anda bisa menetapkannya menggunakan variabel ini dan Smarty akan secara otomatis mengambilnya bagi anda. Variabel adalah array asosiatif di mana kunci adalah tipe filter dan nilai adalah array nama filter. Sebagai contoh: <informalexample> <programlisting role="php"> <![CDATA[ <?php $smarty->autoload_filters = array('pre' => array('trim', 'stamp'), 'output' => array('convert')); ?> ]]> </programlisting> </informalexample> </para> <para> Lihat juga <link linkend="api.register.outputfilter"><varname>register_outputfilter()</varname></link>, <link linkend="api.register.prefilter"><varname>register_prefilter()</varname></link>, <link linkend="api.register.postfilter"><varname>register_postfilter()</varname></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/api-variables/variable-cache-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.dir"> <title>$cache_dir</title> <para> Ini adalah nama direktori di mana cache template disimpan. Standarnya adalah <filename class="directory">./cache</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">cache/</filename> di direktori yang sama seperti naskah php yang dijalankan <emphasis role="bold">direktori ini harus bisa ditulisi oleh server web </emphasis>, <link linkend="installing.smarty.basic">lihat instalasi</link> untuk info lebih lengkap. </para> <para> Anda juga dapat menggunakan fungsi <link linkend="section.template.cache.handler.func"> pengendali cache kustom</link> sendiri guna mengontrol file cache, yang akan mengabaikan setelan ini. Lihat juga <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</parameter></link>. </para> <note> <title>Catatan Teknis</title> <para> Setelan ini harus path relatif atau absolut. include_path tidak dipakai untuk menulis file. </para> </note> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> <para> Lihat juga <link linkend="variable.caching"><parameter>$caching</parameter></link>, <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, <link linkend="variable.cache.modified.check"><parameter>$cache_modified_check</parameter></link> dan <link linkend="caching">seksi caching</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/api-variables/variable-cache-handler-func.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-handler-func.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-handler-func.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.handler.func"> <title>$cache_handler_func</title> <para> Anda dapat menyertakan fungsi kustom untuk menangani file cache daripada menggunakan metode built-in menggunakan <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Lihat <link linkend="section.template.cache.handler.func">seksi fungsi pengendali cache</link> untuk lebih jelasnya. </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/api-variables/variable-cache-lifetime.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-lifetime.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-lifetime.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.lifetime"> <title>$cache_lifetime</title> <para> Ini adalah lama waktu dalam detik berlakunya cache template. Sekali ini berakhir, cache akan dibuat ulang. </para> <itemizedlist> <listitem><para> <parameter>$caching</parameter> harus dihidupkan (baik 1 atau 2) agar <parameter>$cache_lifetime</parameter> berfungsi dengan benar. </para></listitem> <listitem><para> Nilai -1 akan memaksa cache agar tidak pernah berakhir. </para></listitem> <listitem><para>Nilai 0 akan menyebabkan cache selalu dibuat ulang (hanya baik untuk pengujian saja, untuk mematikan cache lebih efisien ialah menyetel set <link linkend="variable.caching"><parameter>$caching</parameter></link> = 0). </para></listitem> <listitem><para> Jika anda ingin memberikan template tertentu memiliki usia cache sendiri, anda dapat melakukan ini dengan menyetel <link linkend="variable.caching"> <parameter>$caching</parameter></link> = 2, kemudian setel <parameter>$cache_lifetime</parameter> ke nilai unik sebelum memanggil <link linkend="api.display"><varname>display()</varname> </link> atau <link linkend="api.fetch"><varname>fetch()</varname></link>. </para></listitem> </itemizedlist> <para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, file cache akan dibuat ulang setiap waktu, secara efektif mematikan cache. Anda bisa membersihkan seluruh file cache dengan fungsi <link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>, atau file cache individual (atau grup) dengan fungsi <link linkend="api.clear.cache"><varname>clear_cache()</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/api-variables/variable-cache-modified-check.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-cache-modified-check.xml +++ smarty/docs/id/programmers/api-variables/variable-cache-modified-check.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.cache.modified.check"> <title>$cache_modified_check</title> <para> Jika disetel &true;, Smarty akan memperhatikan Jika-Diubah-Sejak header dikirimkan dari klien. Jika cap waktu file yang di-cache tidak diubah sejak kuncjungan terakhir, maka header <literal>'304: Not Modified'</literal> akan dikirimkan daripada kontennya. Pekerjaan ini hanya pada kodten yang di-cache tanpa tag <link linkend="language.function.insert"><varname>{insert}</varname></link>. </para> <para> Lihat juga <link linkend="variable.caching"><parameter>$caching</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, dan <link linkend="caching">seksi caching</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/api-variables/variable-caching.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-caching.xml +++ smarty/docs/id/programmers/api-variables/variable-caching.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.caching"> <title>$caching</title> <para> Ini memberitahu Smarty apakah melakukan cache output template atau tidak ke <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Standarnya ini disetel 0 yakni dimatikan. Jika template anda membuat konten berlebihan, disarankan untuk menghidupkan <parameter>$caching</parameter>, karena ini akan menghasilkan keuntungan performansi signifikan. </para> <para> Anda juga memiliki <link linkend="caching.multiple.caches">multipel</link> cache untuk template yang sama. </para> <itemizedlist> <listitem><para> Nilai 1 atau 2 menghidupkan cache. </para></listitem> <listitem><para> Nilai 1 memberitahu Smarty untuk menggunakan variabel <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> saat ini guna menetapkan apakah cache sudah berakhir. </para></listitem> <listitem><para>Nilai 2 memberitahu Smarty untuk menggunakan nilai <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> saat waktu cache dibuat. Dengan cara ini anda bisa menyetel <link linkend="variable.cache.lifetime"> <parameter>$cache_lifetime</parameter></link> cukup sebelum <link linkend="api.fetch">fetching</link> template untuk memiliki kontrol granular melewati berakhirnya cache tertentu. Lihat juga <link linkend="api.is.cached"><varname>is_cached()</varname></link>. </para></listitem> <listitem><para> Jika <link linkend="variable.compile.check"><parameter>$compile_check</parameter></link> dihidupkan, konten yang di-cache akan dibuat ulang bila setiap template atau file config yang adalah bagian dari cache ini diubah. </para></listitem> <listitem><para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, konten yang di-cache akan selalu dibuat ulang. </para></listitem> </itemizedlist> <para> Lihat juga <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>, <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>, <link linkend="variable.cache.handler.func"><parameter>$cache_handler_func</parameter></link>, <link linkend="variable.cache.modified.check"><parameter>$cache_modified_check</parameter></link>, <link linkend="api.is.cached"><varname>is_cached()</varname></link> dan <link linkend="caching">seksi caching</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/api-variables/variable-compile-check.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-check.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-check.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.check"> <title>$compile_check</title> <para> Setelah setiap permintaan dari aplikasi PHP, Smarty menguji untuk melihat apakah template saat ini sudah diubah (cap waktu berbeda) sejak terakhir dikompilasi, ia merekompilasi ulang template itu. Jika template tidak diubah ia akan mengompilasi dengan mengabaikan setelan ini. Standarnya variabel ini disetel ke &true;. </para> <para>Sekali aplikasi disimpan ke dalam produksi (misalnya template tidak akan berubah), langkah pemeriksaan kompilasi tidak lagi diperlukan. Pastikan untuk menyetel <parameter>$compile_check</parameter> ke &false; untuk performansi maksimal. Catatan bahwa jika anda mengubah ini ke &false; dan file template berubah, anda *tidak* akan melihat perubahan karena template tidak akan direkompilasi. Jika <link linkend="variable.caching"><parameter>$caching</parameter></link> dihidupkan dan <parameter>$compile_check</parameter> dihidupkan, maka file yang di-cache akan dibuat ulang bila file template terkait atau file konfig dimutakhirkan. Lihat <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dan <link linkend="api.clear.compiled.tpl"><varname>clear_compiled_tpl()</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/api-variables/variable-compile-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.dir"> <title>$compile_dir</title> <para> Ini adalah nama direktori di mana template terkompilasi ditempatkan. Standarnya ialah <filename class="directory">./templates_c</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">templates_c/</filename> di direktori yang sama seperti naskah php yang sedang dijalankan. <emphasis role="bold">Direktori ini harus bisa ditulisi oleh server web</emphasis>, <link linkend="installing.smarty.basic">lihat instalasi</link> untuk informasi lebih jauh. </para> <note> <title>Catatan Teknis</title> <para> Setelan ini harus path relatif atau absolut, absolute path. include_path tidak dipakai untuk menulis file. </para> </note> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori di bawah akar dokumen server web. </para> </note> <para> Lihat juga <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link> dan <link linkend="variable.use.sub.dirs"><parameter>$use_sub_dirs</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/api-variables/variable-compile-id.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compile-id.xml +++ smarty/docs/id/programmers/api-variables/variable-compile-id.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compile.id"> <title>$compile_id</title> <para> Pengenal kompilasi persisten. Sebagai alternatif untuk mengirimkan <parameter>$compile_id</parameter> yang sama ke setiap fungsi panggil, anda bisa menyetel <parameter>$compile_id</parameter> ini dan ia akan dipakai secara implisit setelahnya. </para> <para> Dengan <parameter>$compile_id</parameter> anda bisa mengatasi batasan di mana anda tidak bisa memakai <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link> yang sama untuk <link linkend="variable.template.dir"> <parameter>$template_dirs</parameter></link> yang berbeda. Jika anda menyetel <parameter>$compile_id</parameter> untuk setiap <link linkend="variable.template.dir"><parameter>$template_dir</parameter> </link> maka Smarty bisa memberitahu bagian template terkompilasi dengan <parameter>$compile_id</parameter>-nya. </para> <para> Jika anda mempunyai misalnya <link linkend="plugins.prefilters.postfilters">prefilter</link> yang melokalisir template anda (yaitu: menterjemahkan bahasa bagian tersendiri) saat waktu kompilasi, selanjutnya anda dapat memakai bahasa saat ini sebagai <parameter>$compile_id</parameter> dan anda akan mendapatkan satu set template terkompilasi untuk setiap bahasa yang anda gunakan. </para> <para> Apliukasi lain akan menggunakan direktori kompilasi yang sama melalui multipel domain / multipel host virtual. </para> <example> <title>$compile_id dalam lingkungan host virtual</title> <programlisting role="php"> <![CDATA[ <?php $smarty->compile_id = $_SERVER['SERVER_NAME']; $smarty->compile_dir = '/path/to/shared_compile_dir'; ?> ]]> </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/api-variables/variable-compiler-class.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-compiler-class.xml +++ smarty/docs/id/programmers/api-variables/variable-compiler-class.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.compiler.class"> <title>$compiler_class</title> <para> Menetapkan nama kelas kompilator yang akan digunakan Smarty untuk mengkompilasi template. Standarnya adalah 'Smarty_Compiler'. Hanya untuk pengguna tingkat lanjut. </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/api-variables/variable-config-booleanize.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-booleanize.xml +++ smarty/docs/id/programmers/api-variables/variable-config-booleanize.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.booleanize"> <title>$config_booleanize</title> <para> Jika disetel &true;, nilai <link linkend="config.files">file konfig</link> dari <literal>on/true/yes</literal> dan <literal>off/false/no</literal> diubah ke nilai boolean secara otomatis. Dengan cara ini anda bisa menggunakan nilai dalam template seperti: <literal>{if #foobar#}...{/if}</literal>. Jika foobar <literal>on</literal>, <literal>true</literal> atau <literal>yes</literal>, pernyataan <varname>{if}</varname> akan dijalankan. Standarnya adalah &true;. </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/api-variables/variable-config-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-config-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.dir"> <title>$config_dir</title> <para> Ini adalah direktori yang digunakan untuk menyimpan <link linkend="config.files">file config</link> yang dipakai pada templates. Standarnya adalah <filename class="directory">./configs</filename>, berarti bahwa Smarty akan mencari direktori <filename class="directory">configs/</filename> di direktori yang sama seperti naskah php sedang dijalankan. </para> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml +++ smarty/docs/id/programmers/api-variables/variable-config-fix-newlines.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.fix.newlines"> <title>$config_fix_newlines</title> <para> Jika disetel ke &true;, baris baru mac dan dos misalnya <literal>'\r'</literal> dan <literal>'\r\n'</literal> dalam file konfig diubah ke <literal>'\n'</literal> ketika ia diuraikan. Standarnya adalah &true;. </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/api-variables/variable-config-overwrite.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-overwrite.xml +++ smarty/docs/id/programmers/api-variables/variable-config-overwrite.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.overwrite"> <title>$config_overwrite</title> <para> Jika disetel &true;, standarnya maka variabel yang dibaca dari <link linkend="config.files">file config</link> akan saling menimpa. Sebaliknya, variabel akan dimasukan ke dalam array. Ini membantu jika anda ingin menyimpan array data dalam file config, cukup daftarkan setiap elemen berkali-kali. </para> <example> <title>Array config #variables#</title> <para> Contoh ini menggunakan <link linkend="language.function.cycle"><varname>{cycle}</varname></link> untuk menampilkan tabel dengan warna baris berbeda merah/hijau/biru dengan <parameter>$config_overwrite</parameter> = &false;. </para> <para>File config.</para> <programlisting> <![CDATA[ # warna baris rowColors = #FF0000 rowColors = #00FF00 rowColors = #0000FF ]]> </programlisting> <para> Template dengan pengulangan <link linkend="language.function.section"> <varname>{section}</varname></link>. </para> <programlisting> <![CDATA[ <table> {section name=r loop=$rows} <tr bgcolor="{cycle values=#rowColors#}"> <td> ....dll.... </td> </tr> {/section} </table> ]]> </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>, <link linkend="api.config.load"><varname>config_load()</varname></link> dan <link linkend="config.files">seksi file config</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/api-variables/variable-config-read-hidden.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-config-read-hidden.xml +++ smarty/docs/id/programmers/api-variables/variable-config-read-hidden.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.config.read.hidden"> <title>$config_read_hidden</title> <para> Jika disetel &true;, seksi tersembunyi misalnya nama seksi yang diawali dengan .period dalam <link linkend="config.files">file config</link> bisa dibaca dari template. Biasanya anda akan membiarkan ini ke &false;, dengan cara itu anda dapat menyimpan data sensitif dalam file config seperti parameter database dan tidak mencemaskan mengenai template mengembilnya. &false; standarnya. </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/api-variables/variable-debug-tpl.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debug-tpl.xml +++ smarty/docs/id/programmers/api-variables/variable-debug-tpl.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debug.tpl"> <title>$debug_tpl</title> <para> Ini adalah nama dari file template yang digunakan untuk konsol debug. Standarnya, ia dinamai <filename>debug.tpl</filename> dan ditempatkan di <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>. </para> <para> Lihat juga <link linkend="variable.debugging"><parameter>$debugging</parameter></link> dan seksi <link linkend="chapter.debugging.console">konsol debug</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/api-variables/variable-debugging-ctrl.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debugging-ctrl.xml +++ smarty/docs/id/programmers/api-variables/variable-debugging-ctrl.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debugging.ctrl"> <title>$debugging_ctrl</title> <para> Ini membolehkan cara alternatif untuk menghidupkan debugging. <literal>NONE</literal> berarti tidak ada metode alternatif yang dibolehkan. <literal>URL</literal> berarti ketika kata kunci <literal>SMARTY_DEBUG</literal> ditemukan dalam <literal>QUERY_STRING</literal>, debugging dihidupkan untuk naskah permintaan itu. Jika <link linkend="variable.debugging"> <parameter>$debugging</parameter></link> adalah &true;, nilai ini diabaikan. </para> <example> <title>$debugging_ctrl pada localhost</title> <programlisting role="php"> <![CDATA[ <?php // menampilkan konsol debug hanya pada localhost misalnya // http://localhost/script.php?foo=bar&SMARTY_DEBUG $smarty->debugging = false; // standar $smarty->debugging_ctrl = ($_SERVER['SERVER_NAME'] == 'localhost') ? 'URL' : 'NONE'; ?> ]]> </programlisting> </example> <para> Lihat juga seksi <link linkend="chapter.debugging.console">konsol debugging</link> dan <link linkend="variable.debugging"><parameter>$debugging</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/api-variables/variable-debugging.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-debugging.xml +++ smarty/docs/id/programmers/api-variables/variable-debugging.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.debugging"> <title>$debugging</title> <para> Ini menghidupkan <link linkend="chapter.debugging.console">debugging console</link>. Konsol adalah jendela popup javascript yang memberitahu anda terhadap template yang <link linkend="language.function.include">disertakan</link>, variabel yang <link linkend="api.assign">ditempati</link> dari php dan <link linkend="language.config.variables">variabel file config</link> untuk naskah saat ini. Ia tidak menampilkan variabel yang ditempatkan dalam template dengan fungsi <link linkend="language.function.assign"><varname>{assign}</varname> </link>. </para> <para>Konsol bisa juga dihidupkan dari url dengan <link linkend="variable.debugging.ctrl"> <parameter>$debugging_ctrl</parameter></link>. </para> <para> Lihat juga <link linkend="language.function.debug"><varname>{debug}</varname></link>, <link linkend="variable.debug.tpl"><parameter>$debug_tpl</parameter></link>, dan <link linkend="variable.debugging.ctrl"><parameter>$debugging_ctrl</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/api-variables/variable-default-modifiers.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-modifiers.xml +++ smarty/docs/id/programmers/api-variables/variable-default-modifiers.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.modifiers"> <title>$default_modifiers</title> <para> Ini adalah sebuah array pengubah untuk menerapkan secara implisit ke setiap variabel dalam sebuah template. Sebagai contoh, untuk setiap variabel HTML-escape standarnya, menggunakan <literal>array('escape:"htmlall"')</literal>. Untuk mengecualikan variabel dari pengubah standar, kirimkan pengubah khusus <literal>smarty</literal> dengan nilai parameter pengubah <literal>nodefaults</literal> ke dalamnya, misalnya <literal>{$var|smarty:nodefaults}</literal>. </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/api-variables/variable-default-resource-type.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-resource-type.xml +++ smarty/docs/id/programmers/api-variables/variable-default-resource-type.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.resource.type"> <title>$default_resource_type</title> <para> Ini memberitahu smarty tipe sumber daya apa yang digunakan secara implisit. Nilai standarnya adalah <literal>file</literal>, berarti bahwa <literal>$smarty->display('index.tpl')</literal> dan <literal>$smarty->display('file:index.tpl')</literal> adalah sama dalam arti. Lihat bab <link linkend="template.resources">sumber daya</link> untuk lebih jelasnya. </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/api-variables/variable-default-template-handler-func.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-default-template-handler-func.xml +++ smarty/docs/id/programmers/api-variables/variable-default-template-handler-func.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.default.template.handler.func"> <title>$default_template_handler_func</title> <para> Fungsi ini dipanggil saat template tidak bisa didapatkan dari sumber dayanya. </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/api-variables/variable-error-reporting.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-error-reporting.xml +++ smarty/docs/id/programmers/api-variables/variable-error-reporting.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.error.reporting"> <title>$error_reporting</title> <para> Ketika nilai ini disetel ke nilai-non-null, nilainya dipakai sebagai tingkat <ulink url="&url.php-manual;error_reporting"><varname>error_reporting</varname></ulink> di dalam <link linkend="api.display"><varname>display()</varname></link> dan <link linkend="api.fetch"><varname>fetch()</varname></link>. Ketika <link linkend="chapter.debugging.console"><parameter>debugging</parameter></link> menghidupkan nilai ini, ia diabaikan dan tingkat kesalahan dibiarkan apa adanya. </para> <para> Lihat juga <link linkend="api.trigger.error"><varname>trigger_error()</varname></link>, <link linkend="chapter.debugging.console">debugging</link> dan <link linkend="troubleshooting">pemecahan masalah</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/api-variables/variable-force-compile.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-force-compile.xml +++ smarty/docs/id/programmers/api-variables/variable-force-compile.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.force.compile"> <title>$force_compile</title> <para> Ini memaksa Smarty untuk mengkompilasi ulang template pada setiap permintaan. Setelan ini mengabaikan <link linkend="variable.compile.check"> <parameter>$compile_check</parameter></link>. Standarnya adalah &false;. Ini membantu saat pengembangan dan <link linkend="chapter.debugging.console">debugging</link>. Ini tidak boleh dipakai dalam lingkungan produksi. Jika <link linkend="variable.caching"><parameter>$caching</parameter></link> dihidupkan, file cache selalu akan dibuat ulang. </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/api-variables/variable-left-delimiter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-left-delimiter.xml +++ smarty/docs/id/programmers/api-variables/variable-left-delimiter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.left.delimiter"> <title>$left_delimiter</title> <para> Ini adalah pemisah kiri yang dipakai oleh bahasa template. Standarnya ialah <literal>{</literal>. </para> <para> Lihat juga <link linkend="variable.right.delimiter"><parameter>$right_delimiter</parameter></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/programmers/api-variables/variable-php-handling.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-php-handling.xml +++ smarty/docs/id/programmers/api-variables/variable-php-handling.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.php.handling"> <title>$php_handling</title> <para> Ini memberitahu Smarty bagaimana untuk menangani kode PHP yang disertakan dalam template. Ada empat kemungkinan setelan, standarnya adalah <constant>SMARTY_PHP_PASSTHRU</constant>. Catatan bahwa ini tidak mempengaruhi kode php di dalam tag <link linkend="language.function.php"> <varname>{php}{/php}</varname></link> pada template. </para> <itemizedlist> <listitem><para> <constant>SMARTY_PHP_PASSTHRU</constant> - Smarty menampilkan tag apa adanya. </para></listitem> <listitem><para> <constant>SMARTY_PHP_QUOTE</constant> - Smarty memberi tanda kutip tag sebagai entitas html. </para></listitem> <listitem><para> <constant>SMARTY_PHP_REMOVE</constant> - Smarty menghapus tag dari template.</para></listitem> <listitem><para> <constant>SMARTY_PHP_ALLOW</constant> - Smarty akan menjalankan tag sebagai kode PHP.</para></listitem> </itemizedlist> <note> <para> Menyertakan kode PHP ke dalam template sangat tidak disarankan. Lebih baik gunakan <link linkend="plugins.functions">fungsi kustom</link> atau <link linkend="plugins.modifiers">pengubah</link>. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-plugins-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.plugins.dir"> <title>$plugins_dir</title> <para> Ini adalah directori ke mana Smarty akan mencari plugins yang dibutuhkannya. Standarnya ialah <filename class="directory">plugins/</filename> di bawah <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>. Jika anda menyertakan path relatif, pertama Smarty akan mencari di bawah <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>, kemudian relatif ke direktori kerja saat ini, lalu relatif terhadap include_path PHP. Jika <parameter>$plugins_dir</parameter> adalah sebuah array direktori, Smarty akan mencari plugin anda di setiap direktori plugin <emphasis role="bold">dalam urutan sesuai yang diberikan</emphasis>. </para> <note> <title>Catatan Teknis</title> <para> Untuk performansi terbaik, jangan siapkan <parameter>$plugins_dir</parameter> anda harus memakai path include PHP. Gunakan nama path absolut, atau path relatif ke <constant>SMARTY_DIR</constant> atau direktori kerja saat ini. </para> </note> <example> <title>Menambahkan direktori plugin lokal</title> <programlisting role="php"> <![CDATA[ <?php $smarty->plugins_dir[] = 'includes/my_smarty_plugins'; ?> ]]> </programlisting> </example> <example> <title>Multiple $plugins_dir</title> <programlisting role="php"> <![CDATA[ <?php $smarty->plugins_dir = array( 'plugins', // standar di bawah SMARTY_DIR '/path/to/shared/plugins', '../../includes/my/plugins' ); ?> ]]> </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/api-variables/variable-request-use-auto-globals.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-request-use-auto-globals.xml +++ smarty/docs/id/programmers/api-variables/variable-request-use-auto-globals.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.request.use.auto.globals"> <title>$request_use_auto_globals</title> <para> Menetapkan apakah Smarty harus menggunakan <literal>$HTTP_*_VARS[]</literal> PHP saat &false; atau <literal>$_*[]</literal> saat &true; yang merupakan nilai standarnya. Ini mempengaruhi templates yang menggunakan <link linkend="language.variables.smarty"> <literal>{$smarty.request.*}, {$smarty.get.*}</literal></link> dll. </para> <note> <title>Perhatian</title> <para> Jika anda menyetel <literal>$request_use_auto_globals ke true</literal>, <link linkend="variable.request.vars.order"> <parameter>$request_vars_order</parameter></link> tidak berpengaruh tapi nilai konfigurasi PHP <literal>gpc_order</literal> yang digunakan. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml +++ smarty/docs/id/programmers/api-variables/variable-request-vars-order.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.request.vars.order"> <title>$request_vars_order</title> <para> Urutan di mana variabel yang diminta sudah terdaftar, mirip dengan variables_order dalam php.ini </para> <para> Lihat juga <link linkend="language.variables.smarty"><parameter>$smarty.request</parameter></link> dan <link linkend="variable.request.use.auto.globals"><parameter>$request_use_auto_globals</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/api-variables/variable-right-delimiter.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-right-delimiter.xml +++ smarty/docs/id/programmers/api-variables/variable-right-delimiter.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.right.delimiter"> <title>$right_delimiter</title> <para> Ini adalah pemisah kanan yang digunakan oleh bahasa template. Standarnya adalah <literal>}</literal>. </para> <para> Lihat juga <link linkend="variable.left.delimiter"><parameter>$left_delimiter</parameter></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/programmers/api-variables/variable-secure-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-secure-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-secure-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.secure.dir"> <title>$secure_dir</title> <para> Ini adalah array dari semua file lokal dan direktori yang dianggap aman. <link linkend="language.function.include"><varname>{include}</varname></link> dan <link linkend="language.function.fetch"><varname>{fetch}</varname></link> gunakan ini ketika <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. </para> <example> <title>$secure_dir example</title> <programlisting role="php"> <![CDATA[ <?php $secure_dirs[] = '/path/to/site/root/templates/'; $secure_dirs[] = '/path/to/includes/'; $smarty->secure_dir = $secure_dirs; ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> dan <link linkend="variable.trusted.dir"><parameter>$trusted_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/api-variables/variable-security-settings.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-security-settings.xml +++ smarty/docs/id/programmers/api-variables/variable-security-settings.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.security.settings"> <title>$security_settings</title> <para> Ini dipakai untuk menimpa atau menetapkan setelan keamanan saat <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. Ini adalah kemungkinan setelan: </para> <itemizedlist> <listitem> <para> <constant>PHP_HANDLING</constant> - boolean. Jika disetel &true;, setelan <link linkend="variable.php.handling"><parameter>$php_handling</parameter></link> tidak diperiksa untuk keamanan. </para> </listitem> <listitem> <para> <constant>IF_FUNCS</constant> - array. Nama-nama fungsi PHP yang diijinkan dalam pernyataan <link linkend="language.function.if"><varname>{if}</varname></link>. </para> </listitem> <listitem> <para> <constant>INCLUDE_ANY</constant> - boolean. Jika disetel &true;, setiap template dapat <link linkend="language.function.include">disertakan</link> dari sistem file, mengabaikan daftar <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link>. </para> </listitem> <listitem> <para> <constant>PHP_TAGS</constant> - boolean. Jika disetel &true;, tag <link linkend="language.function.php"><varname>{php}{/php}</varname></link> diijinkan dalam template. </para> </listitem> <listitem> <para> <constant>MODIFIER_FUNCS</constant> - array. Nama-nama fungsi PHP yang diijinkan yang dapat dipakai sebagai pengubah variabel. </para> </listitem> <listitem> <para> <constant>ALLOW_CONSTANTS</constant> - boolean. Jika disetel &true;, konstan melalui <link linkend="language.variables.smarty.const"><parameter>{$smarty.const.FOO}</parameter></link> dibolehkan dalam template. </para> </listitem> </itemizedlist> </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-variables/variable-security.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-security.xml +++ smarty/docs/id/programmers/api-variables/variable-security.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.security"> <title>$security</title> <para> <parameter>$security</parameter> bisa &true; atau &false;, standarnya &false;. Keamana baik untuk situasi saat anda mempunyai rekan yang tidak dipercaya mengedit template misalnya melalui ftp, dan anda ingin mengurangi resiko yang berkaitan dengan keamanan sistem dalam bahasa template. Menghidupkan keamanan, memaksa aturan berikut terhadap bahasa template, kecuali secara khusus ditimpa dengan <link linkend="variable.security.settings"> <parameter>$security_settings</parameter></link>: </para> <itemizedlist> <listitem> <para>Jika <link linkend="variable.php.handling"><parameter>$php_handling</parameter></link> disetel ke <constant>SMARTY_PHP_ALLOW</constant>, ini secara implisit mengubah <constant>SMARTY_PHP_PASSTHRU</constant> </para></listitem> <listitem> <para> Fungsi PHP tidak dibolehkan dalam pernyataan <link linkend="language.function.if"><varname>{if}</varname></link>, kecuali yang ditetapkan dalam <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> </para></listitem> <listitem><para> Template hanya bisa disertakan dari direktori yang didaftarkan dalam array <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link> </para></listitem> <listitem><para> File lokal hanya dapat diambil dari direktori yang didaftarkan dalam <link linkend="variable.secure.dir"><parameter>$secure_dir</parameter></link> array menggunakan <link linkend="language.function.fetch"><varname>{fetch}</varname></link> </para></listitem> <listitem><para> Tag <link linkend="language.function.php"><varname>{php}{/php}</varname></link> tidak dibolehkan </para></listitem> <listitem><para> Fungsi PHP tidak dibolehkan sebagai pengubah, kecuali itu ditetapkan dalam <link linkend="variable.security.settings"><parameter>$security_settings</parameter></link> </para></listitem> </itemizedlist> </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-variables/variable-template-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-template-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-template-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.template.dir"> <title>$template_dir</title> <para> Ini adalah nama standar direktori template. Jika anda tidak menyertakan tipe sumber daya ketika menyertakan file, akan ditemukan di sini. Standarnya ini adalah <filename class="directory">./templates</filename>, yang berarti bahwa Smarty akan mencari direktori <filename class="directory">templates/</filename> dalam direktori yang sama dengan naskah php yang dieksekusi. </para> <note> <title>Catatan Teknis</title> <para> Tidak direkomendasikan untuk menyimpan direktori ini di bawah akar dokumen server web. </para> </note> </sect1> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/viewvc.cgi/smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml +++ smarty/docs/id/programmers/api-variables/variable-trusted-dir.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.trusted.dir"> <title>$trusted_dir</title> <para> <parameter>$trusted_dir</parameter> hanya dipakai ketika <link linkend="variable.security"><parameter>$security</parameter></link> dihidupkan. Ini adalah array dari seluruh direktori yang dianggap dipercaya. Direktori yang dipercaya adalah di mana anda memelihara naskah php yang dijalankan secara langsung dari template with <link linkend="language.function.include.php"><varname>{include_php}</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/api-variables/variable-use-sub-dirs.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/api-variables/variable-use-sub-dirs.xml +++ smarty/docs/id/programmers/api-variables/variable-use-sub-dirs.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="variable.use.sub.dirs"> <title>$use_sub_dirs</title> <para> Smarty akan membuat subdirektori di bawah <link linkend="variable.compile.dir">template terkompilasi</link> dan direktori <link linkend="variable.cache.dir">cache</link> jika <parameter>$use_sub_dirs</parameter> disetel ke &true;, standarnya &false;. Dalam sebuah lingkungan di mana ada potensi sepulu dari ribuan file dibuat, ini dapat membantu kecepatan sistem file. Dengan kata lain, beberapa lingkungan tidak membolehkan proses PHP membuat direktori, maka ini harus dimatikan yang sudah jadi standarnya. </para> <para> Sub direktori lebih efisien, maka gunakan jika anda bisa. Secara teori anda memperoleh performansi lebih baik pada sistem file dengan 10 direktori masing-masing memiliki 100 file, daripada dengan 1 direktori yang memiliki 1000 file. Ini tentunya kasus dengan Solaris 7 (UFS)... dengan sistem file lebih baru seperti ext3 dan terutama reiserfs, perbedaannya hampir tidak ada. </para> <note> <title>Catatan Teknis</title> <itemizedlist> <listitem> <para><literal>$use_sub_dirs=true</literal> tidak bekerja dengan <ulink url="&url.php-manual;features.safe-mode">safe_mode=On</ulink>, itulah mengapa dapat diputar dan mengapa standarnya dimatikan. </para> </listitem> <listitem> <para><literal>$use_sub_dirs=true</literal> pada Windows bisa menimbulkan masalah.</para> </listitem> <listitem> <para>Safe_mode akan menjadi usang dalam PHP6.</para> </listitem> </itemizedlist> </note> <para> Lihat juga <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>, <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>, dan <link linkend="variable.compile.dir"><parameter>$compile_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/caching/caching-cacheable.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-cacheable.xml +++ smarty/docs/id/programmers/caching/caching-cacheable.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.cacheable"> <title>Mengontrol Plugins ynd Bisa Di-cache' Output</title> <para> Sejak plugin Smarty-2.6.0, plugins yang bisa di-cache dapat dideklarasikan saat meregistrasinya. Parameter ketiga pada <link linkend="api.register.block"><varname>register_block()</varname></link>, <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link> dan <link linkend="api.register.function"><varname>register_function()</varname></link> disebut <parameter>$cacheable</parameter> dan standarnya &true; yang juga merupakan tabiat plugins dalam Smarty versi sebelum 2.6.0 </para> <para> Ketika meregistrasi sebuah plugin dengan <literal>$cacheable=false</literal>, plugin dipanggil setiap kali halaman ditampilkan, meskipun halaman berasal dari cache. Fungsi plugin berlaku sedikit mirip fungsi <link linkend="plugins.inserts"><varname>{insert}</varname></link>. </para> <para> Sebaliknya dari <link linkend="plugins.inserts"><varname>{insert}</varname> </link> atribut plugins standarnya tidak di-cache. Bisa dideklarasikan untuk di-cache dengan parameter keempat <parameter>$cache_attrs</parameter>. <parameter>$cache_attrs</parameter> adalah array nama-atribut yang harus di-cache, agar fungsi-plugin memperoleh nilai seperti pertama kali halaman dituliskan ke cache, setiap kali ia diambil dari cache. </para> <example> <title>Menghindari output plugin di-cache</title> <programlisting role="php"> <![CDATA[ <?php $smarty->caching = true; function remaining_seconds($params, &$smarty) { $remain = $params['endtime'] - time(); if($remain >= 0){ return $remain . ' second(s)'; }else{ return 'done'; } } $smarty->register_function('remaining', 'remaining_seconds', false, array('endtime')); if (!$smarty->is_cached('index.tpl')) { // ambil $obj dari db dan tempatkan... $smarty->assign_by_ref('obj', $obj); } $smarty->display('index.tpl'); ?> ]]> </programlisting> <para> di mana <filename>index.tpl</filename> adalah: </para> <programlisting> <![CDATA[ Time Remaining: {remaining endtime=$obj->endtime} ]]> </programlisting> <para> Jumlah detik sampai endtime <literal>$obj</literal> dicapai, perubahan pada setiap tampilan halaman, meskipun bila halaman di-cache. Karena atribut endtime di-cache. obyek harus ditarik dari database ketika halaman dituliskan ke cache tapi tidak pada permintaan halaman berikutnya. </para> </example> <example> <title>Menghindari seluruh bagian template di-cache</title> <programlisting role="php"> <![CDATA[ index.php: <?php $smarty->caching = 1; function smarty_block_dynamic($param, $content, &$smarty) { return $content; } $smarty->register_block('dynamic', 'smarty_block_dynamic', false); $smarty->display('index.tpl'); ?> ]]> </programlisting> <para> where <filename>index.tpl</filename> is: </para> <programlisting> <![CDATA[ Page created: {'0'|date_format:'%D %H:%M:%S'} {dynamic} Now is: {'0'|date_format:'%D %H:%M:%S'} .... do other stuff ... {/dynamic} ]]> </programlisting> </example> <para> Ketika mengambil ulang halaman, anda akan mencatat bahwa kedua tanggal berbeda. Satu <quote>dynamis</quote> dan satu <quote>statis</quote>. Anda dapat melakukan apapun antara <literal>{dynamic}...{/dynamic}</literal> dan pastikan ia tidak akan di-cache seperti bagian halaman lainnya. </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/caching/caching-groups.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-groups.xml +++ smarty/docs/id/programmers/caching/caching-groups.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.groups"> <title>Grup Cache</title> <para> Anda dapat melakukan pengelompokan elaborasi dengan menyiapkan grup <parameter>$cache_id</parameter>. Ini dilakukan dengan memisahkan setiap sub-grup dengan bar vertikal <literal>|</literal> dalam nilai <parameter>$cache_id</parameter>. Anda bisas memiliki sebanyak-banyaknya sub-grup yang anda inginkan. </para> <itemizedlist> <listitem><para> Anda bisa membayangkan grup cache seperti hirarki direktori. Sebagai contoh, grup cache <literal>'a|b|c'</literal> bisa dibayangkan sebagai struktur direktori <literal>'/a/b/c/'</literal>. </para></listitem> <listitem><para> <literal>clear_cache(null,'a|b|c')</literal> akan seperti menghapus file <literal>'/a/b/c/*'</literal>. <literal>clear_cache(null,'a|b')</literal> akan seperti menghapus file <literal>'/a/b/*'</literal>. </para></listitem> <listitem><para> Jika anda menetapkan <link linkend="variable.compile.id"><parameter>$compile_id</parameter></link> seperti <literal>clear_cache(null,'a|b','foo')</literal> ini diperlakukan sebagai grup cache yang ditambahkan <literal>'/a/b/c/foo/'</literal>. </para></listitem> <listitem><para> Jika anda menetapkan nama template seperti <literal>clear_cache('foo.tpl','a|b|c')</literal> maka Smarty akan mencoba untuk menghapus <literal>'/a/b/c/foo.tpl'</literal>. </para></listitem> <listitem><para> Anda TIDAK BISA menghapus nama template yang ditetapkan di bawah multipel grup cache seperti <literal>'/a/b/*/foo.tpl'</literal>, pengelompokan cache HANYA bekerja dari kiri-ke-kanan. Anda perlu mengelompokan template anda di bawah satu hirarki grup cache agar bisa membersihkannya sebagai sebuah grup. </para></listitem> </itemizedlist> <para> Pengelompokan cache seharusnya tidak dibingungkan dengan hirarki direktori template anda, pengelompokan cache tidak mengetahui bagaiman template anda dibentuk. Maka sebagai contoh, jika anda mempunyai struktur template seperti <filename>themes/blue/index.tpl</filename> dan anda ingin bisa membersihkan seluruh file cache untuk tema <quote>blue</quote>, anda perlu membuat struktur grup cache yang meniru struktur file template, seperti <literal>display('themes/blue/index.tpl','themes|blue')</literal>, lalu membersihkannya dengan <literal>clear_cache(null,'themes|blue')</literal>. </para> <example> <title>$cache_id groups</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = true; // membersihkan semua cache dengan 'sports|basketball' sebagai dua grup cache_id pertama $smarty->clear_cache(null,'sports|basketball'); // bersihkan semua cache dengan "sports" sebagai grup cache_id pertama. Ini akan // menyertakan "sports|basketball", atau "sports|(anything)|(anything)|(anything)|..." $smarty->clear_cache(null,'sports'); // bersihkan file cache foo.tpl dengan "sports|basketball" sebagai cache_id $smarty->clear_cache('foo.tpl','sports|basketball'); $smarty->display('index.tpl','sports|basketball'); ?> ]]> </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/caching/caching-multiple-caches.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-multiple-caches.xml +++ smarty/docs/id/programmers/caching/caching-multiple-caches.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.multiple.caches"> <title>Multipel Caches Per Halaman</title> <para> Anda dapat memiliki multipel file cache untuk satu panggilan ke <link linkend="api.display"><varname>display()</varname></link> atau <link linkend="api.fetch"><varname>fetch()</varname></link>. Katakanlah sebuah panggilan ke <literal>display('index.tpl')</literal> memiliki beberapa konten output berbeda tergantung dari beberapa kondisi, dan anda ingin memisahkan cache masing-masing. Anda bisa melakukan ini dengan mengirimkan <parameter>$cache_id</parameter> sebagai parameter kedua ke fungsi panggil. </para> <example> <title>Mengirimkan $cache_id untuk display()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $my_cache_id = $_GET['article_id']; $smarty->display('index.tpl', $my_cache_id); ?> ]]> </programlisting> </example> <para> Di atas, kita mengirimkan variabel <literal>$my_cache_id</literal> ke <link linkend="api.display"><varname>display()</varname></link> sebagai <parameter>$cache_id</parameter>. Untuk setiap nilai unik dari <literal>$my_cache_id</literal>, cache terpisah akan dibuat untuk <filename>index.tpl</filename>. Dalam contoh ini, <literal>article_id</literal> dikirimpan dalam URL dan digunakan sebagai <parameter>$cache_id</parameter>. </para> <note> <title>Catatan Teknis</title> <para> Harap berhati-hati saat mengirimkan nilai dari klien (web browser) ke dalam Smarty atau setiap aplikasi PHP. Meskipun contoh di atas menggunakan article_id dari URL terlihat mudah, ia dapat menimbulkan konsekuensi yang buruk. <parameter>$cache_id</parameter> dipakai untuk membuat direktori pada sistem file, maka jika pengguna memutuskan untuk mengirimkan nilai yang sangat besar untuk article_id, atau menulis naskah yang mengirimkan article_id acak dengan kecepatan tinggi, ini mungkin dapat menimbulkan masalah di tingkat server. Pastikan mengamankan setiap data yang dikirimkan sebelum menggunakannya. Dalam contoh ini, mungkin anda mengetahui article_id memiliki panjang sepuluh karakter dan hanya terdiri dari alfa-numerik, dan harus article_id yang benar dalam database. Periksa hal ini! </para> </note> <para> Pastikan untuk mengirimkan <parameter>$cache_id</parameter> yang sama sebagai parameter kedua ke <link linkend="api.is.cached"><varname>is_cached()</varname></link> dan <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Mengirimkan cache_id ke is_cached()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $my_cache_id = $_GET['article_id']; if(!$smarty->is_cached('index.tpl',$my_cache_id)) { // Cache tidak tersedia, lakukan penempatan variabel di sini. $contents = get_database_contents(); $smarty->assign($contents); } $smarty->display('index.tpl',$my_cache_id); ?> ]]> </programlisting> </example> <para> Anda bisa membersihkan semua cache untul <parameter>$cache_id</parameter> tertentu dengan mengirimkan &null; sebagai parameter kedua ke <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Membersihkan semua cache untuk $cache_id tertentu</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; // bersihkan semua cache dengan "sports" sebagai $cache_id $smarty->clear_cache(null,'sports'); $smarty->display('index.tpl','sports'); ?> ]]> </programlisting> </example> <para> Dengan cara ini, anda bisa <quote>mengelompokan</quote> cache anda bersama dengan memberikannya <parameter>$cache_id</parameter> yang sama. </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/caching/caching-setting-up.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/caching/caching-setting-up.xml +++ smarty/docs/id/programmers/caching/caching-setting-up.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="caching.setting.up"> <title>Menyiapkan Cache</title> <para> Hal pertama yang dilakukan adalah menghidupkan cache dengan menyetel <link linkend="variable.caching"> <parameter>$caching</parameter></link><literal> = 1 (atau 2)</literal>. </para> <example> <title>Menghidupkan cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Dengan menghidupkan cache, fungsi panggil ke <literal>display('index.tpl')</literal> akan membuat template seperti biasa, tapi juga menyimpan duplikat dari outputnya ke sebuah file (duplikat cache) dalam <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>. Panggilan berikutnya ke <literal>display('index.tpl')</literal>, duplikat cache akan dipakai daripada membuat template kembali. </para> <note> <title>Catatan Teknis</title> <para> File dalam <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link> diberi nama mirip dengan nama template. Meskipun berakhir dalam ekstensi <filename>.php</filename>, ini tidak dimaksudkan dijalankan secara langsung. Jangan edit file ini! </para> </note> <para> Setiap halaman yang di-cache memiliki batasan usia yang ditentukan oleh <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>. Nilai standarnya adalah 3600 detik atau satu jam. Setelah itu waktu berakhir, cache dibuat ulang. Dimungkinkan untuk memberikan cache individual memiliki waktu berakhirnya dengan menyetel <link linkend="variable.caching"><parameter>$caching</parameter></link><literal>=2</literal>. Lihat <link linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> untuk lebih jelasnya. </para> <example> <title>Menyetel $cache_lifetime per cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 2; // usia per cache // set cache_lifetime untuk index.tpl ke 5 menit $smarty->cache_lifetime = 300; $smarty->display('index.tpl'); // set cache_lifetime untuk home.tpl ke 1 jam $smarty->cache_lifetime = 3600; $smarty->display('home.tpl'); // CATATAN: setelan $cache_lifetime berikut tidak akan bekerja saat $caching = 2. // Usia cache untuk home.tpl sudah disetel ke 1 jam, dan tidak akan memperhatikan // nilai lagi $cache_lifetime. // Cache home.tpl masih akan berakhir setelah 1 jam. $smarty->cache_lifetime = 30; // 30 seconds $smarty->display('home.tpl'); ?> ]]> </programlisting> </example> <para> Jika <link linkend="variable.compile.check"> <parameter>$compile_check</parameter></link> dihidupkan, setiap file template dan file config yang terkait dengan file cache diperiksa modifikasinya. Jika setiap file sudah dimodifikasi sejak cache dibuat, cache segera dibuat ulang. Ini adalah beban kecil untuk performansi optimal, set <link linkend="variable.compile.check"><parameter>$compile_check</parameter> </link> ke &false;. </para> <example> <title>Menghidupkan $compile_check</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->compile_check = true; $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Jika <link linkend="variable.force.compile"> <parameter>$force_compile</parameter></link> dihidupkan, file cache akan selalu dibuat. Ini efektif mematikan cache. <link linkend="variable.force.compile"><parameter>$force_compile</parameter> </link> biasanya hanya untuk keperluan <link linkend="chapter.debugging.console">debugging</link>, cara yang lebih efisien mematikan cache adalah menyetel <link linkend="variable.caching"><parameter>$caching</parameter> </link><literal> = 0</literal>. </para> <para> Fungsi <link linkend="api.is.cached"><varname>is_cached()</varname></link> dapat digunakan untuk menguji jika template memiliki cache yang benar atau tidak. Jika anda memiliki template yang di-cache yang memerlukan hal seperti pengambilan database, anda bisa menggunakan ini untuk melewati proses itu. </para> <example> <title>Menggunakan is_cached()</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; if(!$smarty->is_cached('index.tpl')) { // Cache tidak tersedia, lakukan penempatan variabel di sini. $contents = get_database_contents(); $smarty->assign($contents); } $smarty->display('index.tpl'); ?> ]]> </programlisting> </example> <para> Anda dapat memelihara bagian halaman dinamis dengan fungsi template <link linkend="language.function.insert"><varname>{insert}</varname></link>. Katakanlah seluruh halaman dapat di-cache kecuali untuk iklan yang ditampilkan di bawah halaman. Dengan menggunakan fungsi <link linkend="language.function.insert"><varname>{insert}</varname></link> untuk iklan, anda bisa memelihara elemen ini dinamis dalam konten yang di-cache. Lihat dokumentasi pada <link linkend="language.function.insert"><varname>{insert}</varname></link> untuk lebih jelas dan contohnya. </para> <para> Anda bisa membersihkan semua file cache dengan fungsi<link linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>, atau file cache individual <link linkend="caching.groups">dan grup</link> dengan fungsi <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>. </para> <example> <title>Membersihkan cache</title> <programlisting role="php"> <![CDATA[ <?php require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; // bersihkan hanya cache untuk index.tpl $smarty->clear_cache('index.tpl'); // bersihkan semua file cache $smarty->clear_all_cache(); $smarty->display('index.tpl'); ?> ]]> </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/plugins/plugins-block-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-block-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-block-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.block.functions"><title>Fungsi Blok</title> <funcsynopsis> <funcprototype> <funcdef>void <function>smarty_block_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>mixed <parameter>$content</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> <paramdef>boolean <parameter>&$repeat</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Fungsi blok adalah fungsi dari bentuk: <literal>{func} .. {/func}</literal>. Dengan kata lain, ia ditutupi blok template dan beroperasi pada isi dari blok ini. Fungsi blok mendahului <link linkend="language.custom.functions">fungsi kustom</link> pada nama yang sama, yaitu anda tidak bisa mempunyai kedua fungsi kustom <literal>{func}</literal> dan fungsi blok <literal>{func}..{/func}</literal>. </para> <itemizedlist> <listitem><para> Standarnya implementasi fungsi anda dipanggil dua kali oleh Smarty: sekali untuk membuka tag, dan sekali untuk meneutup tag. (Lihat <literal>$repeat</literal> di bawah untuk bagaimana mengubah ini.) </para></listitem> <listitem><para> Hanya tag terbuka terhadap fungsi blok boleh memiliki <link linkend="language.syntax.attributes">atribut</link>. Semua atribut dikirimkan ke fungsi template dari template diisikan dalam variabel <parameter>$params</parameter> sebagai array asosiatif. Atribut tag terbuka juga dapat diakses oleh fungsi anda saat memproses tag penutup. </para></listitem> <listitem><para> Nilai variabel <parameter>$content</parameter> tergantung pada apakah fungsi anda dipanggil untuk membuka atau menutup tag. Dalam hal membuka tag, ia akan menjadi &null;, dan dalam hal menutup tag ia akan menjadi isi dari blok template. Catatan bahwa blok template sudah diproses oleh Smarty, semua yang akan anda terima adalah output template, bukan sumber template. </para></listitem> <listitem><para> Parameter <parameter>$repeat</parameter> dikirimkan dengan referensi ke implementasi fungsi dan menyediakan sebuah kemungkinan untuk mengontrol berapa kali blok ditampilkan. Standarnya <parameter>$repeat</parameter> adalah &true; pada panggilan pertama fungsi-blok(tag pembuka) dan and &false; pada panggilan berikutnya ke fungsi blok (tag penutup blok). Setiap kali implementasi fungsi kembali dengan <parameter>$repeat</parameter> menjadi &true;, isi antara <literal>{func}...{/func}</literal> dievaluasi dan implementasi fungsi dipanggil lagi dengan isi blok baru dalam parameter <parameter>$content</parameter>. </para></listitem> </itemizedlist> <para> Jika anda mempunyai fungsi blok berulang, dimungkinkan untuk mencari fungsi blok leluhur apa dengan mengakses variabel <literal>$smarty->_tag_stack</literal>. Cukup lakukan <ulink url="&url.php-manual;var_dump"><varname>var_dump()</varname></ulink> padanya dan struktur menjadi terlihat. </para> <example> <title>fungsi blok</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: block.translate.php * Type: block * Name: translate * Purpose: translate a block of text * ------------------------------------------------------------- */ function smarty_block_translate($params, $content, &$smarty, &$repeat) { // hanya output pada tag penutup if(!$repeat){ if (isset($content)) { $lang = $params['lang']; // lakukan beberapa terjemahan puntar di sini dengan $content return $translation; } } } ?> ]]> </programlisting> </example> <para> Lihat juga: <link linkend="api.register.block"><varname>register_block()</varname></link>, <link linkend="api.unregister.block"><varname>unregister_block()</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/plugins/plugins-compiler-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-compiler-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-compiler-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.compiler.functions"><title>Fungsi Kompilator</title> <para> Fungsi kompilator dipanggil hanya selama kompilasi template. Ini berguna untuk menginjeksi kode PHP atau isi statis sensitif-waktu ke dalam template. Jika ada kedua fungsi kompilator dan <link linkend="language.custom.functions">fungsi kustom</link> terdaftar dengan nama sama, fungsi kompilator yang lebih tinggi. </para> <funcsynopsis> <funcprototype> <funcdef>mixed <function>smarty_compiler_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$tag_arg</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Fungsi kompilator diberi dua parameter: argumen string tag - pada dasarnya, apapun dari nama fungsi sampai akhir pemisah, dan obyek Smarty. Ia seharusnya mengembalikan kode PHP yang disisipkan ke dalam template terkompilasi. </para> <example> <title>Fungsi kompilator sederhana</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: compiler.tplheader.php * Tipe: kompilator * Nama: tplheader * Kegunaan: Output header berisi nama file sumber dan waktu * dikompilasinya. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($tag_arg, &$smarty) { return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';"; } ?> ]]> </programlisting> <para> Fungsi ini dipanggil dari template sebagai: </para> <programlisting> <![CDATA[ {* fungsi ini dijalankan hanya saat waktu kompilasi *} {tplheader} ]]> </programlisting> <para> Kode PHP yang dihasilkan dalam template terkompilasi akan menjadi seperti ini: </para> <programlisting role="php"> <![CDATA[ <?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.compiler.function"> <varname>register_compiler_function()</varname></link>, <link linkend="api.unregister.compiler.function"> <varname>unregister_compiler_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/programmers/plugins/plugins-functions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-functions.xml +++ smarty/docs/id/programmers/plugins/plugins-functions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.functions"><title>Fungsi Template</title> <funcsynopsis> <funcprototype> <funcdef>void <function>smarty_function_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Semua <link linkend="language.syntax.attributes">atribut</link> yang dikirimkan ke fungsi template dari template yang berisi <parameter>$params</parameter> sebagai array asosiatif. </para> <para> Output (nilai hasil) atas fungsi akan diganti di tempat tag fungsi dalam template, misalnya fungsi <link linkend="language.f unction.fetch"><varname>{fetch}</varname></link>. Alternatif lain, fungsi bisa hanya melakukan beberapa tugas tanpa output apapun, misalnya fugnsi <link linkend="language.function.assign"> <varname>{assign}</varname></link>. </para> <para> Jika fungsi perlu menempatkan beberapa variabel ke template atau gunakan beberapa fungsionalitas lain yang disediakan-Smarty, ini dapat menggunakan obyek <parameter>$smarty</parameter> yang disertakan untuk melakukannya misaslnya <literal>$smarty->foo()</literal>. </para> <para> <example> <title>plugin fungsi dengan output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.eightball.php * Tipe: fungsi * Nama: eightball * Kegunaan: menampilkan jawaban acak magis * ------------------------------------------------------------- */ function smarty_function_eightball($params, &$smarty) { $answers = array('Yes', 'No', 'No way', 'Outlook not so good', 'Ask again soon', 'Maybe in your reality'); $result = array_rand($answers); return $answers[$result]; } ?> ]]> </programlisting> </example> </para> <para> yang dapat digunakan dalam template sebagai: </para> <programlisting> Question: Will we ever have time travel? Answer: {eightball}. </programlisting> <para> <example> <title>plugin fungsi tanpa output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: function.assign.php * Tipe: fungsi * Nama: assign * Kegunaan: menempatkan nilai ke varabel template * ------------------------------------------------------------- */ function smarty_function_assign($params, &$smarty) { if (empty($params['var'])) { $smarty->trigger_error("assign: missing 'var' parameter"); return; } if (!in_array('value', array_keys($params))) { $smarty->trigger_error("assign: missing 'value' parameter"); return; } $smarty->assign($params['var'], $params['value']); } ?> ]]> </programlisting> </example> </para> <para> Lihat juga: <link linkend="api.register.function"><varname>register_function()</varname></link>, <link linkend="api.unregister.function"><varname>unregister_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/programmers/plugins/plugins-howto.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-howto.xml +++ smarty/docs/id/programmers/plugins/plugins-howto.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.howto"> <title>Bagaimana Plugin Bekerja</title> <para> Plugin selalu diambil saat dibutuhkan. Hanya pengubah tertentu, fungsi, sumber daya, dll yang diminta dalam naskah template akan diambil. Selanjutnya, setiap plugin diambil hanya sekali, meskipun anda mempunyai beberapa turunan Smarty yang berjalan dalam permintaan yang sama. </para> <para> Pre/postfilters dan filter output sedikit dari hal khusus. Karena tidak disetbutkan dalam template, ini harus didaftarkan atau diambil secara eksplisit melalui fungis API sebelum template diproses. Urutan di mana multipel filter dengan tipe sama dijalankan tergantung pada urutan di mana ia didaftarkan atau diambil. </para> <para> <link linkend="variable.plugins.dir">Direktori plugin</link> dapat berupa string yang berisi path atau array yang berisi multipel path. Untuk menginstalasi sebuah plugin, cukup tempatkan dalam salah satu direktori dan Smarty akan menggunakannya secara otomatis. </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/plugins/plugins-inserts.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-inserts.xml +++ smarty/docs/id/programmers/plugins/plugins-inserts.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.inserts"><title>Inserts</title> <para> Plugin insert dipakai untuk mengimplementasikan fungsi yang diminta oleh tag <link linkend="language.function.insert"><varname>{insert}</varname></link> dalam template. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_insert_<replaceable>name</replaceable></function></funcdef> <paramdef>array <parameter>$params</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama ke fungsi adalah array asosiatif dari atribut yang dikirimkan ke insert. </para> <para> Fungsi insert seharusnya mengembalikan hasil yang akan di tempatkan pada tag <varname>{insert}</varname> dalam template. </para> <example> <title>plugin insert</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: insert.time.php * Tipe: time * Nama: time * Kegunaan: Menyisipkan tanggak/jam saat ini berdasarkan format * ------------------------------------------------------------- */ function smarty_insert_time($params, &$smarty) { if (empty($params['format'])) { $smarty->trigger_error("insert time: missing 'format' parameter"); return; } return strftime($params['format']); } ?> ]]> </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/plugins/plugins-modifiers.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-modifiers.xml +++ smarty/docs/id/programmers/plugins/plugins-modifiers.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.modifiers"><title>Pengubah</title> <para> <link linkend="language.modifiers">Pengubah</link> adalah fungsi kecil yang diterapkan ke variabel dalam template sebelum ia ditampilkan atau digunakan dalam beberapa konteks lain. Pengubah dapat dirangkai bersama. </para> <funcsynopsis> <funcprototype> <funcdef>mixed <function>smarty_modifier_<replaceable>name</replaceable></function></funcdef> <paramdef>mixed <parameter>$value</parameter></paramdef> <paramdef>[mixed <parameter>$param1</parameter>, ...]</paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama pada plugin pengubah adalah nilai di mana pengubah beroperasi. Parameter sisanya adalah opsional, tergantung pada jenis operasi apa yang dilakukan. </para> <para> Pengubah harus <ulink url="&url.php-manual;return">mengembalikan</ulink> hasil dari prosesnya. </para> <example> <title>Plugin pengubah sederhana</title> <para> Plugin ini pada dasarnya alias dari salah satu fungsi built-in PHP. Ini tidak mempunyai parameter tambahan. </para> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.capitalize.php * Tipe: pengubah * Nama: capitalize * Kegunaan: membesarkan kata dalam string * ------------------------------------------------------------- */ function smarty_modifier_capitalize($string) { return ucwords($string); } ?> ]]> </programlisting> </example> <para></para> <example> <title>Plugin pengubah lebih kompleks</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: modifier.truncate.php * Tipe: pengubah * Nama: truncate * Kegunaan: Potong string ke panjang tertentu bila perlu, * secara opsional memisahkan di tengah kata, dan * menambahkan string $etc. * ------------------------------------------------------------- */ function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false) { if ($length == 0) return ''; if (strlen($string) > $length) { $length -= strlen($etc); $fragment = substr($string, 0, $length+1); if ($break_words) $fragment = substr($fragment, 0, -1); else $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); return $fragment.$etc; } else return $string; } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.modifier"><varname>register_modifier()</varname></link>, <link linkend="api.unregister.modifier"><varname>unregister_modifier()</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/plugins/plugins-naming-conventions.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-naming-conventions.xml +++ smarty/docs/id/programmers/plugins/plugins-naming-conventions.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.naming.conventions"> <title>Konvensi Penamaan</title> <para> File plugin dan fungsi harus mengikuti konvensi penamaan khusus agar dapat ditempatkan oleh Smarty. </para> <para> <emphasis role="bold">file plugin</emphasis> harus dinamai sebagai berikut: <blockquote> <para> <filename> <replaceable>type</replaceable>.<replaceable>name</replaceable>.php </filename> </para> </blockquote> </para> <itemizedlist> <listitem><para> Di mana <literal>type</literal> salah satu tipe plugin ini: <itemizedlist spacing="compact"> <listitem><simpara>function</simpara></listitem> <listitem><simpara>modifier</simpara></listitem> <listitem><simpara>block</simpara></listitem> <listitem><simpara>compiler</simpara></listitem> <listitem><simpara>prefilter</simpara></listitem> <listitem><simpara>postfilter</simpara></listitem> <listitem><simpara>outputfilter</simpara></listitem> <listitem><simpara>resource</simpara></listitem> <listitem><simpara>insert</simpara></listitem> </itemizedlist> </para> </listitem> <listitem><para> Dan <literal>name</literal> harus pengenal yang benar; huruf, angka, dan hanya garis bawah, lihat <ulink url="&url.php-manual;language.variables">variabel php</ulink>. </para></listitem> <listitem><para> Beberapa contoh: <filename>function.html_select_date.php</filename>, <filename>resource.db.php</filename>, <filename>modifier.spacify.php</filename>. </para> </listitem> </itemizedlist> <para> <emphasis role="bold">fungsi plugin</emphasis> di dalam file PHP harus dinamai sebagai berikut: <blockquote> <para> <function>smarty_<replaceable>type</replaceable>_<replaceable>name</replaceable></function> </para> </blockquote> </para> <itemizedlist> <listitem><para> Arti dari <literal>type</literal> dan <literal>name</literal> sama seperti di atas. </para></listitem> <listitem><para> Contoh nama pengubah <varname>foo</varname> akan menjadi <literal>function smarty_modifier_foo()</literal>. </para></listitem> </itemizedlist> <para> Smarty akan menampilkan pesan kesalahan terkait jika file plugin yang dibutuhkan tidak ditemukan, atau jika file atau fungsi plugin dinamai secara tidak benar. </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/plugins/plugins-outputfilters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-outputfilters.xml +++ smarty/docs/id/programmers/plugins/plugins-outputfilters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.outputfilters"><title>Filter Output</title> <para> Plugin filter output beroperasi pada output template, setelah template diambil dan dijalankan, tapi sebelum output ditampilkan. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_outputfilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$template_output</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Parameter pertama pada fungsi filter output adalah output template yang perlu diproses, dan parameter kedua adalah turunan dari Smarty yang meminta plugin. Plugin seharusnya melakukan proses dan mengembalikan hasilnya. </para> <example> <title>Plugin filter output</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: outputfilter.protect_email.php * Tipe: outputfilter * Nama: protect_email * Kegunaan: Mengubah tanda @ dalam alamat email menjadi %40 * sebagai proteksi sedarhana terhadap spambots * ------------------------------------------------------------- */ function smarty_outputfilter_protect_email($output, &$smarty) { return preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $output); } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.outputfilter"> <varname>register_outputfilter()</varname></link>, <link linkend="api.unregister.outputfilter"> <varname>unregister_outputfilter()</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/plugins/plugins-prefilters-postfilters.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-prefilters-postfilters.xml +++ smarty/docs/id/programmers/plugins/plugins-prefilters-postfilters.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.prefilters.postfilters"> <title>Prefilters/Postfilters</title> <para> Plugin prefilter dan postfilter sangat mirip dalam konsep; di mana keduanya berbeda dalam eksekusi -- lebih tepatnya waktu eksekusinya. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_prefilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$source</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Prefilters dipakai untuk memproses sumber template segera sebelum kompilasi. Parameter pertama ke fungsi prefilter adalah sumber template, kemungkinan diubah oleh beberapa prefilters lain. Plugin seharusnya mengembalikan sumber yang diubah. Catatan bahwa sumber ini tidak disimpan di mana pun, hanya dipakai untuk kompilasi. </para> <funcsynopsis> <funcprototype> <funcdef>string <function>smarty_postfilter_<replaceable>name</replaceable></function></funcdef> <paramdef>string <parameter>$compiled</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <para> Postfilters dipakai untuk memproses output terkompilasi dari template (kode PHP) segera setelah kompilasi dikerjakan sebelum template terkompilasi disimpan ke sistem file. Parameter pertama ke fungsi postfilter adalah kode template terkompilasi, kemungkinan diubah oleh postfilters lainnya. Plugin seharusnya mengembalikan versi yang diubah atas kode ini. </para> <example> <title>plugin prefilter</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: prefilter.pre01.php * Tipe: prefilter * Nama: pre01 * Kegunaan: Mengubah tag html ke huruf kecil. * ------------------------------------------------------------- */ function smarty_prefilter_pre01($source, &$smarty) { return preg_replace('!<(\w+)[^>]+>!e', 'strtolower("$1")', $source); } ?> ]]> </programlisting> </example> <para></para> <example> <title>plugin postfilter</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: postfilter.post01.php * Tipe: postfilter * Nama: post01 * Kegunaan: Kode output yang mendaftarkan semua var template saat * ini. * ------------------------------------------------------------- */ function smarty_postfilter_post01($compiled, &$smarty) { $compiled = "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" . $compiled; return $compiled; } ?> ]]> </programlisting> </example> <para> Lihat juga <link linkend="api.register.prefilter"> <varname>register_prefilter()</varname></link>, <link linkend="api.unregister.prefilter"> <varname>unregister_prefilter()</varname></link> <link linkend="api.register.postfilter"> <varname>register_postfilter()</varname></link>, <link linkend="api.unregister.postfilter"> <varname>unregister_postfilter()</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/plugins/plugins-resources.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-resources.xml +++ smarty/docs/id/programmers/plugins/plugins-resources.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.resources"><title>Sumber daya</title> <para> Plugin sumber daya diartikan sebagai cara umum atas penyediaan sumber template atau komponen naskah PHP untuk Smarty. Beberapa contoh sumber daya: database, LDAP, memori berbagi, soket, dan seterusnya. </para> <para> Ada empat fungsi yang perlu didaftarkan untuk setiap tipe sumber daya. Setiap fungsi akan menerima sumber daya yang diminta sebagai paramneter pertama dan obyek Smarty sebagai parameter terkahir. Parameter sisanya tergantung pada fungsi. </para> <funcsynopsis> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_source</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>&$source</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_timestamp</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>int <parameter>&$timestamp</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_secure</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_trusted</function></funcdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>object <parameter>&$smarty</parameter></paramdef> </funcprototype> </funcsynopsis> <itemizedlist> <listitem><para> Fungsi pertama, <literal>source()</literal> is supposed to retrieve the resource. Its second parameter <parameter>$source</parameter> is a variable passed by reference where the result should be stored. The function is supposed to return &true; if it was able to successfully retrieve the resource and &false; otherwise. </para></listitem> <listitem><para> Fungsi kedua, <literal>timestamp()</literal> is supposed to retrieve the last modification time of the requested resource, as a UNIX timestamp. The second parameter <parameter>$timestamp</parameter> is a variable passed by reference where the timestamp should be stored. The function is supposed to return &true; if the timestamp could be succesfully determined, or &false; otherwise. </para></listitem> <listitem><para> Fungsi ketiga, <literal>secure()</literal>is supposed to return &true; or &false;, depending on whether the requested resource is secure or not. This function is used only for template resources but should still be defined. </para></listitem> <listitem><para> Fungsi keempat, <literal>trusted()</literal> seharusnya mengembalikan &true; atau &false;, tergantung pada apakah sumber daya yang diminta dipercaya atau tidak. Fungsi ini dipakai hanya untuk komponen naskah PHP yang diminta oleh tag <link linkend="language.function.include.php"> <varname>{include_php}</varname></link> atau tag <link linkend="language.function.insert"><varname>{insert}</varname></link> dengan atribut <parameter>src</parameter>. Akan tetapi, ini masih harus didefinisikan meskipun untuk sumber daya template. </para></listitem> </itemizedlist> <example> <title>plugin sumber daya</title> <programlisting role="php"> <![CDATA[ <?php /* * Smarty plugin * ------------------------------------------------------------- * File: resource.db.php * Tipe: sumber daya * Nama: db * Kegunaan: Mengambil template dari database * ------------------------------------------------------------- */ function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty) { // lakukan pemanggilan database di sini untuk mengambil template anda, // mempopulasikan $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 smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) { // lakukan 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 smarty_resource_db_secure($tpl_name, &$smarty) { // menganggap semua template aman return true; } function smarty_resource_db_trusted($tpl_name, &$smarty) { // tidak dipakai untuk template } ?> ]]> </programlisting> </example> <para> LIhat juga <link linkend="api.register.resource"><varname>register_resource()</varname></link>, <link linkend="api.unregister.resource"><varname>unregister_resource()</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/plugins/plugins-writing.xml?view=markup&rev=1.1 Index: smarty/docs/id/programmers/plugins/plugins-writing.xml +++ smarty/docs/id/programmers/plugins/plugins-writing.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <sect1 id="plugins.writing"> <title>Menulis Plugin</title> <para> Plugin dapat diambil baik oleh Smarty secara otomatis dari sistem file ataupun didaftarkan saat runtime via salah satu fungsi API register_*. Juga dapat dibatalkan registrasinya dengan menggunakan fungsi API unregister_*. </para> <para> Untuk plugin yang terdaftar saat runtime, nama fungsi plugin tidak harus mengikuti konvensi penamaan. </para> <para> Jika sebuah plugin tergantung pada beberapa fungsionalitas yang disediakan oleh plugin lainnya (seperti dengan beberapa plugin yang dibundel dengan Smarty), maka cara yang benar untuk mengambil plugin yang dibutuhkan ialah: </para> <programlisting role="php"> <![CDATA[ <?php require_once $smarty->_get_plugin_filepath('function', 'html_options'); ?> ]]> </programlisting> <para> Sebagai aturan umum, obyek Smarty selalu dikirimkan ke plugin sebagai parameter terakhir dengan dua kekecualian: </para> <itemizedlist> <listitem><para> pengubah tidak mendapatkan obyek Smarty sama sekali </para></listitem> <listitem><para> blok mendapatkan kirim <parameter>$repeat</parameter> setelah obyek Smarty untuk memelihara kompatibilitas mundur dengan versi Smarty sebelumnya. </para></listitem> </itemizedlist> </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 -->