diff options
author | Jean-Luc Gyger <jean-luc.gyger@vysual.ch> | 2016-02-11 10:01:12 +0100 |
---|---|---|
committer | Jean-Luc Gyger <jean-luc.gyger@vysual.ch> | 2016-02-11 10:01:12 +0100 |
commit | d70861a8f9368773f2f0291454e9420174e6c14a (patch) | |
tree | e44a32e401211422fb05da355c9eef4d5934d9e9 /demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page | |
parent | d32f65815eb6feb4bcb8a0c85572f722d7826342 (diff) | |
parent | 275f16b90a92c62935cb691d11e0bd124acf64e4 (diff) |
Merge branch 'master' of https://github.com/majuca/prado
Diffstat (limited to 'demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page')
-rwxr-xr-x | demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page deleted file mode 100755 index f805d477..00000000 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page +++ /dev/null @@ -1,137 +0,0 @@ -<com:TContent ID="Main">
-
-<h1>Membuat Halaman <tt>AdminUser</tt></h1>
-
-<p>
-Halaman <tt>AdminUser</tt> menampilkan semua akun pengguna dalam sebuah daftar agar administrator dapat melakukan beberapa pekerjaan administratif. Demi kemudahan, pekerjaan administratif sistem blog kita mendukung termasuk mengedit dan menghapus akun pengguna.
-</p>
-
-<p>
-Kita akan menampilkan daftar pengguna dalam sebuah tabel. Setiap baris tabel mewakili satu akun pengguna, dan kolom berikut ditampilkan:
-</p>
-<ul>
-<li>Username - menampilkan nama pengguna. Dalam setiap sel sebuah hiperlink ditampilkan membawa ke halaman <a href="?page=Day3.CreateEditUser">EditUser</a> terkait.</li>
-<li>Email - menampilkan email.</li>
-<li>Administrator - menampilkan apakah akun pengguna adalah aturan administrator.</li>
-<li>Command - menampilkan kolom dengan tombol "Delete". Mengklik pada setiap tombol akan mengakibatkan penghapusan akun pengguna terkait.</li>
-</ul>
-
-<p>
-Kita membuat dua file <tt>protected/pages/users/AdminUser.page</tt> dan <tt>protected/pages/users/AdminUser.php</tt> masing-masing untuk menyimpan template halaman dan kelas halaman.
-</p>
-
-<h2>Membuat Template Halaman</h2>
-<p>
-Kita menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.DataGrid">TDataGrid</a> untuk menampilkan akun pengguna. Berdasarkan pada analisis di atas, kita mengkonfigurasi empat kolom berikut:
-</p>
-<ul>
-<li><a href="http://www.pradosoft.com/docs/classdoc/THyperLinkColumn">THyperLinkColumn</a> menampilkan kolom nama pengguna. URL dibentuk berdasarkan pada ekstensi PHP yang ditetapkan dalam properti <tt>DataNavigateUrlFormatString</tt>.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TBoundColumn">TBoundColumn</a> menampilkan kolom email.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TCheckBoxColumn">TCheckBoxColumn</a> menggunakan kotak centang untuk menunjukan apakah akun pengguna adalah aturan administrator.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TButtonColumn">TButtonColumn</a> menampilkan kolom dengan tombol "Delete".</li>
-</ul>
-
-<p>Template halaman lengkap ditampilkan seperti berikut:</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<%@ Title="My Blog - Manage User Accounts" %>
-
-<com:TContent ID="Main">
-
-<h1>Manage User Accounts</h1>
-
-<a href="<%= $this->Service->constructUrl('users.NewUser')%>">Create New User</a>
-<br/>
-
-<com:TDataGrid ID="UserGrid"
- DataKeyField="username"
- AutoGenerateColumns="false"
- OnDeleteCommand="deleteButtonClicked">
-
- <com:THyperLinkColumn
- HeaderText="Username"
- DataTextField="username"
- DataNavigateUrlField="username">
- <prop:DataNavigateUrlFormatString>#
- $this->Service->constructUrl('users.EditUser',array('username'=>{0}))
- </prop:DataNavigateUrlFormatString>
- </com:THyperLinkColumn>
-
- <com:TBoundColumn
- HeaderText="Email"
- DataField="email" />
-
- <com:TCheckBoxColumn
- HeaderText="Administrator"
- DataField="role" />
-
- <com:TButtonColumn
- HeaderText="Command"
- Text="Delete"
- ButtonType="PushButton"
- CommandName="delete" />
-
-</com:TDataGrid>
-
-</com:TContent>
-</com:TTextHighlighter>
-
-
-<h2>Membuat Kelas Halaman</h2>
-
-<p>
-Dalam template halaman di atas, event <tt>OnDeleteCommand</tt> datagrid dengan metode <tt>deleteButtonClicked()</tt> akan kita implementasikan dalam kelas halaman. Sebagai tambahan, datagrid perlu dipopulasi dengan data akun pengguna saat halaman diinisialisasi. Oleh karena itu, kita menulis kelas halaman seperti berikut:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="php">
-class AdminUser extends TPage
-{
- /**
- * Mempopulai datagrid dengan daftar pengguna.
- * Metode ini dipanggil oleh kerangka kerja saat inisialisasi halaman
- * @param mixed event parameter
- */
- public function onInit($param)
- {
- parent::onInit($param);
- // ambil semua informasi data akun
- $this->UserGrid->DataSource=UserRecord::finder()->findAll();
- // mengikat data ke komponen antarmua
- $this->UserGrid->dataBind();
- }
-
- /**
- * Menghapus rekaman pengguna yang ditetapkan.
- * Metode ini merespon ke event OnDeleteCommand pada datagrid.
- * @param TDataGrid pengirim event
- * @param TDataGridCommandEventParameter parameter event
- */
- public function deleteButtonClicked($sender,$param)
- {
- // dapatkan item datagrid yang berisi tombol hapus yang diklik
- $item=$param->Item;
- // dapatkan kunci primer terkait ke item datagrid
- $username=$this->UserGrid->DataKeys[$item->ItemIndex];
- // menghapus rekaman pengguna dengan kunci primer nama pengguna
- UserRecord::finder()->deleteByPk($username);
- }
-}
-</com:TTextHighlighter>
-
-<p>
-Dalam kode di atas, metode <tt>deleteButtonClicked()</tt> dipanggil kapan saja tombol "Delete" diklik. untuk menentukan baris mana pada tombol yang diklik, kita memeriksa properti <tt>Item.ItemIndex</tt> pada parameter event. Untuk selanjutnya mengidentifikasi akun pengguna mana yang akan dihapus, kita mengambil nilai kunci primer (username) melalui properti <tt>DataKeys</tt> pada DataGrid.
-</p>
-
-<com:TipBox>
-Semua kontrol <a href="http://www.pradosoft.com/docs/classdoc/TDataBoundControl">data-bound</a> mempunyai pola penggunaan yang sama. Yaitu, Setel properti <tt>DataSource</tt> dengan data dan panggil metode <tt>dataBind()</tt> untuk mengikat data ke struktur internal kontrol.
-</com:TipBox>
-
-
-<h2>Pengujian</h2>
-<p>
-Untuk menguji halaman <tt>AdminUser</tt>, kunjungi URL <tt>http://hostname/blog/index.php?page=users.AdminUser</tt>. Anda mungkin perlu masuk sebagai administrator lebih dahulu jika Anda belum melakukannya. Kita akan melihat hasil seperti berikut.
-</p>
-
-<img src="<%~ output3.gif %>" class="output" />
-
-</com:TContent>
\ No newline at end of file |