From c2ca39d96c2320b7dd0433b303d1e778df1edc29 Mon Sep 17 00:00:00 2001 From: kabayan <> Date: Wed, 29 Aug 2007 21:40:38 +0000 Subject: Indonesian, added TCaptcha control and correction on typos --- .../pages/Configurations/id/AppConfig.page | 59 ++++++++++++ .../pages/Configurations/id/Overview.page | 10 ++ .../pages/Configurations/id/PageConfig.page | 42 ++++++++ .../pages/Configurations/id/Templates1.page | 103 ++++++++++++++++++++ .../pages/Configurations/id/Templates2.page | 99 +++++++++++++++++++ .../pages/Configurations/id/Templates3.page | 104 ++++++++++++++++++++ .../pages/Configurations/id/UrlMapping.page | 106 +++++++++++++++++++++ .../protected/pages/Controls/id/Captcha.page | 39 ++++++++ .../protected/pages/Controls/id/Standard.page | 4 + .../protected/pages/Database/id/ActiveRecord.page | 12 +-- .../pages/GettingStarted/id/NewFeatures.page | 1 + 11 files changed, 573 insertions(+), 6 deletions(-) create mode 100644 demos/quickstart/protected/pages/Configurations/id/AppConfig.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/Overview.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/PageConfig.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/Templates1.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/Templates2.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/Templates3.page create mode 100644 demos/quickstart/protected/pages/Configurations/id/UrlMapping.page create mode 100644 demos/quickstart/protected/pages/Controls/id/Captcha.page (limited to 'demos/quickstart/protected') 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 @@ + + +

Konfigurasi Aplikasi

+

+Konfigurasi aplikasi digunakan untuk menetapkan pperilaku global atas aplikasi. Ini terrmasuk spesifikasi alias path, pemakaian namespace, konfigurasi modul dan dan layanan, serta parameter. +

+

+Konfigurasi untuk aplikasi disimpan dalam sebuah file XML bernama application.xml, yang harus ditempatkan di bawah path basis aplikasi. Formatnya ditampilkan berikut ini. Spesifikasi lengkap dari konfigurasi aplikasi dapat ditemukan dalam file DTD dan XSD. +

+ + + + + + + + + + + + + + + + + + + + + +

+File konfigurasi eksternal mempunyai format yang sama seperti dijelaskan di atas. Meskipun nama elemen akar tidak menjadi masalah, direkomendasikan adalah <configuration>. 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. +

+ +

+Standarnya tanpa konfigurasi eksplisit, aplikasi PRADO akan mengambil beberapa modul inti, seperti THttpRequest, THttpResponse, dll. Ia juga akan menyediakan TPageService 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. +

+ +
$Id: AppConfig.page 1695 2007-02-13 14:16:09Z xue $
\ 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 @@ + +

Tinjauan Konfigurasi

+

+PRADO menggunakan konfigurasi untuk merekat komponen bersama ke dalam halaman dan aplikasi. Ada konfigurasi aplikasi, konfigurasi halaman, dan template. +

+

+Konfigurasi aplikasi dan halaman adalah opsional jika nilai standar yang dipakai. Template sebgian besar digunakan oleh halaman dan kontrol template. Ini juga opsional. +

+ +
$Id: Overview.page 1650 2007-01-24 06:55:32Z wei $
\ 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 @@ + + +

Konfigurasi Halaman

+

+Konfigurasi halaman sebagian besar dipakai oleh TPageService 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 config.xml. +

+

+Ketika pengguna meminta halaman yang disimpan di bawah <BasePath>/dir1/dir2, TPageService akan mencoba untuk mengurai dan mengambil file config.xml di bawah <BasePath>, <BasePath>/dir1 dan <BasePath>/dir1/dir2. Path, modul, dan parameter yang ditetapkan dalam file konfigurasi ini akan ditambahkan atau digabungkan ke dalam konfigurasi aplikasi yang sudah ada. Di sini <BasePath> seperti yang didefinisikan dalam layanan halaman. +

+

+Format file konfigurasi halaman adalah sebagai berikut, +

+ + + + + + + + + + + + + + + + + + + + + + +

