Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
6
Ubah menjadi seperti berikut:
widget('zii.widgets.CMenu',array( 'items'=>array( array('label'=>'Home', 'url'=>array('/site/index')), array('label'=>'Kelola Diklat', 'url'=>array('/category/index')),
Hasilnya memberikan link Kelola Diklat dengan tampilan (view) adalah category/index.php. ke dalam Menu.
2. Modifikasi Tampilan Kategori Untuk merubah tampilan nya buka file nya di dalam folder berikut: C:\xampp\htdocs\aplikasiku\protected\views\category lalu edit index.php Ubah
getAttributeLabel('category_name')); ?>: category_name); ?>
Menjadi cukup seperti ini
Ini akan menjadikan tampilan ketika di klik menu kategori, akan muncul listing data kategori saja.
3. Modifikasi Isi Halaman Ketika diklik masing‐masing kategori kita akan dihadapkan pada tampilah nama dari kategori tersebut beserta link Operations‐nya. Kini kita akan merubah tampilanya menjadi daftar diklat yang masuk dalam kategori tersebut a. Pertama masuk ke folder view dari kategori lalu buka file view.php, hapus semua isinya lalu ganti menjadi berikut ini breadcrumbs=array( 'Categories'=>array('index'), $model->category_name, );?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama kategori. b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari kategori setelah diklik adalah list diklat. Ada 5 langkah sbb yaitu: 1) Pada TrainingController definisikan dulu parameter Category pada bagian ActionCreate. Buka folder controller lalu buka file TrainingController.php atur hingga tampilanya sama dengan code dibawah ini: Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
7
public function actionCreate($id) { $model=new Training; if(isset($_POST['Training'])) { $model->attributes=$_POST['Training']; $model->categoryid=$id; if($model->save()) $this->redirect(array('view','id'=>$model>idtraining)); } $this->render('create',array( 'model'=>$model, )); }
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat tanpa kategori sama sekali. 2) Sekarang saatnya membuat link Menambah Diklat pada view Category. Masuk ke folder view dari kategori lalu buka file view.php tambahkan kode dibawah ini : menu=array( array('label'=>'Tambah Diklat Baru', 'url'=>array('training/create','id'=>$model->idcategory )),); ?>
3) Ubah juga view dari _form.php dari Training, hilangkan field Categoryid atau untuk amannya uncheck dengan // labelEx($model,'categoryid'); ?> textField($model,'categoryid'); ?> error($model,'categoryid'); ?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah mendefinisikan kategori untuk setiap Diklat yang dipilih, selain itu kalau diaktifkan juga akan terjadi konflik dualisme kategori. 4) Dibagian view Kategori ini, selain bisa membuat training baru kita juga ingin menambah peserta ke masing‐masing diklat. Buka CategoryController.php atur script pada actionView menjadi seperti berikut: public function actionView($id) { $totraining=new Training('search'); $totraining->unsetAttributes(); $totraining->categoryid=$id; $this->render('view',array( 'model'=>$this->loadModel($id), 'totraining'=>$totraining, )); }
5) Masuk ke folder view dari kategori lalu buka file view.php, kita ingin menampilkan listing diklat yang dikategorikan per masing‐masing kategori, tambahkan kode sebagai berikut: widget('zii.widgets.grid.CGridView', array( 'id'=>'training-grid', 'dataProvider'=>$totraining->search(), //'filter'=>$totraining, 'emptyText'=>'Belum ada training pada kategori ini',
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
8
'summaryText'=>'', 'columns'=>array( array( 'name'=>'No', 'type'=>'raw', 'value'=>'$data->idtraining', ), array( 'name'=>'Nama diklat', 'type'=>'raw', 'value'=>'Chtml::link($data>name_training,array(\'training/view\',\'id\'=>$data->idtraining))', ), array( 'name'=>'Jamlat', 'type'=>'raw', 'value'=>'$data->hours', ), )));?>
Berhasil sudah anda membuat tampilan statis kategori diklat sampai keisi‐isinya.
4. Modifikasi Sub isi Halaman Aplikasi Langkah ini adalah mirip langkah membuat kategori ke diklat, kita akan membuat peserta yang dikategorikan per masing‐masing diklat. Hasilnya adalah mirip sebelumnya, kalau sebelumnya ketika kategori diklik, yang muncul adalah listing diklat, maka langkah ini adalah jika diklat diklik yang muncul adalah listing peserta diklat. Tentu ada sedikit perbedaan yaitu tidak dilakukan langkah 2) karena tidak ada sub sub isi halaman, artinya peserta diklat tidak memiliki anak kategori lagi, di kondisi tertentu bisa saja ada tapi untuk kali ini tidak ada. Langkah ketiga juga tidak kita ulangi karena kita telah memasukkan pembahasan pembuatan Mari kita mulai. a. Pertama masuk ke folder view dari training lalu buka file view.php, hapus semua isinya lalu ganti menjadi berikut ini breadcrumbs=array( 'Categories'=>array('index'), $model->name_training, ); ?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama diklat. b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari diklat setelah diklik adalah list peserta. Ada 5 langkah sbb yaitu: 1) Pada ParticipantController definisikan dulu parameter Training pada bagian ActionCreate. Buka folder controller lalu buka file ParticipantController.php atur hingga tampilanya sama dengan code dibawah ini: public function actionCreate($id) { $model=new Participant; if(isset($_POST['Participant'])) { $model->attributes=$_POST['Participant']; $model->trainingid=$id; if($model->save()) $this->redirect(array('view','id'=>$model>idparticipant)); } $this->render('create',array(
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
9
'model'=>$model, )); }
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat tanpa kategori sama sekali. 2) Sekarang saatnya membuat link Menambah Peserta pada view Training. Masuk ke folder view dari Training lalu buka file view.php tambahkan kode dibawah ini : menu=array( array('label'=>'Daftarkan Peserta', 'url'=>array('participant/create','id'=>$model->idtraining )),); ?>
3) Ubah juga view dari _form.php dari Participant, hilangkan field Trainingid atau untuk amannya uncheck dengan // labelEx($model,'trainingid'); ?> textField($model,'trainingid'); ?> error($model,'trainingid'); ?>?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah mendefinisikan Diklat untuk setiap Peserta yang dipilih, selain itu kalau diaktifkan juga akan terjadi konflik dualisme Diklat. 4) Dibagian view Training ini, selain bisa membuat training baru kita juga ingin menambah peserta ke masing‐masing diklat. Buka TrainingController.php atur script pada actionView menjadi seperti berikut: public function actionView($id) { $toparticipant=new Participant('search'); $toparticipant->unsetAttributes(); $toparticipant->trainingid=$id; $this->render('view',array( 'model'=>$this->loadModel($id), 'toparticipant'=>$toparticipant, )); }
5) Masuk ke folder view dari Training lalu buka file view.php, kita ingin menampilkan listing diklat yang dikategorikan per masing‐masing training, tambahkan kode sebagai berikut: widget('zii.widgets.grid.CGridView', array( 'id'=>'participant-grid', 'dataProvider'=>$toparticipant->search(), //'filter'=>$toparticipant, 'emptyText'=>'Belum ada Peserta yang mendaftar pada diklat ini', 'summaryText'=>'', 'columns'=>array( array( 'name'=>'No', 'type'=>'raw', 'value'=>'$data->idparticipant', ), array( 'name'=>'Nama Peserta', 'type'=>'raw', 'value'=>'Chtml::link($data>name_participant,array(\'participant/view\',\'id\'=>$data>idparticipant))',
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
10
),
array( 'name'=>'Jamlat', 'type'=>'raw', 'value'=>'$data->city', ), )));?>
Satu langkah lagi akan saya tambahkan yaitu tampilan dari Participant, buka folder view, participant, view.php 1. Breadcrumbs dari participant $this->breadcrumbs=array( 'Participants'=>array('index'), $model->idparticipant, );
Ubah menjadi seperti ini $this->breadcrumbs=array( 'Participants'=>array('index'), $model->name_participant, );
2. Ubah pula operations dari participant $this->menu=array( array('label'=>'List Participant', 'url'=>array('index')), array('label'=>'Create Participant', 'url'=>array('create')), array('label'=>'Update Participant', 'url'=>array('update', 'id'=>$model->idparticipant)), array('label'=>'Delete Participant', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model>idparticipant),'confirm'=>'Are you sure you want to delete this item?')), array('label'=>'Manage Participant', 'url'=>array('admin')), );
Ubah menjadi seperti ini $this->menu=array( array('label'=>'Ubah Peserta', 'url'=>array('update', 'id'=>$model->idparticipant)), array('label'=>'Hapus Peserta', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model>idparticipant),'confirm'=>'Are you sure you want to delete this item?')), );
3. Kemudian ubah pula tampilan dari tulisan peserta diklat dari menjadi
4. Data peserta juga ingin kita ubah, dari seperti ini widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'idparticipant', 'name_participant', 'nip', 'city', 'trainingid', ), )); ?>
Menjadi begini widget('zii.widgets.CDetailView', array( 'data'=>$model,
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
11
'attributes'=>array( 'name_participant', 'nip', 'city', ), )); ?>
Langkah berikutnya, anda bisa berkreasi sendiri tentunya. Misal dihalaman update ingin diubah, atau halaman Manage menurut anda perlu ditampilkan, halaman create ingin dimodif dll. Hal penting yang harus diperhatikan adalah bahwa, setiap halaman view adalah hasil representasi dari proses coding yang telah kita buat di controller, function actionView, action adalah akan menghasilkan view.php, actionCreate akan menghasilkan create.php dst.
B. REFERENSI http://www.yiiframework.com/doc/guide/1.1/id http://www.yiiframework.com/wiki/250/yii‐for‐beginners/
C. BIOGRAFI PENULIS Ninin Sapto Hargiyanto. Menyelesaikan Diploma di STAN, seorang Fungsional Pranata Komputer di Kementerian Keuangan, Jakarta. Bidang peminatan di Ilmu Komputer adalah Web Development, Networking serta Linux.
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
12
Hasilnya memberikan link Kelola Diklat dengan tampilan (view) adalah category/index.php. ke dalam Menu.
2. Modifikasi Tampilan Kategori Untuk merubah tampilan nya buka file nya di dalam folder berikut: C:\xampp\htdocs\aplikasiku\protected\views\category lalu edit index.php Ubah
Categories
menjadiPilih Kategori Diklat
Tampilan listingnya ternyata diarahkan ke _view, buka lagi file C:\xampp\htdocs\aplikasiku\protected\views\category\_view.php Ubah getAttributeLabel('idcategory')); ?>: idcategory), array('view', 'id'=>$data->idcategory)); ?>getAttributeLabel('category_name')); ?>: category_name); ?>
Menjadi cukup seperti ini
category_name), array('view', 'id'=>$data->idcategory)); ?>
Ini akan menjadikan tampilan ketika di klik menu kategori, akan muncul listing data kategori saja.
3. Modifikasi Isi Halaman Ketika diklik masing‐masing kategori kita akan dihadapkan pada tampilah nama dari kategori tersebut beserta link Operations‐nya. Kini kita akan merubah tampilanya menjadi daftar diklat yang masuk dalam kategori tersebut a. Pertama masuk ke folder view dari kategori lalu buka file view.php, hapus semua isinya lalu ganti menjadi berikut ini breadcrumbs=array( 'Categories'=>array('index'), $model->category_name, );?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama kategori. b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari kategori setelah diklik adalah list diklat. Ada 5 langkah sbb yaitu: 1) Pada TrainingController definisikan dulu parameter Category pada bagian ActionCreate. Buka folder controller lalu buka file TrainingController.php atur hingga tampilanya sama dengan code dibawah ini: Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
7
public function actionCreate($id) { $model=new Training; if(isset($_POST['Training'])) { $model->attributes=$_POST['Training']; $model->categoryid=$id; if($model->save()) $this->redirect(array('view','id'=>$model>idtraining)); } $this->render('create',array( 'model'=>$model, )); }
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat tanpa kategori sama sekali. 2) Sekarang saatnya membuat link Menambah Diklat pada view Category. Masuk ke folder view dari kategori lalu buka file view.php tambahkan kode dibawah ini : menu=array( array('label'=>'Tambah Diklat Baru', 'url'=>array('training/create','id'=>$model->idcategory )),); ?>
3) Ubah juga view dari _form.php dari Training, hilangkan field Categoryid atau untuk amannya uncheck dengan // labelEx($model,'categoryid'); ?> textField($model,'categoryid'); ?> error($model,'categoryid'); ?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah mendefinisikan kategori untuk setiap Diklat yang dipilih, selain itu kalau diaktifkan juga akan terjadi konflik dualisme kategori. 4) Dibagian view Kategori ini, selain bisa membuat training baru kita juga ingin menambah peserta ke masing‐masing diklat. Buka CategoryController.php atur script pada actionView menjadi seperti berikut: public function actionView($id) { $totraining=new Training('search'); $totraining->unsetAttributes(); $totraining->categoryid=$id; $this->render('view',array( 'model'=>$this->loadModel($id), 'totraining'=>$totraining, )); }
5) Masuk ke folder view dari kategori lalu buka file view.php, kita ingin menampilkan listing diklat yang dikategorikan per masing‐masing kategori, tambahkan kode sebagai berikut: widget('zii.widgets.grid.CGridView', array( 'id'=>'training-grid', 'dataProvider'=>$totraining->search(), //'filter'=>$totraining, 'emptyText'=>'Belum ada training pada kategori ini',
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
8
'summaryText'=>'', 'columns'=>array( array( 'name'=>'No', 'type'=>'raw', 'value'=>'$data->idtraining', ), array( 'name'=>'Nama diklat', 'type'=>'raw', 'value'=>'Chtml::link($data>name_training,array(\'training/view\',\'id\'=>$data->idtraining))', ), array( 'name'=>'Jamlat', 'type'=>'raw', 'value'=>'$data->hours', ), )));?>
Berhasil sudah anda membuat tampilan statis kategori diklat sampai keisi‐isinya.
4. Modifikasi Sub isi Halaman Aplikasi Langkah ini adalah mirip langkah membuat kategori ke diklat, kita akan membuat peserta yang dikategorikan per masing‐masing diklat. Hasilnya adalah mirip sebelumnya, kalau sebelumnya ketika kategori diklik, yang muncul adalah listing diklat, maka langkah ini adalah jika diklat diklik yang muncul adalah listing peserta diklat. Tentu ada sedikit perbedaan yaitu tidak dilakukan langkah 2) karena tidak ada sub sub isi halaman, artinya peserta diklat tidak memiliki anak kategori lagi, di kondisi tertentu bisa saja ada tapi untuk kali ini tidak ada. Langkah ketiga juga tidak kita ulangi karena kita telah memasukkan pembahasan pembuatan Mari kita mulai. a. Pertama masuk ke folder view dari training lalu buka file view.php, hapus semua isinya lalu ganti menjadi berikut ini breadcrumbs=array( 'Categories'=>array('index'), $model->name_training, ); ?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama diklat. b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari diklat setelah diklik adalah list peserta. Ada 5 langkah sbb yaitu: 1) Pada ParticipantController definisikan dulu parameter Training pada bagian ActionCreate. Buka folder controller lalu buka file ParticipantController.php atur hingga tampilanya sama dengan code dibawah ini: public function actionCreate($id) { $model=new Participant; if(isset($_POST['Participant'])) { $model->attributes=$_POST['Participant']; $model->trainingid=$id; if($model->save()) $this->redirect(array('view','id'=>$model>idparticipant)); } $this->render('create',array(
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
9
'model'=>$model, )); }
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat tanpa kategori sama sekali. 2) Sekarang saatnya membuat link Menambah Peserta pada view Training. Masuk ke folder view dari Training lalu buka file view.php tambahkan kode dibawah ini : menu=array( array('label'=>'Daftarkan Peserta', 'url'=>array('participant/create','id'=>$model->idtraining )),); ?>
3) Ubah juga view dari _form.php dari Participant, hilangkan field Trainingid atau untuk amannya uncheck dengan // labelEx($model,'trainingid'); ?> textField($model,'trainingid'); ?> error($model,'trainingid'); ?>?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah mendefinisikan Diklat untuk setiap Peserta yang dipilih, selain itu kalau diaktifkan juga akan terjadi konflik dualisme Diklat. 4) Dibagian view Training ini, selain bisa membuat training baru kita juga ingin menambah peserta ke masing‐masing diklat. Buka TrainingController.php atur script pada actionView menjadi seperti berikut: public function actionView($id) { $toparticipant=new Participant('search'); $toparticipant->unsetAttributes(); $toparticipant->trainingid=$id; $this->render('view',array( 'model'=>$this->loadModel($id), 'toparticipant'=>$toparticipant, )); }
5) Masuk ke folder view dari Training lalu buka file view.php, kita ingin menampilkan listing diklat yang dikategorikan per masing‐masing training, tambahkan kode sebagai berikut: widget('zii.widgets.grid.CGridView', array( 'id'=>'participant-grid', 'dataProvider'=>$toparticipant->search(), //'filter'=>$toparticipant, 'emptyText'=>'Belum ada Peserta yang mendaftar pada diklat ini', 'summaryText'=>'', 'columns'=>array( array( 'name'=>'No', 'type'=>'raw', 'value'=>'$data->idparticipant', ), array( 'name'=>'Nama Peserta', 'type'=>'raw', 'value'=>'Chtml::link($data>name_participant,array(\'participant/view\',\'id\'=>$data>idparticipant))',
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
10
),
array( 'name'=>'Jamlat', 'type'=>'raw', 'value'=>'$data->city', ), )));?>
Satu langkah lagi akan saya tambahkan yaitu tampilan dari Participant, buka folder view, participant, view.php 1. Breadcrumbs dari participant $this->breadcrumbs=array( 'Participants'=>array('index'), $model->idparticipant, );
Ubah menjadi seperti ini $this->breadcrumbs=array( 'Participants'=>array('index'), $model->name_participant, );
2. Ubah pula operations dari participant $this->menu=array( array('label'=>'List Participant', 'url'=>array('index')), array('label'=>'Create Participant', 'url'=>array('create')), array('label'=>'Update Participant', 'url'=>array('update', 'id'=>$model->idparticipant)), array('label'=>'Delete Participant', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model>idparticipant),'confirm'=>'Are you sure you want to delete this item?')), array('label'=>'Manage Participant', 'url'=>array('admin')), );
Ubah menjadi seperti ini $this->menu=array( array('label'=>'Ubah Peserta', 'url'=>array('update', 'id'=>$model->idparticipant)), array('label'=>'Hapus Peserta', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model>idparticipant),'confirm'=>'Are you sure you want to delete this item?')), );
3. Kemudian ubah pula tampilan dari tulisan peserta diklat dari menjadi
name_participant; ?>
4. Data peserta juga ingin kita ubah, dari seperti ini widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'idparticipant', 'name_participant', 'nip', 'city', 'trainingid', ), )); ?>
Menjadi begini widget('zii.widgets.CDetailView', array( 'data'=>$model,
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
11
'attributes'=>array( 'name_participant', 'nip', 'city', ), )); ?>
Langkah berikutnya, anda bisa berkreasi sendiri tentunya. Misal dihalaman update ingin diubah, atau halaman Manage menurut anda perlu ditampilkan, halaman create ingin dimodif dll. Hal penting yang harus diperhatikan adalah bahwa, setiap halaman view adalah hasil representasi dari proses coding yang telah kita buat di controller, function actionView, action adalah akan menghasilkan view.php, actionCreate akan menghasilkan create.php dst.
B. REFERENSI http://www.yiiframework.com/doc/guide/1.1/id http://www.yiiframework.com/wiki/250/yii‐for‐beginners/
C. BIOGRAFI PENULIS Ninin Sapto Hargiyanto. Menyelesaikan Diploma di STAN, seorang Fungsional Pranata Komputer di Kementerian Keuangan, Jakarta. Bidang peminatan di Ilmu Komputer adalah Web Development, Networking serta Linux.
Komunitas eLearning IlmuKomputer.Com Copyright © 2008‐2012 IlmuKomputer.Com
12