diff options
author | kabayan <> | 2007-08-29 21:40:38 +0000 |
---|---|---|
committer | kabayan <> | 2007-08-29 21:40:38 +0000 |
commit | c2ca39d96c2320b7dd0433b303d1e778df1edc29 (patch) | |
tree | eb52de23f47b86ad3f0cecf8189df495dd30fdb9 | |
parent | 99860b74cb951aaf04b560466f99f422fb30f572 (diff) |
Indonesian, added TCaptcha control and correction on typos
12 files changed, 581 insertions, 6 deletions
diff --git a/.gitattributes b/.gitattributes index ccaebf65..db68075b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1269,6 +1269,13 @@ demos/quickstart/protected/pages/Configurations/Templates1.page -text demos/quickstart/protected/pages/Configurations/Templates2.page -text demos/quickstart/protected/pages/Configurations/Templates3.page -text demos/quickstart/protected/pages/Configurations/UrlMapping.page -text +demos/quickstart/protected/pages/Configurations/id/AppConfig.page -text +demos/quickstart/protected/pages/Configurations/id/Overview.page -text +demos/quickstart/protected/pages/Configurations/id/PageConfig.page -text +demos/quickstart/protected/pages/Configurations/id/Templates1.page -text +demos/quickstart/protected/pages/Configurations/id/Templates2.page -text +demos/quickstart/protected/pages/Configurations/id/Templates3.page -text +demos/quickstart/protected/pages/Configurations/id/UrlMapping.page -text demos/quickstart/protected/pages/Construction.page -text demos/quickstart/protected/pages/Controls/Button.page -text demos/quickstart/protected/pages/Controls/Captcha.page -text @@ -1442,6 +1449,7 @@ demos/quickstart/protected/pages/Controls/TextHighlighter.page -text demos/quickstart/protected/pages/Controls/Validation.page -text demos/quickstart/protected/pages/Controls/Wizard.page -text demos/quickstart/protected/pages/Controls/id/Button.page -text +demos/quickstart/protected/pages/Controls/id/Captcha.page -text demos/quickstart/protected/pages/Controls/id/CheckBox.page -text demos/quickstart/protected/pages/Controls/id/ClientScript.page -text demos/quickstart/protected/pages/Controls/id/ClientScriptLoader.page -text diff --git a/demos/quickstart/protected/pages/Configurations/id/AppConfig.page b/demos/quickstart/protected/pages/Configurations/id/AppConfig.page new file mode 100644 index 00000000..674c4fac --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/AppConfig.page @@ -0,0 +1,59 @@ +<com:TContent ID="body" >
+
+<h1 id="1801">Konfigurasi Aplikasi</h1>
+<p id="210213" class="block-content">
+Konfigurasi aplikasi digunakan untuk menetapkan pperilaku global atas aplikasi. Ini terrmasuk spesifikasi alias path, pemakaian namespace, konfigurasi modul dan dan layanan, serta parameter.
+</p>
+<p id="210214" class="block-content">
+Konfigurasi untuk aplikasi disimpan dalam sebuah file XML bernama <tt>application.xml</tt>, yang harus ditempatkan di bawah path basis aplikasi. Formatnya ditampilkan berikut ini. Spesifikasi lengkap dari konfigurasi aplikasi dapat ditemukan dalam file <a href="<%~../../../../../../docs/specs/application.dtd%>">DTD</a> dan <a href="<%~../../../../../../docs/specs/application.xsd%>">XSD</a>.
+</p>
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_210095">
+<application PropertyName="PropertyValue" ...>
+ <paths>
+ <alias id="AliasID" path="AliasPath" />
+ <using namespace="Namespace" />
+ </paths>
+ <modules>
+ <module id="ModuleID" class="ModuleClass" PropertyName="PropertyValue" ... />
+ </modules>
+ <parameters>
+ <parameter id="ParameterID" class="ParameterClass" PropertyName="PropertyValue" ... />
+ </parameters>
+ <include file="path.to.extconfig" when="PHP expression" />
+ <services>
+ <service id="ServiceID" class="ServiceClass" PropertyName="PropertyValue" ... />
+ </services>
+</application>
+</com:TTextHighlighter>
+
+<ul id="u1" class="block-content">
+
+<li>Elemen paling luar <tt><application></tt> berkaitan dengan turunan <tt>TApplication</tt>. Pasangan <tt>PropertyName="PropertyValue"</tt> menetapkan nilai awal untuk properti <tt>TApplication</tt>.</li>
+
+<li>Elemen <tt><paths></tt> berisi definisi alias path dan path penyertaan PHP untuk aplikasi. Setiap alias path ditetapkan melalui <tt><alias></tt> yang mana atribut <tt>path</tt> mengambil path absolut atau path relatif ke direktori yang berisi file konfigurasi aplikasi. Elemen <tt><using></tt> menetapkan path tertentu (dalam batasan namespace) akan ditambahkan ke path include PHP saat aplikasi dijalankan. PRADO mendefinisikan dua alias standar: <tt>System</tt> dan <tt>Application</tt>. Pembentuk merujuk ke direktori akar framework PRADO, dan yang terakhir merujuk ke direktori berisi file konfigurasi aplikasi.</li>
+
+<li>Elemen <tt><modules></tt> berisi konfigurasi untuk daftar modul. Setiap modul ditetapkan dengan elemen <tt><module></tt>. Setiap modul diidentifikasi secara unik oleh atribut <tt>id</tt> dan tipe <tt>class</tt>. Pasangan <tt>PropertyName="PropertyValue"</tt> menetapkan nilai awal untuk properti modul.</li>
+
+<li>Elemen <tt><parameters></tt> berisi daftar parameter level-aplikasi yang dapat diakses dari mana saja dalam aplikasi. Anda bisa menetapkan parameter tipe-komponen seperti menetapkan modul, atau anda bisa menetapkan parameter tipe-string yang merupakan format lebih sederhana seperti berikut,
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_210096">
+<parameter id="ParameterID" value="ParameterValue" />
+</com:TTextHighlighter>
+Catatan, jika atribut <tt>value</tt> tidak ditetapkan, seluruh parameter XML node (dari tipe <tt>TXmlElement</tt>) akan dikembalikan sebagai nilai parameter. Sebagai tambahan, modul <tt>System.Util.TParameterModule</tt> menydiakan satu cara untuk mengambil parameter dari file XML eksternal. Lihat lebih jelasnya dalam dokumentasi API.
+</li>
+
+<li>Elemen <tt><include></tt> membolehkan seseorang menyertakan file konfigurasi eksternal. Ia sudah diperkenalkan sejak v3.1.0. Atribut <tt>file</tt> menetapkan file konfigurasi eksternal dalam format namespace. Nama ekstensi dari file harus <tt>.xml</tt>. Atribut <tt>when</tt> berisi ekspresi PHP dan opsional (standarnya true). Hanya ketika ekspresi mengevaluasi true, file konfigurasi eksternal akan disertakan. Konteks ekspresi adalah aplikasi, misalnya <tt>$this</tt> dalam ekspresi akan merujuk ke obyek aplikasi.
+</li>
+
+<li>Elemen <tt><services></tt> mirip dengan elemen <tt><modules></tt>. Ia sebagian besar menetapkan layanan yang disediakan oleh aplikasi. Di dalam elemen <tt><service></tt>, seseorang dapat memiliki salah satu elemen di atas. Ini akan efektif hanya ketika layanan terkait sedang diminta.</li>
+
+</ul>
+
+<p id="210215" class="block-content">
+File konfigurasi eksternal mempunyai format yang sama seperti dijelaskan di atas. Meskipun nama elemen akar tidak menjadi masalah, direkomendasikan adalah <tt><configuration></tt>. Konfigurasi eksternal akan menambah konfigurasi utama. Sebagai contoh, jika alias path ditetapkan dalam konfigurasi eksternal, ia akan menjadi tersedia sebagai tambahan terhadap alias yang ditetapkan dalam konfigurasi utama.
+</p>
+
+<p id="210216" class="block-content">
+Standarnya tanpa konfigurasi eksplisit, aplikasi PRADO akan mengambil beberapa modul inti, seperti <tt>THttpRequest</tt>, <tt>THttpResponse</tt>, dll. Ia juga akan menyediakan <tt>TPageService</tt> sebagai layanan standar. Konfigurasi dan penggunaan modul serta layanan ini tercakup dalam seksi individual pada tutorial ini. Catatan, jika aplikasi anda mengambil setelan standar untuk modul dan layanan ini, anda tidak perlu menyediakan konfigurasi aplikasi. Akan tetapi, jika modul atau layanan ini tidak mencukupi, atau anda ingin menghubah tingkah lakunya dengan mengkonfigurasi nilai propertinya, anda memerlukan konfigurasi aplikasi.
+</p>
+
+<div class="last-modified">$Id: AppConfig.page 1695 2007-02-13 14:16:09Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Overview.page b/demos/quickstart/protected/pages/Configurations/id/Overview.page new file mode 100644 index 00000000..be3244f6 --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/Overview.page @@ -0,0 +1,10 @@ +<com:TContent ID="body" >
+<h1 id="1401">Tinjauan Konfigurasi</h1>
+<p id="170164" class="block-content">
+PRADO menggunakan konfigurasi untuk merekat komponen bersama ke dalam halaman dan aplikasi. Ada <a href="?page=Configurations.AppConfig">konfigurasi aplikasi</a>, <a href="?page=Configurations.PageConfig">konfigurasi halaman</a>, dan <a href="?page=Configurations.Templates1">template</a>.
+</p>
+<p id="170165" class="block-content">
+Konfigurasi aplikasi dan halaman adalah opsional jika nilai standar yang dipakai. Template sebgian besar digunakan oleh halaman dan kontrol template. Ini juga opsional.
+</p>
+
+<div class="last-modified">$Id: Overview.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/PageConfig.page b/demos/quickstart/protected/pages/Configurations/id/PageConfig.page new file mode 100644 index 00000000..78b154b8 --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/PageConfig.page @@ -0,0 +1,42 @@ +<com:TContent ID="body" >
+
+<h1 id="1901">Konfigurasi Halaman</h1>
+<p id="220217" class="block-content">
+Konfigurasi halaman sebagian besar dipakai oleh <tt>TPageService</tt> untuk memodifikasi atau menambahkan konfigurasi aplikasi. Seperti ditunjukan oleh namanya, konfigurasi halaman dikaitkan dengan direktori yang menyimpan beberapa file halaman. Ia disimpan sebagai file XML bernama <tt>config.xml</tt>.
+</p>
+<p id="220218" class="block-content">
+Ketika pengguna meminta halaman yang disimpan di bawah <tt><BasePath>/dir1/dir2</tt>, <tt>TPageService</tt> akan mencoba untuk mengurai dan mengambil file <tt>config.xml</tt> di bawah <tt><BasePath></tt>, <tt><BasePath>/dir1</tt> dan <tt><BasePath>/dir1/dir2</tt>. Path, modul, dan parameter yang ditetapkan dalam file konfigurasi ini akan ditambahkan atau digabungkan ke dalam konfigurasi aplikasi yang sudah ada. Di sini <tt><BasePath></tt> seperti yang didefinisikan dalam <a href="?page=Fundamentals.Services">layanan halaman</a>.
+</p>
+<p id="220219" class="block-content">
+Format file konfigurasi halaman adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_220097">
+<configuration>
+ <paths>
+ <alias id="AliasID" path="AliasPath" />
+ <using namespace="Namespace" />
+ </paths>
+ <modules>
+ <module id="ModuleID" class="ModuleClass" PropertyName="PropertyValue" ... />
+ </modules>
+ <parameters>
+ <parameter id="ParameterID" class="ParameterClass" PropertyName="PropertyValue" ... />
+ </parameters>
+ <include file="path.to.extconfig" when="PHP expression" />
+ <authorization>
+ <allow pages="PageID1,PageID2" users="User1,User2" roles="Role1,Role2" verb="get" />
+ <deny pages="PageID1,PageID2" users="User1,User2" roles="Role1,Role2" verb="post" />
+ </authorization>
+ <pages PropertyName="PropertyValue" ...>
+ <page id="PageID" PropertyName="PropertyValue" ... />
+ </pages>
+</configuration>
+</com:TTextHighlighter>
+<p id="220220" class="block-content">
+<tt><paths></tt>, <tt><modules></tt>, <tt><parameters></tt> dan <tt><include></tt> mirip dengan itu dalam konfigurasi aplikasi. Elemen <tt><authorization></tt> menetapkan aturan otorisasi yang berlaku pada direktori halaman saat ini dan seluruh subdirektorinya. Untuk lebih jelasnya, lihat seksi <a href="?page=Advanced.Auth">otentikasi dan otorisasi</a>. Elemen <tt><pages></tt> menetapkan nilai awal untuk properti halaman. Setiap elemen <tt><page></tt> menetapkan nilai awal untuk halaman tertentu yang diidentifikasi oleh atribut <tt>id</tt>. Nilai properti awal yang diberikan dalam elemen <tt><pages></tt> element berlaku untuk semua halaman dalam direktori dan subdirektori saat ini.
+</p>
+<p id="220221" class="block-content">
+Spesifikasi lengkap dari konfigurasi halaman dapat ditemukan dalam file <a href="<%~../../../../../../docs/specs/config.dtd%>">DTD</a> dan <a href="<%~../../../../../../docs/specs/config.xsd%>">XSD</a>.
+</p>
+
+<div class="last-modified">$Id: PageConfig.page 1695 2007-02-13 14:16:09Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates1.page b/demos/quickstart/protected/pages/Configurations/id/Templates1.page new file mode 100644 index 00000000..8d2682fd --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/Templates1.page @@ -0,0 +1,103 @@ +<com:TContent ID="body" >
+<h1 id="1501">Template: Bagian I</h1>
+<p id="180166" class="block-content">
+Template dipakai untuk menetapkan penyajian tata letak kontrol. Sebuah template dapat berisi teks statis, komponen, atau kontrol yang membantu penyajian kontrol terkait. Standarnya, turunan <tt>TTemplateControl</tt> atau subkelasnya secara otomatis mengambil dan menrurunkan template dari sebuah file yang namanya sama dengan nama kelas kontrol. Untuk template halaman, nama file harus berakhiran <tt>.page</tt>; untuk kontrol template reguler lainnya, akhirannya adalah <tt>.tpl</tt>.
+</p>
+<p id="180167" class="block-content">Format template mirrip HTML, dengan beberapa tag spesifik-PRADO, termasuk <a href="#ct">tag komponen</a>, <a href="#tct">tag kontrol template</a>, <a href="#cot">tag komentar</a>, <a href="?page=Configurations.Templates2#dct">tag konten dinamis</a>, and <a href="?page=Configurations.Templates3#dpt">tag properti dinamis</a>. .
+</p>
+
+<a name="ct"></a>
+<h2 id="1502">Tag Komponen</h2>
+<p id="180168" class="block-content">
+Tag komponen menetapkan komponen sebagai bagian dari konten body pada kontrol template. Jika komponen adalah sebuah kontrol, biasanya akan menjadi anak atau cucu dari kontrol template, dan hasil penyajiannya akan disisipkan di tempat di mana ia terlihat dalam template.
+</p>
+<p id="180169" class="block-content">
+Format dari tag komponen adalah sebagai berikut,
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180072">
+<com:ComponentType PropertyName="PropertyValue" ... EventName="EventHandler" ...>
+body content
+</com:ComponentType>
+</com:TTextHighlighter>
+<tt>ComponentType</tt> berupa nama kelas atau nama tipe bertitik (contoh <tt>System.Web.UI.TControl</tt>) pada komponen. <tt>PropertyName</tt> dan <tt>EventName</tt> keduanya tidak sensitif-huruf. <tt>PropertyName</tt> bisa berupa nama properti atau subproperti (contoh <tt>Font.Name</tt>). Catatan, <tt>PropertyValue</tt> menjadi dekode HTML saat ditempatkan ke properti terkait. Konten dikurung diantara tag komponen pembuka dan penutup biasanya diperlakukan sebagai badan komponen.
+</p>
+<p id="180170" class="block-content">
+Diperlukan bahwa tag properti komponen saling mengumpulkan dan tag komponen pembuka dipasangkan dengan tag penutup, mirip dengan apa yang ada dalam XML.
+</p>
+<p id="180171" class="block-content">
+Template berikut memperlihatkan sebuah tag komponen yang menetapkan properti <tt>Text</tt> dan event <tt>OnClick</tt> dari kontrol tombol,
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180073">
+<com:TButton Text="Register" OnClick="registerUser" />
+</com:TTextHighlighter>
+Catatan, nama properti dan nama event semuanya tidak sensitif-huruf, sementara nama tipe komponen adalah sensitif-huruf. Nama event selalu diawali dengan <tt>On</tt>.
+</p>
+<p id="180172" class="block-content">
+Juga diperhatikan, nilai awal untuk properti yang namanya diakhiri dengan <tt>Template</tt> diproses secara khusus. Dalam keadaan tertentu, nilai awal diurai sebagai obyek <tt>TTemplate</tt>. Properti <tt>ItemTemplate</tt> dari kontrol <tt>TRepeater</tt> dalam contoh tersebut.
+</p>
+<p id="180173" class="block-content">
+Untuk menjembatani properti dengan tempat data besar, tag inisialisasi properti berikut diperkenalkan. Ini sama dengan <tt>...PropertyName="PropertyValue"...</tt> pada setiap aspeknya. Tag inisialisasi properti harus secara langsung dikurung diantara tag pembuka dan penutup komponen.
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180074">
+<prop:PropertyName>
+PropertyValue
+</prop:PropertyName>
+</com:TTextHighlighter>
+<p id="200007" class="block-content">
+Sejak versi 3.1.0, inisialisasi tag properti dapat juga dipakai untuk menginisialisasi set subproperti yang berbagi properti leluhur yang sama. Sebagai contoh, yang berikut adalah sama <tt>HeaderStyle.BackColor="black"</tt> dan <tt>HeaderStyle.ForeColor="red"</tt>.
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180075">
+<prop:HeaderStyle BackColor="black" ForeColor="red" />
+</com:TTextHighlighter>
+
+<h3 id="1505">ID Komponen</h3>
+<p id="180174" class="block-content">
+Ketika ditetapkan dalam template, properti <tt>ID</tt> komponen mempunyai arti khusus sebagai tambahan terhadap definisi properti normalnya. Tag komponen yang ditetapkan dengan nilai ID dalam template akan meregistrasi komponen terkait ke dalam kontrol pemilik template. Selanjutnya komponen dapat diakses secara langsung dari kontrol template dengan nilai ID-nya. Sebagai contoh, dalam template halaman <tt>Home</tt>, tag komponen berikut
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180076">
+<com:TTextBox ID="TextBox" Text="First Name" />
+</com:TTextHighlighter>
+memungkinkan untuk memperoleh obyek kotak teks dalam kode menggunakan <tt>$page->TextBox</tt>.
+</p>
+
+<a name="tct"></a>
+<h2 id="1503">Tag Kontrol Template</h2>
+Tag kontrol template digunakan untuk mengkonfigurasi nilai properti awal dari kontrol yang memiliki template. Formatnya adalah sebagai berikut,
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180077">
+<%@ PropertyName="PropertyValue" ... %>
+</com:TTextHighlighter>
+Seperti dalam tag komponen, <tt>PropertyName</tt> adalah tidak sensitif-huruf dan bisa berupa nama properti atau subproperti.
+</p>
+<p id="180175" class="block-content">
+Nilai awal yang ditetapkan melalui tag kontrol template ditempatkan ke properti terkait saat kontrol template dibentuk. Oleh karena itu, anda dapat mengganti nilai properti ini dalam langkah berikutnya, seperti tahap <tt>Init</tt> dari kontrol.
+</p>
+<p id="180176" class="block-content">
+Tag kontrol template adalah opsional dalam sebuah template. Setiap template dapat berisi paling banyak satu tag kontrol template. Anda dapat menempatkan tag kontrol template di mana saja di dalam template. Direkomendasikan bahwa anda menempatkannya di awal template untuk visibilitas lebih baik.
+</p>
+
+<a name="cot"></a>
+<h2 id="1504">Tag Komentar</h2>
+<p id="180177" class="block-content">
+Tag komentar dipakai untuk menyimpan komentar pengembang dalam template yang tidak akan ditampilkan ke pengguna-akhir. Isi dikurung di dalam tag komentar akan diperlakukan sebagai teks tring biasa dan PRADO tidak akan mencoba untuk menguraikannya. Tag komentar tidak bisa dipakai di dalam nilai properti. Format tag komentar adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180078">
+<!---
+Komentar TIDAK TERLIHAT bagi pengguna-akhir
+--->
+</com:TTextHighlighter>
+<div class="note"><b class="tip">Catatan:</b>
+Tag komentar baru <tt><!--- ... ---></tt> diperkenalkan sejak PRADO versi 3.1. Sebelumnya adalah <tt><!-- ... --!></tt> yang tidak dipakai lagi karena beberapa editor mempunyai masalah dalam penerangan-sintaks tag seperti itu. </div>
+
+<h2 id="1601">Tag Include</h2>
+<p id="180178" class="block-content">
+Sejak versi 3.0.5, PRADO mulai mendukung penyertaan template eksternal. Ini dilakukan melalui tag include, di mana file template eksternal ditetapkan dalam format namespace dan nama filenya harus diakhiri dengan <tt>.tpl</tt>.
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_180079">
+<%include path.to.templateFile %>
+</com:TTextHighlighter>
+
+<p id="180179" class="block-content">
+Template eksternal akan disisipkan di tempat di mana tag include terjadi dalam basis template.
+</p>
+<p id="180180" class="block-content">
+Catatan, pengulangan penyertaan template tidak didukung, misalnya anda tidak dapat mempunyai tag include di dalam template eksternal.
+</p>
+
+<div class="last-modified">$Id: Templates1.page 1902 2007-05-07 04:17:37Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates2.page b/demos/quickstart/protected/pages/Configurations/id/Templates2.page new file mode 100644 index 00000000..2c7c5488 --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/Templates2.page @@ -0,0 +1,99 @@ +<com:TContent ID="body" >
+<h1 id="1601">Template: Bagian II</h1>
+
+<a name="dct"></a>
+<h2 id="1602">Tag Konten Dinamis</h2>
+<p id="190181" class="block-content">
+Tag konten dinamis diperkenalkan sebagai jalan pintas ke beberapa <a href="?page=Configurations.Templates1#ct">tag komponen</a> yang umum dipakai. Tag-tag ini sebagian besar dipakai untuk menyajikan konten yang dihasilkan dari evaluasi beberapa ekspresi atau pernyataan PHP. Ini termasuk <a href="#et">tag ekspresi</a>, <a href="#st">tag pernyataan</a>, <a href="#dt">tag databind</a>, <a href="#pt">parameter tags</a>, <a href="#at">tag asset</a> dan <a href="#lot">tag lokalisasi</a>.
+</p>
+
+<a name="et"></a>
+<h3 id="1603">Tag Ekspresi</h3>
+<p id="190182" class="block-content">
+Tag ekspresi mewakili ekspresi PHP yang dievaluasi saat kontrol template dalam tahap <tt>PreRender</tt>. Hasil evaluasi ekspresi disisipkan di tempat di mana tag berada dalam template. Konteks (yaitu <tt>$this</tt>) dari ekspresi adalah kontrol yang memilik template.
+</p>
+<p id="190183" class="block-content">
+Format tag ekspresi adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190079">
+<%= PhpExpression %>
+</com:TTextHighlighter>
+<p id="190184" class="block-content">
+Sebagai contoh, tag ekspresi berikut akan menampilkan judul halaman saat ini di tempat,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190080">
+<%= $this->Title %>
+</com:TTextHighlighter>
+
+<a name="st"></a>
+<h3 id="1604">Tag Pernyataan</h3>
+<p id="190185" class="block-content">
+Tag pernyataan mirip dengan tag ekspresi, kecuali bahwa tag pernyataan berisi pernyataan PHP daripada ekspresi. Output dari pernyataan PHP (menggunakan contoh <tt>echo</tt> atau <tt>print</tt> dalam PHP) ditampilkan di tempat di mana tag pernyataan berada dalam template. Konteks (yaitu <tt>$this</tt>) dari pernyataan adalah kontrol yang memiliki template. Format tag pernyataan adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190081">
+<%%
+Pernyataan PHP
+%>
+</com:TTextHighlighter>
+<p id="190186" class="block-content">
+Contoh berikut menampilkan waktu saat ini dalam bahasa Belanda di tempat,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190082">
+<%%
+setlocale(LC_ALL, 'nl_NL');
+echo strftime("%A %e %B %Y",time());
+%>
+</com:TTextHighlighter>
+
+<a name="dt"></a>
+<h3 id="1605">Tag Databind</h3>
+<p id="190187" class="block-content">
+Tag databind mirip dengan tag ekspresi, kecuali bahwa ekspresi dievaluasi hanya ketika panggilan <tt>dataBind()</tt> diterapkan pada kontrol yang mewakili tag databind. Konteks (yaitu <tt>$this</tt>) dari ekspresi databind adalah kontrol yang memiliki template. Format tag databind adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190083">
+<%# PhpExpression %>
+</com:TTextHighlighter>
+
+<a name="pt"></a>
+<h3 id="1606">Tag Parameter</h3>
+<p id="190188" class="block-content">
+Tag parameter dipakai untuk menyisipkan parameter aplikasi di tempat di mana ia muncul dalam template. Format tag parameter adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190084">
+<%$ ParameterName %>
+</com:TTextHighlighter>
+<p id="190189" class="block-content">
+Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau konfigurasi direktori halaman. Parameter dievaluasi saat template diberi contoh.
+</p>
+
+<a name="at"></a>
+<h3 id="1607">Tag Asset</h3>
+<p id="190190" class="block-content">
+Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika anda mempunyai file gambar yang tidak bisa diakses Web dan anda ingin menjadikannya terlihat bagi pengguna-akhir, anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan.
+</p>
+<p id="190191" class="block-content">
+Format tag asset adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190085">
+<%~ LocalFileName %>
+</com:TTextHighlighter>
+<p id="190192" class="block-content">
+di mana <tt>LocalFileName</tt> merujuk ke path file yang relatif ke direktori yang berisi file template saat ini. Path file bisa berupa file tunggal atau sebuah direktori. Jika direktori, konten dalam seluruh direktori akan dibuat dapat diakses oleh pengguna-akhir.
+</p>
+<p id="190193" class="block-content">
+HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka.
+</p>
+
+<a name="lot"></a>
+<h3 id="1608">Tag Lokalisasi</h3>
+<p id="190194" class="block-content">
+Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_190086">
+<%[string]%>
+</com:TTextHighlighter>
+<p id="190195" class="block-content">
+di mana <tt>string</tt> akan diterjemahkan ke bahasa berbeda tergantung pada preferensi bahasa pengguna-akhir. Tag lokalisasi sebenarnya adalah jalan pintas ke fungsi panggil <tt>Prado::localize(string)</tt>.
+</p>
+
+<div class="last-modified">$Id: Templates2.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates3.page b/demos/quickstart/protected/pages/Configurations/id/Templates3.page new file mode 100644 index 00000000..edd8f5ce --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/Templates3.page @@ -0,0 +1,104 @@ +<com:TContent ID="body" >
+<h1 id="1701">Template: Bagian III</h1>
+
+<a name="dpt"></a>
+<h2 id="1702">Tag Properti Dinamis</h2>
+<p id="200196" class="block-content">
+Tag properti dinamis sangat mirip dengan tag konten dinamis, kecuali bahwa ia berlaku untuk properti komponen. Kegunaan tag properti dinamis adalah untuk membolehkan konfigurasi properti komponen lebih serba guna. Catatan, anda tidak perlu memakai tag properti dinamis karena apa yang bisa dikerjakan oleh tag properti dinamis juga bisa dilakukan dalam kode PHP. Akan tetapi, menggunakan tag properti dinamis membawa anda jauh lebih nyaman saat menyempurnakan tugas yang sama. Pemakaian dasar dari tag properti dinamis adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200087">
+<com:ComponentType PropertyName=DynamicPropertyTag ...>
+body content
+</com:ComponentType>
+</com:TTextHighlighter>
+<p id="200197" class="block-content">
+di mana anda dapat mengurung <tt>DynamicPropertyTag</tt> di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik.
+</p>
+<p id="200198" class="block-content">
+Seperti tag konten dinamis, kami mempunyai <a href="#et">tag ekspresi</a>, <a href="#dt">tag databind</a>, <a href="#pt">tag parameter</a>, <a href="#at">tag asset</a> dan <a href="#lot">tag lokalisasi</a>. (Catatan, tidak ada tag pernyataan di sini.)
+</p>
+
+<a name="et"></a>
+<h3 id="1703">Tag Ekspresi</h3>
+<p id="200199" class="block-content">
+Tag ekspresi mewakili ekspresi PHP yang dievaluasi saat kontrol template dalam tahap <tt>PreRender</tt>. Hasil evaluasi ekspresi disisipkan di tempatkan ke properti komponen terkait. Format tag ekspresi adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200088">
+<%= PhpExpression %>
+</com:TTextHighlighter>
+<p id="200200" class="block-content">
+Dalam ekspresi, <tt>$this</tt> merujuk ke kontrol yang memiliki template. Contoh berikut menetapkan kontrol <tt>TLabel</tt> di mana properti <tt>Text</tt> diberi contoh seperti judul halaman saat ini saat kontrol <tt>TLabel</tt> sedang dibentuk,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200089">
+<com:TLabel Text=<%= $this->Page->Title %> />
+</com:TTextHighlighter>
+
+<a name="dt"></a>
+<h3 id="1704">Databind Tags</h3>
+<p id="200201" class="block-content">
+Tag databind mirip dengan tag ekspresi, kecuali bahwa ekspresi dievaluasi hanya ketika panggilan <tt>dataBind()</tt> diterapkan pada kontrol yang mewakili tag databind. Konteks (yaitu <tt>$this</tt>) dari ekspresi databind adalah kontrol yang memiliki template. Tag databind tidak berlaku bagi seluruh komponen. Ia hanya digunakan untuk kontrol.
+</p>
+<p id="200202" class="block-content">
+Format tag databind adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200090">
+<%# PhpExpression %>
+</com:TTextHighlighter>
+<p id="200203" class="block-content">
+Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string statis. Sebagai contoh, anda bisa menulis yang berikut dalam template,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200091">
+<com:TLabel>
+ <prop:Text>
+ Today is <%= date('F d, Y',time()) %>.
+ The page class is <%= get_class($this) %>.
+ </prop:Text>
+</com:TLabel>
+</com:TTextHighlighter>
+<p id="200204" class="block-content">
+Sebelumnya, anda harus menggunakan ekspresi tunggal dengan penggabungan string untuk mendapatkan efek yang sama.
+</p>
+
+<a name="pt"></a>
+<h3 id="1705">Parameter Tags</h3>
+<p id="200205" class="block-content">
+Tag parameter dipakai untuk menyisipkan parameter aplikasi di tempat di mana ia muncul dalam template. Format tag parameter adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200092">
+<%$ ParameterName %>
+</com:TTextHighlighter>
+<p id="200206" class="block-content">
+Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau konfigurasi direktori halaman. Parameter dievaluasi saat template diberi contoh.
+</p>
+
+<a name="at"></a>
+<h3 id="1706">Tag Asset</h3>
+<p id="200207" class="block-content">
+Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika anda mempunyai file gambar yang tidak bisa diakses Web dan anda ingin menjadikannya terlihat bagi pengguna-akhir, anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan. Tag asset dievaluasi ketika template diberi contoh.
+</p>
+<p id="200208" class="block-content">
+Format tag asset adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200093">
+<%~ LocalFileName %>
+</com:TTextHighlighter>
+<p id="200209" class="block-content">
+di mana <tt>LocalFileName</tt> merujuk ke path file yang relatif ke direktori yang berisi file template saat ini. Path file bisa berupa file tunggal atau sebuah direktori. Jika direktori, konten dalam seluruh direktori akan dibuat dapat diakses oleh pengguna-akhir.
+</p>
+<p id="200210" class="block-content">
+HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka.
+</p>
+
+<a name="lot"></a>
+<h3 id="1707">Tag Lokalisasi</h3>
+<p id="200211" class="block-content">
+Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200094">
+<%[string]%>
+</com:TTextHighlighter>
+<p id="200212" class="block-content">
+di mana <tt>string</tt> akan diterjemahkan ke bahasa berbeda tergantung pada preferensi bahasa pengguna-akhir. Tag lokalisasi sebenarnya adalah jalan pintas ke fungsi panggil <tt>Prado::localize(string)</tt>.
+</p>
+
+<div class="last-modified">$Id: Templates3.page 2036 2007-06-26 17:12:54Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page b/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page new file mode 100644 index 00000000..2f36e674 --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page @@ -0,0 +1,106 @@ +<com:TContent ID="body" >
+
+<h1 id="2101">Pemetaan URL (URL bersahabat)</h1>
+
+<com:DocLink ClassPath="System.Web.TUrlMapping" />
+
+<p id="230222" class="block-content">
+Modul TUrlMapping membolehkan PRADO membentuk dan mengenali URL bersahabat berdasarkan pada pola spesifik.
+</p>
+
+<p id="230223" class="block-content">
+TUrlMapping terdiri dari daftar pola URL yang dipakai untuk menyamakan terhadap URL yang saat ini sedang diminta. Pola pertama yang sama kemudian akan dipakai untuk mendekomposisi URL ke dalam parameter request (dapat diakses melalui
+<tt>$this->Request['paramname']</tt>). Pola juga dipakai untuk membentuk URL yang dikustomisasi. Dalam hal ini, parameter dalam pola yang diterapkan akan diganti dengan nilai variabel GET terkait.
+</p>
+
+<p id="230224" class="block-content">
+Untuk menggunakan <tt>TUrlMapping</tt>, seseorang harus menyetel properti <tt>UrlManager</tt> dari modul <tt>THttpRequest</tt> sebagai ID modul <tt>TUrlMapping</tt>. Lihat contoh berikut,
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_230098">
+<modules>
+ <module id="request" class="THttpRequest" UrlManager="friendly-url" />
+ <module id="friendly-url" class="System.Web.TUrlMapping">
+ <url ServiceParameter="Posts.ViewPost" pattern="post/{id}/?" parameters.id="\d+" />
+ <url ServiceParameter="Posts.ListPost" pattern="archive/{time}/?" parameters.time="\d{6}" />
+ <url ServiceParameter="Posts.ListPost" pattern="category/{cat}/?" parameters.cat="\d+" />
+ </module>
+</modules>
+</com:TTextHighlighter>
+</p>
+
+<p id="230225" class="block-content">
+Contoh di atas adalah bagian dari konfigurasi aplikasi dari demo <tt>blog</tt> dalam rilis PRADO. Ia menghidupkan pengakuan format URL berikut:
+</p>
+<ul id="u1" class="block-content">
+ <li><tt>/index.php/post/123</tt> diakui sebagai <tt>/index.php?page=Posts.ViewPost&id=123</tt></li>
+ <li><tt>/index.php/archive/200605</tt> diakui sebagai <tt>/index.php?page=Posts.ListPost&time=200605</tt></li>
+ <li><tt>/index.php/category/2</tt> diakui sebagai <tt>/index.php?page=Posts.ListPost&cat=2</tt></li>
+</ul>
+
+<p id="230226" class="block-content">
+<tt>ServiceParameter</tt> dan <tt>ServiceID</tt> (ID standarnya adalah 'page') masing-masing menyetel parameter layanan dan ID layanan terhadap <a href="?page=Fundamentals.Modules">modul Request</a>. Parameter layanan untuk layanan <tt>TPageService</tt> adalah nama kelas Page, contohnya untuk URL "index.php?page=Home", "page" adalah ID layanan dan parameter layanan adalah "Home". Layanan lain dapat menggunakan parameter layanan dan ID secara berbeda. Lihat <a href="?page=Fundamentals.Services">Layanan</a> untuk lebih jelasnya.
+</p>
+
+<div class="info"><b class="tip">Info:</b>
+<tt>TUrlMapping</tt> harus dikonfigurasi sebelum
+<a href="?page=Fundamentals.Modules">modul Request</a> mengatasi permintaan.
+Ini biasanya berarti mendeklarasikan modul <tt>TUrlMapping</tt> sebelum tag
+<tt><services></tt> dalam <a href="?page=Configurations.AppConfig">konfigurasi aplikasi</a>.
+Menetapkan pemetaan dalam direktori <tt>config.xml</tt> tidak didukung.
+</div>
+
+<h2 id="46023">Menetapkan Pola URL</h2>
+<p id="230227" class="block-content">
+<tt>TUrlMapping</tt> menghidupkan pengakuan terhadap format URL yang dikustomisasi berdasarkan pada daftar pola URL yang ditetapkan sebelumnya. Setiap pola ditetapkan dalam tag <tt><url></tt>.
+</p>
+
+<p id="230228" class="block-content">
+Nilai atribut <tt>Pattern</tt> dan <tt>Parameters</tt> adalah pola ekspresi reguler yang menentukan kriteria pemetaan. Properti <tt>Pattern</tt> mengambil ekspresi reguler dengan nama parameter dikurung antara kurung kurawal kiri '<tt>{</tt>' dan kurung kurawal kanan '<tt>}</tt>'. Pola untuk setiap parameter dapat disetel menggunakan koleksi atribut <tt>Parameters</tt>.
+Sebagai contoh,
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_230099">
+<url ServiceParameter="ArticleView" pattern="articles/{year}/{month}/{day}"
+ parameters.year="\d{4}" parameters.month="\d{2}" parameters.day="\d+" />
+</com:TTextHighlighter>
+</p>
+Contoh mirip dengan ekspresi reguler berikut (ia memakai fitur "named group" dalam ekspresi reguler yang tersedia dalam PHP):
+<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_230100">
+<url ServiceParmaeter="ArticleView">
+ RegularExpression="/articles\/(?P<year>\d{4})\/(?P<month>\d{2})\/(?P<day>\d+)/u"</url>
+</com:TTextHighlighter>
+<p id="230229" class="block-content">
+Dalam contoh di atas, pola berisi 3 parameter bernama "<tt>year</tt>",
+"<tt>month</tt>" dan "<tt>day</tt>". Pola untuk parameter ini masing-masing adalah, "<tt>\d{4}</tt>" (4 digit), "<tt>\d{2}</tt>" (2 digit)
+dan "<tt>\d+</tt>" (1 atau lebih digit).
+Intinya, nama dan nilai atribut <tt>Parameters</tt> digunakan sebagai substrings dalam penggantian tempat pada string <tt>Pattern</tt> untuk membentuk string ekspresi reguler lengkap.
+</p>
+
+<div class="note"><b class="tip">Catatan:</b> Jika anda bermaksud untuk menggunakan properti <tt>RegularExpression</tt> anda perlu mengulang garis miring dalam ekspresi reguler.
+</div>
+
+<p id="230230" class="block-content">Berikut dari contoh pola di atas,
+sebuah URL "<tt>http://example.com/index.php/articles/2006/07/21</tt>" akan disamakan dan benar. Akan tetapi, "<tt>http://example.com/index.php/articles/2006/07/hello</tt>" tidak benar karena pola parameter "<tt>day</tt>" tidak memuaskan.
+ Dalam kelas <tt>TUrlMappingPattern</tt> standarnya, pola disamakan dengan properti <b>path</b> dari hanya URL. Sebagai contoh, hanya bagian
+"<tt>/index.php/articles/2006/07/21</tt>" dari URL yang ditetapkan.
+ </p>
+
+<p id="230231" class="block-content">
+URL permintaan yang dipetakan mirip dengan <tt>index.php?page=ArticleView&year=2006&month=07&day=21</tt>.
+Nilai parameter tersedia melalui obyek standar <tt>Request</tt>. Sebagai contoh, <tt>$this->Request['year']</tt>.
+</p>
+
+<p id="230232" class="block-content">Pemetaan URL dievaluasi agar ia ditempatkan dan hanya pemetaan pertama yang menyamai URL akan dipakai. Pemetaan beruntun dapat dicapat dengan menempatkan pemetaan URL dalam urutan tertentu. Sebagai contoh, menempatkan pemetaan paling spesifik terlebih dahulu.
+</p>
+
+<h2 id="46024">Membentuk URL Dikustomisasi</h2>
+<p id="230233" class="block-content">
+Sejak versi 3.1.1, <tt>TUrlMapping</tt> mulai mendukung pembentukan format URL terkustomisasi berdasarkan pola yang disediakan. Untuk menghidupkan fitur ini, setel <tt>TUrlMapping.EnableCustomUrl</tt> menjadi true. Saat <tt>THttpRequest.constrcutUrl()</tt> dipanggil, pembantukan kerja URL aktual akan didelegasikan ke turunan <tt>TUrlMappingPattern</tt> yang sama. Ia mengganti parameter dalam pola dengan variabel GET terkait dikirimkan ke <tt>constructUrl()</tt>.
+</p>
+
+<p id="230234" class="block-content">
+Pola yang sama adalah propreti <tt>ServiceID</tt> dan <tt>ServiceParameter</tt> yang sama seperti yang dikirimkan ke <tt>constructUrl()</tt> dan parameter yang diberi nama ditemukan dalam variabel GET. Sebagai contoh, <tt>constructUrl('Posts.ListPost',array('cat'=>2))</tt> akan menggunakan pola pihak ketiga dalam contoh di atas.
+<p>
+
+<p id="230235" class="block-content">
+Standarnya <tt>TUrlMapping</tt> akan membentuk URL yang diawali dengan yang saat ini meminta path naskah PHP, seperti <tt><b>/path/to/index.php</b>/article/3</tt>. Para pengguna dapat mengubah perilaku ini dengan menetapkan prefiks URL secara spesifik melalui properti <tt>UrlPrefix</tt>-nya. Sebagai contoh, jika konfigurasi server Web memperlakukan <tt>index.php</tt> sebagai naskah standar, kita bisa menyetel <tt>UrlPrefix</tt> sebagai <tt>/path/to</tt> dan URL yang dibentuk akan terlihat seperti <tt>/path/to/article/3</tt>.
+</p>
+
+<div class="last-modified">$Id: UrlMapping.page 2118 2007-08-11 14:30:07Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Controls/id/Captcha.page b/demos/quickstart/protected/pages/Controls/id/Captcha.page new file mode 100644 index 00000000..3bce464a --- /dev/null +++ b/demos/quickstart/protected/pages/Controls/id/Captcha.page @@ -0,0 +1,39 @@ +<com:TContent ID="body" >
+
+<h1>TCaptcha</h1>
+<com:DocLink ClassPath="System.Web.UI.WebControls.TCaptcha" />
+
+<p>
+<tt>TCaptcha</tt> menampilkan <a href="http://en.wikipedia.org/wiki/Captcha">CAPTCHA</a> yang bisa dipakai untuk menentukan apakah input dimasukan oleh pengguna asli ataukah beberapa program. <tt>TCaptcha</tt> menampilkan sebuah token (string terdiri dari karakter alfanumerik) sebagai sebuah gambar dan pengguna diharapkan untuk mengulang token dalam kotak teks. Gambar token dibuat dalam cara tertentu yang bisa dikenali oleh manusia, tapi tidak oleh sebuah program.
+</p>
+
+<p>
+Untuk menggunakan <tt>TCaptcha</tt>, anda hrus menghidupkan ekstensi PHP GD2 dengan dukungan font TrueType. Tidak seperti naskah CAPTCHA lain, <tt>TCaptcha</tt> tidak memerlukan sesi atau cookie.
+</p>
+
+<p>
+Token yang dibuat oleh <tt>TCaptcha</tt> dapat dikonfigurasi dalam beberapa cara. Untuk menetapkan panjang karakter dalam token, setel <tt>MinTokenLength</tt> dan <tt>MaxTokenLength</tt>. Untuk menggunakan perbandingan huruf tidak sensitif-huruf dan hanya membuat token huruf-besar, setel <tt>CaseSensitive</tt> ke false. Para pengguna tingkat lanjut dapat mencoba untuk menyetel <tt>TokenAlphabet</tt> guna menetapkan karakter mana yang akan muncul dalam token yang dibuatnya.
+</p>
+
+<p>
+Untuk menetapkan tampilan dari gambar token yang dibuat, setel <tt>TokenImageTheme</tt> ke integer antara 0 dan 31. Ada bisa mencoba contoh berikut untuk melihat bagaimana nilai ini mempengaruhi gambar token yang dihasilkan. Ukuran gambar token ditentukan oleh <tt>TokenFontSize</tt>. Dalam keadaan tertentu, panjang gambar adalah proporsional bagi ukuran font. Anda juga bisa menyetel <tt>Width</tt> untuk mengubah gambar yang dihasilkan ke ukuran yang anda inginkan, gambar yang diskala mungkin tidak terlihat baik.
+</p>
+
+<p>
+Setelah postback, input pengguna dapat di validasi dengan memanggil metode <tt>TCaptcha.validate()</tt>. Jauh lebih mudah, anda dapat menggunakan <tt>TCaptchaValidator</tt> untuk mengotomasi pekerjaan validasi bagi anda. <tt>TCaptchaValidator</tt> mempunyai keuntungan tambahan dari kemampuan untuk memvalidasi input pengguna pada sisi-klien. Standarnya, token yang dihasilkan akan tetap tidak berubah selama postbacks. Token baru dapat dibuat dengan memanggil <tt>TCaptcha.regenerateToken()</tt> secara manual.
+</p>
+
+<p>
+Template berikut memperlihatkan penggunaan umum dari kontrol <tt>TCaptcha</tt>:
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source">
+<com:TCaptcha ID="Captcha" />
+<com:TTextBox ID="Input" />
+<com:TCaptchaValidator CaptchaControl="Captcha"
+ ControlToValidate="Input"
+ ErrorMessage="You are challenged!" />
+</com:TTextHighlighter>
+
+<com:RunBar PagePath="Controls.Samples.TCaptcha.Home" />
+
+<div class="last-modified">$Id: Captcha.page 2175 2007-08-29 19:57:50Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Controls/id/Standard.page b/demos/quickstart/protected/pages/Controls/id/Standard.page index abfca45b..b289f0c7 100644 --- a/demos/quickstart/protected/pages/Controls/id/Standard.page +++ b/demos/quickstart/protected/pages/Controls/id/Standard.page @@ -8,6 +8,10 @@ </li>
<li>
+ <a href="?page=Controls.Captcha">TCaptcha</a> menampilkan CAPTCHA untuk menjaga spammers dari pendaftaran untuk akun online tertentu.
+ </li>
+
+ <li>
<a href="?page=Controls.CheckBox">TCheckBox</a> mewakili kotak centang pada halaman Web, bisa digunakan untuk mengumpulkan dua-kondisi input pengguna.
</li>
diff --git a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page index 850f47e5..b362acdb 100644 --- a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page +++ b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page @@ -98,7 +98,7 @@ Anda dapat menetapkan nama-nama tabel yang memenuhi syarat. Contohnya untuk MySQ </div> <p class="block-content" id="ar_as_component"> - Karena <tt>TActiveRecord</tt> memerluas <tt>TComponent</tt>, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti <tt>$level</tt> untuk menggunakan kelas UserRecord: + Karena <tt>TActiveRecord</tt> memperluas <tt>TComponent</tt>, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti <tt>$level</tt> untuk menggunakan kelas UserRecord: </p> <com:TTextHighlighter Language="php" CssClass="source block-content" id="code_690149"> class UserRecord extends TActiveRecord { @@ -120,7 +120,7 @@ Nantinya kita harus dapat menggunakan pengambil/penentu guna membolehkan pengamb <div class="info"><b class="note">Info:</b> <tt>TActiveRecord</tt> juga dapat bekerja dengan view database dengan menetapkan konstan <tt>TABLE</tt> terkait ke nama view. Akan tetapi, obyek yang dikembalikan dari view hanya-baca, memanggil metode -<tt>save()</tt> atau <tt>delete()</tt> akan memunculkan kekecualian. +<tt>save()</tt> atau <tt>delete()</tt> akan memunculkan eksepsi. </div> <p id="690486" class="block-content"> @@ -428,7 +428,7 @@ try $user->save(); $transaction->commit(); } -catch(Exception $e) // kekecualian dimunculkan jika query gagal +catch(Exception $e) // eksepsi dimunculkan jika query gagal { $transaction->rollBack(); } @@ -561,7 +561,7 @@ Batasan kunci asing tabel <tt>Players</tt> dipakai untuk menentukan nama kunci t </p> <div class="info"><b class="note">Info:</b> -Rekaman Aktif mendukung hubungan kunci asing multipel tabel dengan batasan bahwa setiap hubungan menunjukan tabel yang unik. Sebagai contoh, tabel <tt>Players</tt> hanya dapat memiliki sastu set hubungan kunci asing dengan tabel <tt>Teams</tt>, ia boleh mempunyai hubungan lain yang menunjuk ke tabel lainnya (termasuk tabel <tt>Players</tt> itu sendiri). +Rekaman Aktif mendukung hubungan kunci asing multipel tabel dengan batasan bahwa setiap hubungan menunjukan tabel yang unik. Sebagai contoh, tabel <tt>Players</tt> hanya dapat memiliki satu set hubungan kunci asing dengan tabel <tt>Teams</tt>, ia boleh mempunyai hubungan lain yang menunjuk ke tabel lainnya (termasuk tabel <tt>Players</tt> itu sendiri). </div> <p id="710023" class="block-content">Hubungan "has many" tidak diambil secara otomatis ketika anda menggunakan salah satu metode finder Rekaman Aktif. @@ -578,7 +578,7 @@ Metode <tt>with_xxx()</tt> (di mana <tt>xxx</tt> adalah nama properti hubungan, <div class="note"><b class="note">Catatan:</b> Penting untuk dimengerti bahwa obyek terkait diambil menggunakan query tambahan. Query pertama mengambil obyek sumber, misalnya <tt>TeamRecord</tt> dalam contoh kode di atas. Query kedua dipakai untuk mengambil obyek <tt>PlayerRecord</tt> terkait. -Penggunaan dua query mirip dengan query tunggal menggunakan Left-Outer join dengan kekecualian bahwa hasil null pada tabel kanan tidak dikembalikan. Konsekuensi pemakaian dua tau lebih query adalah kondisi agregat dan join tidak layak menggunakan Rekaman Aktif. Untuk query di luar lingkup Rekaman Aktif, <a href="?page=Database.SqlMap">Pemeta Data SqlMap</a> diapat dupertimbangkan. +Penggunaan dua query mirip dengan query tunggal menggunakan Left-Outer join dengan eksepsi bahwa hasil null pada tabel kanan tidak dikembalikan. Konsekuensi pemakaian dua tau lebih query adalah kondisi agregat dan join tidak layak menggunakan Rekaman Aktif. Untuk query di luar lingkup Rekaman Aktif, <a href="?page=Database.SqlMap">Pemeta Data SqlMap</a> diapat dupertimbangkan. </div> <h3 id="142018">Hubungan Belongs To</h3> @@ -666,7 +666,7 @@ Kemudian, obyek <tt>PlayerRecord</tt> mempunyai properti (<tt>$team</tt>) yang a <h3 id="142019">Hubungan Has One</h3> <p id="710030" class="block-content">Hubungan entitas antara <tt>Players</tt> dan <tt>Profiles</tt> adalah satu ke satu. Yaitu, setiap obyek <tt>PlayerRecord</tt> <b>has one</b> obyek <tt>ProfileRecord</tt> (mungkin tidak ada atau null). -Hubungan <b>has one</b> hampir identik ke hubungan <b>has many</b> dengan kekecualian bahwa obyek terkait hanya satu obyek (bukan koleksi obyek). +Hubungan <b>has one</b> hampir identik ke hubungan <b>has many</b> dengan eksepsi bahwa obyek terkait hanya satu obyek (bukan koleksi obyek). </p> <h3 id="142020">Hubungan Leluhur Anak</h3> diff --git a/demos/quickstart/protected/pages/GettingStarted/id/NewFeatures.page b/demos/quickstart/protected/pages/GettingStarted/id/NewFeatures.page index 5cd95756..3858a67d 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/NewFeatures.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/NewFeatures.page @@ -10,6 +10,7 @@ Halaman ini meringkas fitur utama baru yang diperkenalkan dalam setiap rilis PRA <ul>
<li>Ditambahkan kontrol baru <a href="?page=Controls.TabPanel">TTabPanel</a> yang menampilkan tampilan tab.</li>
<li>Ditambahkan kontrol baru <a href="?page=Controls.Keyboard">TKeyboard</a> yang menampilkan keyboard virtual untuk input teks.</li>
+<li>Ditambahkan kontrol baru <a href="?page=Controls.Captcha">TCaptcha</a> yang menampilkan CAPTCHA untuk menjaga spammers dari pendaftaran untuk akun online tertentu. Validator <tt>TCaptchaValidator</tt> terkait juga diimplementasikan.</li>
<li>Ditambahkan modul baru TCacheHttpSession yang menyimpan data sesi menggunakan modul cache guna meningkatkan performansi sesi.</li>
<li>Ditambahkan dukungan Oracle DB ke Rekaman Aktif</li>
</ul>
|