+<paths>, <modules>, <parameters> dan <include> mirip dengan itu dalam konfigurasi aplikasi. Elemen <authorization> menetapkan aturan otorisasi yang berlaku pada direktori halaman saat ini dan seluruh subdirektorinya. Untuk lebih jelasnya, lihat seksi otentikasi dan otorisasi. Elemen <pages> menetapkan nilai awal untuk properti halaman. Setiap elemen <page> menetapkan nilai awal untuk halaman tertentu yang diidentifikasi oleh atribut id. Nilai properti awal yang diberikan dalam elemen <pages> element berlaku untuk semua halaman dalam direktori dan subdirektori saat ini. +

+

+Spesifikasi lengkap dari konfigurasi halaman dapat ditemukan dalam file DTD dan XSD. +

+ +
$Id: PageConfig.page 1695 2007-02-13 14:16:09Z xue $
\ 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 @@ + +

Template: Bagian I

+

+Template dipakai untuk menetapkan penyajian tata letak kontrol. Sebuah template dapat berisi teks statis, komponen, atau kontrol yang membantu penyajian kontrol terkait. Standarnya, turunan TTemplateControl 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 .page; untuk kontrol template reguler lainnya, akhirannya adalah .tpl. +

+

Format template mirrip HTML, dengan beberapa tag spesifik-PRADO, termasuk tag komponen, tag kontrol template, tag komentar, tag konten dinamis, and tag properti dinamis. . +

+ + +

Tag Komponen

+

+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. +

+

+Format dari tag komponen adalah sebagai berikut, + +<com:ComponentType PropertyName="PropertyValue" ... EventName="EventHandler" ...> +body content +</com:ComponentType> + +ComponentType berupa nama kelas atau nama tipe bertitik (contoh System.Web.UI.TControl) pada komponen. PropertyName dan EventName keduanya tidak sensitif-huruf. PropertyName bisa berupa nama properti atau subproperti (contoh Font.Name). Catatan, PropertyValue menjadi dekode HTML saat ditempatkan ke properti terkait. Konten dikurung diantara tag komponen pembuka dan penutup biasanya diperlakukan sebagai badan komponen. +

+

+Diperlukan bahwa tag properti komponen saling mengumpulkan dan tag komponen pembuka dipasangkan dengan tag penutup, mirip dengan apa yang ada dalam XML. +

+

+Template berikut memperlihatkan sebuah tag komponen yang menetapkan properti Text dan event OnClick dari kontrol tombol, + +<com:TButton Text="Register" OnClick="registerUser" /> + +Catatan, nama properti dan nama event semuanya tidak sensitif-huruf, sementara nama tipe komponen adalah sensitif-huruf. Nama event selalu diawali dengan On. +

+

+Juga diperhatikan, nilai awal untuk properti yang namanya diakhiri dengan Template diproses secara khusus. Dalam keadaan tertentu, nilai awal diurai sebagai obyek TTemplate. Properti ItemTemplate dari kontrol TRepeater dalam contoh tersebut. +

+

+Untuk menjembatani properti dengan tempat data besar, tag inisialisasi properti berikut diperkenalkan. Ini sama dengan ...PropertyName="PropertyValue"... pada setiap aspeknya. Tag inisialisasi properti harus secara langsung dikurung diantara tag pembuka dan penutup komponen. +

+ +<prop:PropertyName> +PropertyValue +</prop:PropertyName> + +

+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 HeaderStyle.BackColor="black" dan HeaderStyle.ForeColor="red". +

+ +<prop:HeaderStyle BackColor="black" ForeColor="red" /> + + +

ID Komponen

+

+Ketika ditetapkan dalam template, properti ID 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 Home, tag komponen berikut + +<com:TTextBox ID="TextBox" Text="First Name" /> + +memungkinkan untuk memperoleh obyek kotak teks dalam kode menggunakan $page->TextBox. +

+ + +

Tag Kontrol Template

+Tag kontrol template digunakan untuk mengkonfigurasi nilai properti awal dari kontrol yang memiliki template. Formatnya adalah sebagai berikut, + +<%@ PropertyName="PropertyValue" ... %> + +Seperti dalam tag komponen, PropertyName adalah tidak sensitif-huruf dan bisa berupa nama properti atau subproperti. +

+

+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 Init dari kontrol. +

+

+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. +

+ + +

Tag Komentar

+

+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, +

+ +<!--- +Komentar TIDAK TERLIHAT bagi pengguna-akhir +---> + +
Catatan: +Tag komentar baru <!--- ... ---> diperkenalkan sejak PRADO versi 3.1. Sebelumnya adalah <!-- ... --!> yang tidak dipakai lagi karena beberapa editor mempunyai masalah dalam penerangan-sintaks tag seperti itu.
+ +

