From 654a9cae43358c7eecf3b522e9876aa7815e2453 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 7 Dec 2015 15:57:51 +0100 Subject: Move urls from pradosoft.com to github's project page; drop unmaintained quickstart tutorial translations --- .../protected/pages/Day3/id/CreateEditUser.page | 212 --------------------- 1 file changed, 212 deletions(-) delete mode 100755 demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page (limited to 'demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page') diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page deleted file mode 100755 index 2f03ecec..00000000 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page +++ /dev/null @@ -1,212 +0,0 @@ - - -

Membuat Halaman EditUser

- -

-Halaman EditUser sangat mirip dengan NewUser. Perbedaan utamanya adalah bahwa saat EditUser awalnya diminta, field input harus diinisialisasi dengan informasi pengguna yang sudah ada. Sedikit perbedaan lainnya adalah bahwa EditUser juga bisa diakses oleh pengguna normal. -

- -

-Untuk menentukan akun pengguna mana yang diedit, kita menggunakan kebijakan berikut: -

- - -

-Kita membuat dua file protected/pages/users/EditUser.page dan protected/pages/users/EditUser.php masing-masing untuk menyimpan template halaman dan kelas halaman. -

- -

Membuat Template Halaman

-

-Seperti yang telah Anda tebak, template halaman EditUser sebagian besar sama seperti pada NewUser. Selain perbedaan dalam judul halaman dan judul tombol submit, ada tiga perbedaan utama. -

- -

- - -<%@ Title="My Blog - Edit User" %> - -<com:TContent ID="Main"> - -

Edit User

- -Username: -<com:TLabel ID="Username" /> - -
-Password: -
-<com:TTextBox ID="Password" TextMode="Password" /> - -
-Re-type Password: -<com:TCompareValidator - ControlToValidate="Password" - ControlToCompare="Password2" - ErrorMessage="Your password entries did not match." - Display="Dynamic" /> -
-<com:TTextBox ID="Password2" TextMode="Password" /> - -
-Email Address: -<com:TRequiredFieldValidator - ControlToValidate="Email" - ErrorMessage="Please provide your email address." - Display="Dynamic" /> -<com:TEmailAddressValidator - ControlToValidate="Email" - ErrorMessage="You entered an invalid email address." - Display="Dynamic" /> -
-<com:TTextBox ID="Email" /> - -<com:TControl Visible="<%= $this->User->IsAdmin %>"> -
-Role: -
-<com:TDropDownList ID="Role"> - <com:TListItem Text="Normal User" Value="0" /> - <com:TListItem Text="Administrator" Value="1" /> -</com:TDropDownList> -</com:TControl> - -
-First Name: -
-<com:TTextBox ID="FirstName" /> - -
-Last Name: -
-<com:TTextBox ID="LastName" /> - -
-<com:TButton Text="Save" OnClick="saveButtonClicked" /> - -</com:TContent> -
- - -

Membuat Kelas Halaman

- -

-Berdasarkan pada deskripsi di atas dan template, kita perlu menulis kelas halaman yang mengawali input dengan informasi pengguna yang sudah ada. Sebagai tambahan, kelas halaman juga perlu untuk mengimplementasikan metode saveButtonClicked() yang disertakan pada event tombol "save" OnClick. -

- - -class EditUser extends TPage -{ - /** - * Menginisialisasi input dengan data pengguna yang sudah ada. - * Metode ini dipanggil oleh kerangka kerja saat halaman diinisialisasi. - * @param mixed event parameter - */ - public function onInit($param) - { - parent::onInit($param); - if(!$this->IsPostBack) // jika halaman awalnya diminta - { - // Ambil data pengguna yang sudah ada. Ini sama dengan: - // $userRecord=$this->getUserRecord(); - $userRecord=$this->UserRecord; - - // Populasikan kontrol input dengan data pengguna yang sudah ada - $this->Username->Text=$userRecord->username; - $this->Email->Text=$userRecord->email; - $this->Role->SelectedValue=$userRecord->role; - $this->FirstName->Text=$userRecord->first_name; - $this->LastName->Text=$userRecord->last_name; - } - } - - /** - * Menyimpan akun pengguna jika semua input sudah benar. - * Metode ini merespon event OnClick pada tombol "save". - * @param mixed event sender - * @param mixed event parameter - */ - public function saveButtonClicked($sender,$param) - { - if($this->IsValid) // saat semua validasi sukses - { - // Ambil data pengguna yang sudah ada. Ini sama dengan: - $userRecord=$this->UserRecord; - - // Ambil data input - $userRecord->username=$this->Username->Text; - // mutakhirkan kata sandi saat input tidak kosong - if(!empty($this->Password->Text)) - $userRecord->password=$this->Password->Text; - $userRecord->email=$this->Email->Text; - // mutakhirkan aturan jika pengguna saat ini adalah administrator - if($this->User->IsAdmin) - $userRecord->role=(int)$this->Role->SelectedValue; - $userRecord->first_name=$this->FirstName->Text; - $userRecord->last_name=$this->LastName->Text; - - // simpan ke database melalui mekanisme Rekaman Aktif - $userRecord->save(); - - // alihkan browser ke homepage - $this->Response->redirect($this->Service->DefaultPageUrl); - } - } - - /** - * Mengembalikan data pengguna yang diedit. - * @return UserRecord data pengguna yang diedit. - * @throws THttpException jika data pengguna tidak ditemukan. - */ - protected function getUserRecord() - { - // pengguna yang diedit adalah pengguna yang saat ini sudah masuk - $username=$this->User->Name; - // jika var GET 'username' tidak kosong dan pengguna saat ini adalah - // administrator, lebih baik kita menggunakan nilai var GET. - if($this->User->IsAdmin && $this->Request['username']!==null) - $username=$this->Request['username']; - - // gunakan Rekaman Aktif untuk melihat nama pengguna yang ditetapkan - $userRecord=UserRecord::finder()->findByPk($username); - if(!($userRecord instanceof UserRecord)) - throw new THttpException(500,'Username is invalid.'); - return $userRecord; - } -} - - - -Metode onInit() dipanggil oleh PRADO selama salah satu masa hidup halaman. Metode masa hidup umum lainnya ditimpa termasuk onPreInit(), onLoad() dan onPreRender(). - - -

Menambah Pemeriksaan Perijinan

-

-Agar halaman EditUser juga bisa diakses oleh para pengguna (users="@"), kita juga perlu menyesuaikan file konfigurasi halaman protected/pages/users/config.xml. -

- - - - - - - - - - - - - -

Pengujian

-

-Untuk menguji halaman EditUser, kunjungi URL http://hostname/blog/index.php?page=users.EditUser&username=demo. Anda mungkin perlu masuk lebih dulu jika Anda belum melakukannya. Coba masuk dengan akun berbeda (e.g. admin/demo, demo/demo) dan lihat bagaimana halaman ditampilkan secara berbeda. -

- -
\ No newline at end of file -- cgit v1.2.3