Tag Include

+

+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 .tpl. +

+ +<%include path.to.templateFile %> + + +

+Template eksternal akan disisipkan di tempat di mana tag include terjadi dalam basis template. +

+

+Catatan, pengulangan penyertaan template tidak didukung, misalnya anda tidak dapat mempunyai tag include di dalam template eksternal. +

+ +
$Id: Templates1.page 1902 2007-05-07 04:17:37Z wei $
\ 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 @@ + +

Template: Bagian II

+ + +

Tag Konten Dinamis

+

+Tag konten dinamis diperkenalkan sebagai jalan pintas ke beberapa tag komponen yang umum dipakai. Tag-tag ini sebagian besar dipakai untuk menyajikan konten yang dihasilkan dari evaluasi beberapa ekspresi atau pernyataan PHP. Ini termasuk tag ekspresi, tag pernyataan, tag databind, parameter tags, tag asset dan tag lokalisasi. +

+ + +

Tag Ekspresi

+

+Tag ekspresi mewakili ekspresi PHP yang dievaluasi saat kontrol template dalam tahap PreRender. Hasil evaluasi ekspresi disisipkan di tempat di mana tag berada dalam template. Konteks (yaitu $this) dari ekspresi adalah kontrol yang memilik template. +

+

+Format tag ekspresi adalah sebagai berikut, +

+ +<%= PhpExpression %> + +

+Sebagai contoh, tag ekspresi berikut akan menampilkan judul halaman saat ini di tempat, +

+ +<%= $this->Title %> + + + +

Tag Pernyataan

+

+Tag pernyataan mirip dengan tag ekspresi, kecuali bahwa tag pernyataan berisi pernyataan PHP daripada ekspresi. Output dari pernyataan PHP (menggunakan contoh echo atau print dalam PHP) ditampilkan di tempat di mana tag pernyataan berada dalam template. Konteks (yaitu $this) dari pernyataan adalah kontrol yang memiliki template. Format tag pernyataan adalah sebagai berikut, +

+ +<%% +Pernyataan PHP +%> + +

+Contoh berikut menampilkan waktu saat ini dalam bahasa Belanda di tempat, +

+ +<%% +setlocale(LC_ALL, 'nl_NL'); +echo strftime("%A %e %B %Y",time()); +%> + + + +

Tag Databind

+

+Tag databind mirip dengan tag ekspresi, kecuali bahwa ekspresi dievaluasi hanya ketika panggilan dataBind() diterapkan pada kontrol yang mewakili tag databind. Konteks (yaitu $this) dari ekspresi databind adalah kontrol yang memiliki template. Format tag databind adalah sebagai berikut, +

+ +<%# PhpExpression %> + + + +

Tag Parameter

+

+Tag parameter dipakai untuk menyisipkan parameter aplikasi di tempat di mana ia muncul dalam template. Format tag parameter adalah sebagai berikut, +

+ +<%$ ParameterName %> + +

+Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau konfigurasi direktori halaman. Parameter dievaluasi saat template diberi contoh. +

+ + +

Tag Asset

+

+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. +

+

+Format tag asset adalah sebagai berikut, +

+ +<%~ LocalFileName %> + +

+di mana LocalFileName 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. +

+

+HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka. +

+ + +

Tag Lokalisasi

+

+Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut, +

+ +<%[string]%> + +

+di mana string akan diterjemahkan ke bahasa berbeda tergantung pada preferensi bahasa pengguna-akhir. Tag lokalisasi sebenarnya adalah jalan pintas ke fungsi panggil Prado::localize(string). +

+ +
$Id: Templates2.page 1650 2007-01-24 06:55:32Z wei $
\ 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 @@ + +

Template: Bagian III

+ + +

Tag Properti Dinamis

+

+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, +

+ +<com:ComponentType PropertyName=DynamicPropertyTag ...> +body content +</com:ComponentType> + +

+di mana anda dapat mengurung DynamicPropertyTag di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik. +

+

+Seperti tag konten dinamis, kami mempunyai tag ekspresi, tag databind, tag parameter, tag asset dan tag lokalisasi. (Catatan, tidak ada tag pernyataan di sini.) +

+ + +

Tag Ekspresi

+

+Tag ekspresi mewakili ekspresi PHP yang dievaluasi saat kontrol template dalam tahap PreRender. Hasil evaluasi ekspresi disisipkan di tempatkan ke properti komponen terkait. Format tag ekspresi adalah sebagai berikut, +

+ +<%= PhpExpression %> + +

+Dalam ekspresi, $this merujuk ke kontrol yang memiliki template. Contoh berikut menetapkan kontrol TLabel di mana properti Text diberi contoh seperti judul halaman saat ini saat kontrol TLabel sedang dibentuk, +

+ +<com:TLabel Text=<%= $this->Page->Title %> /> + + + +

Databind Tags

+

+Tag databind mirip dengan tag ekspresi, kecuali bahwa ekspresi dievaluasi hanya ketika panggilan dataBind() diterapkan pada kontrol yang mewakili tag databind. Konteks (yaitu $this) dari ekspresi databind adalah kontrol yang memiliki template. Tag databind tidak berlaku bagi seluruh komponen. Ia hanya digunakan untuk kontrol. +

+

+Format tag databind adalah sebagai berikut, +

+ +<%# PhpExpression %> + +

+Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string statis. Sebagai contoh, anda bisa menulis yang berikut dalam template, +

+ +<com:TLabel> + <prop:Text> + Today is <%= date('F d, Y',time()) %>. + The page class is <%= get_class($this) %>. + </prop:Text> +</com:TLabel> + +

+Sebelumnya, anda harus menggunakan ekspresi tunggal dengan penggabungan string untuk mendapatkan efek yang sama. +

+ + +

Parameter Tags

+

+Tag parameter dipakai untuk menyisipkan parameter aplikasi di tempat di mana ia muncul dalam template. Format tag parameter adalah sebagai berikut, +

+ +<%$ ParameterName %> + +

+Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau konfigurasi direktori halaman. Parameter dievaluasi saat template diberi contoh. +

+ + +

Tag Asset

+

+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. +

+

+Format tag asset adalah sebagai berikut, +

+ +<%~ LocalFileName %> + +

+di mana LocalFileName 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. +

+

+HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka. +

+ + +

Tag Lokalisasi

+

+Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut, +

+ +<%[string]%> + +

+di mana string akan diterjemahkan ke bahasa berbeda tergantung pada preferensi bahasa pengguna-akhir. Tag lokalisasi sebenarnya adalah jalan pintas ke fungsi panggil Prado::localize(string). +

+ +
$Id: Templates3.page 2036 2007-06-26 17:12:54Z xue $
\ 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 @@ + + +

Pemetaan URL (URL bersahabat)

+ + + +

+Modul TUrlMapping membolehkan PRADO membentuk dan mengenali URL bersahabat berdasarkan pada pola spesifik. +

+ +

+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 +$this->Request['paramname']). Pola juga dipakai untuk membentuk URL yang dikustomisasi. Dalam hal ini, parameter dalam pola yang diterapkan akan diganti dengan nilai variabel GET terkait. +

+ +

+Untuk menggunakan TUrlMapping, seseorang harus menyetel properti UrlManager dari modul THttpRequest sebagai ID modul TUrlMapping. Lihat contoh berikut, + + + + + + + + + + +

+ +

+Contoh di atas adalah bagian dari konfigurasi aplikasi dari demo blog dalam rilis PRADO. Ia menghidupkan pengakuan format URL berikut: +

+ + +

+ServiceParameter dan ServiceID (ID standarnya adalah 'page') masing-masing menyetel parameter layanan dan ID layanan terhadap modul Request. Parameter layanan untuk layanan TPageService 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 Layanan untuk lebih jelasnya. +

+ +
Info: +TUrlMapping harus dikonfigurasi sebelum +modul Request mengatasi permintaan. +Ini biasanya berarti mendeklarasikan modul TUrlMapping sebelum tag +<services> dalam konfigurasi aplikasi. +Menetapkan pemetaan dalam direktori config.xml tidak didukung. +
+ +

Menetapkan Pola URL

+

+TUrlMapping menghidupkan pengakuan terhadap format URL yang dikustomisasi berdasarkan pada daftar pola URL yang ditetapkan sebelumnya. Setiap pola ditetapkan dalam tag <url>. +

+ +

+Nilai atribut Pattern dan Parameters adalah pola ekspresi reguler yang menentukan kriteria pemetaan. Properti Pattern mengambil ekspresi reguler dengan nama parameter dikurung antara kurung kurawal kiri '{' dan kurung kurawal kanan '}'. Pola untuk setiap parameter dapat disetel menggunakan koleksi atribut Parameters. +Sebagai contoh, + + + +

+Contoh mirip dengan ekspresi reguler berikut (ia memakai fitur "named group" dalam ekspresi reguler yang tersedia dalam PHP): + + + RegularExpression="/articles\/(?P\d{4})\/(?P\d{2})\/(?P\d+)/u" + +

+Dalam contoh di atas, pola berisi 3 parameter bernama "year", +"month" dan "day". Pola untuk parameter ini masing-masing adalah, "\d{4}" (4 digit), "\d{2}" (2 digit) +dan "\d+" (1 atau lebih digit). +Intinya, nama dan nilai atribut Parameters digunakan sebagai substrings dalam penggantian tempat pada string Pattern untuk membentuk string ekspresi reguler lengkap. +

+ +
Catatan: Jika anda bermaksud untuk menggunakan properti RegularExpression anda perlu mengulang garis miring dalam ekspresi reguler. +
+ +

Berikut dari contoh pola di atas, +sebuah URL "http://example.com/index.php/articles/2006/07/21" akan disamakan dan benar. Akan tetapi, "http://example.com/index.php/articles/2006/07/hello" tidak benar karena pola parameter "day" tidak memuaskan. + Dalam kelas TUrlMappingPattern standarnya, pola disamakan dengan properti path dari hanya URL. Sebagai contoh, hanya bagian +"/index.php/articles/2006/07/21" dari URL yang ditetapkan. +

+ +

+URL permintaan yang dipetakan mirip dengan index.php?page=ArticleView&year=2006&month=07&day=21. +Nilai parameter tersedia melalui obyek standar Request. Sebagai contoh, $this->Request['year']. +

+ +

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. +

+ +

Membentuk URL Dikustomisasi

+

+Sejak versi 3.1.1, TUrlMapping mulai mendukung pembentukan format URL terkustomisasi berdasarkan pola yang disediakan. Untuk menghidupkan fitur ini, setel TUrlMapping.EnableCustomUrl menjadi true. Saat THttpRequest.constrcutUrl() dipanggil, pembantukan kerja URL aktual akan didelegasikan ke turunan TUrlMappingPattern yang sama. Ia mengganti parameter dalam pola dengan variabel GET terkait dikirimkan ke constructUrl(). +

+ +

+Pola yang sama adalah propreti ServiceID dan ServiceParameter yang sama seperti yang dikirimkan ke constructUrl() dan parameter yang diberi nama ditemukan dalam variabel GET. Sebagai contoh, constructUrl('Posts.ListPost',array('cat'=>2)) akan menggunakan pola pihak ketiga dalam contoh di atas. +

+ +

+Standarnya TUrlMapping akan membentuk URL yang diawali dengan yang saat ini meminta path naskah PHP, seperti /path/to/index.php/article/3. Para pengguna dapat mengubah perilaku ini dengan menetapkan prefiks URL secara spesifik melalui properti UrlPrefix-nya. Sebagai contoh, jika konfigurasi server Web memperlakukan index.php sebagai naskah standar, kita bisa menyetel UrlPrefix sebagai /path/to dan URL yang dibentuk akan terlihat seperti /path/to/article/3. +

+ +
$Id: UrlMapping.page 2118 2007-08-11 14:30:07Z xue $
\ 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 @@ + + +

TCaptcha

+ + +

+TCaptcha menampilkan CAPTCHA yang bisa dipakai untuk menentukan apakah input dimasukan oleh pengguna asli ataukah beberapa program. TCaptcha 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. +

+ +

+Untuk menggunakan TCaptcha, anda hrus menghidupkan ekstensi PHP GD2 dengan dukungan font TrueType. Tidak seperti naskah CAPTCHA lain, TCaptcha tidak memerlukan sesi atau cookie. +

+ +

+Token yang dibuat oleh TCaptcha dapat dikonfigurasi dalam beberapa cara. Untuk menetapkan panjang karakter dalam token, setel MinTokenLength dan MaxTokenLength. Untuk menggunakan perbandingan huruf tidak sensitif-huruf dan hanya membuat token huruf-besar, setel CaseSensitive ke false. Para pengguna tingkat lanjut dapat mencoba untuk menyetel TokenAlphabet guna menetapkan karakter mana yang akan muncul dalam token yang dibuatnya. +

+ +

+Untuk menetapkan tampilan dari gambar token yang dibuat, setel TokenImageTheme 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 TokenFontSize. Dalam keadaan tertentu, panjang gambar adalah proporsional bagi ukuran font. Anda juga bisa menyetel Width untuk mengubah gambar yang dihasilkan ke ukuran yang anda inginkan, gambar yang diskala mungkin tidak terlihat baik. +

+ +

+Setelah postback, input pengguna dapat di validasi dengan memanggil metode TCaptcha.validate(). Jauh lebih mudah, anda dapat menggunakan TCaptchaValidator untuk mengotomasi pekerjaan validasi bagi anda. TCaptchaValidator 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 TCaptcha.regenerateToken() secara manual. +

+ +

+Template berikut memperlihatkan penggunaan umum dari kontrol TCaptcha: +

+ +<com:TCaptcha ID="Captcha" /> +<com:TTextBox ID="Input" /> +<com:TCaptchaValidator CaptchaControl="Captcha" + ControlToValidate="Input" + ErrorMessage="You are challenged!" /> + + + + +
$Id: Captcha.page 2175 2007-08-29 19:57:50Z xue $
\ 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 @@ -7,6 +7,10 @@ TButton mewakili tombol klik pada halaman Web, dipakai terutama sebagai pemicu postback halaman. +
  • + TCaptcha menampilkan CAPTCHA untuk menjaga spammers dari pendaftaran untuk akun online tertentu. +
  • +
  • TCheckBox mewakili kotak centang pada halaman Web, bisa digunakan untuk mengumpulkan dua-kondisi input pengguna.
  • 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

    - Karena TActiveRecord memerluas TComponent, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti $level untuk menggunakan kelas UserRecord: + Karena TActiveRecord memperluas TComponent, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti $level untuk menggunakan kelas UserRecord:

    class UserRecord extends TActiveRecord { @@ -120,7 +120,7 @@ Nantinya kita harus dapat menggunakan pengambil/penentu guna membolehkan pengamb
    Info: TActiveRecord juga dapat bekerja dengan view database dengan menetapkan konstan TABLE terkait ke nama view. Akan tetapi, obyek yang dikembalikan dari view hanya-baca, memanggil metode -save() atau delete() akan memunculkan kekecualian. +save() atau delete() akan memunculkan eksepsi.

    @@ -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 Players dipakai untuk menentukan nama kunci t

    Info: -Rekaman Aktif mendukung hubungan kunci asing multipel tabel dengan batasan bahwa setiap hubungan menunjukan tabel yang unik. Sebagai contoh, tabel Players hanya dapat memiliki sastu set hubungan kunci asing dengan tabel Teams, ia boleh mempunyai hubungan lain yang menunjuk ke tabel lainnya (termasuk tabel Players itu sendiri). +Rekaman Aktif mendukung hubungan kunci asing multipel tabel dengan batasan bahwa setiap hubungan menunjukan tabel yang unik. Sebagai contoh, tabel Players hanya dapat memiliki satu set hubungan kunci asing dengan tabel Teams, ia boleh mempunyai hubungan lain yang menunjuk ke tabel lainnya (termasuk tabel Players itu sendiri).

    Hubungan "has many" tidak diambil secara otomatis ketika anda menggunakan salah satu metode finder Rekaman Aktif. @@ -578,7 +578,7 @@ Metode with_xxx() (di mana xxx adalah nama properti hubungan,

    Catatan: Penting untuk dimengerti bahwa obyek terkait diambil menggunakan query tambahan. Query pertama mengambil obyek sumber, misalnya TeamRecord dalam contoh kode di atas. Query kedua dipakai untuk mengambil obyek PlayerRecord 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, Pemeta Data SqlMap 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, Pemeta Data SqlMap diapat dupertimbangkan.

    Hubungan Belongs To

    @@ -666,7 +666,7 @@ Kemudian, obyek PlayerRecord mempunyai properti ($team) yang a

    Hubungan Has One

    Hubungan entitas antara Players dan Profiles adalah satu ke satu. Yaitu, setiap obyek PlayerRecord has one obyek ProfileRecord (mungkin tidak ada atau null). -Hubungan has one hampir identik ke hubungan has many dengan kekecualian bahwa obyek terkait hanya satu obyek (bukan koleksi obyek). +Hubungan has one hampir identik ke hubungan has many dengan eksepsi bahwa obyek terkait hanya satu obyek (bukan koleksi obyek).

    Hubungan Leluhur Anak

    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 -- cgit v1.2.3