asep
(Asep Mylocal)
April 20, 2011, 1:48am
1
Halo… para masta yii…
saya mau naya nih, saya mau ubah tampilan di yii, kalo saya liat codingnya secara default pake CListView untuk tampilannya terlampir, bagaimana caranya jika ingin saya ubah jadi tabel dengan judul fieldnya cukup satu saja seperti contoh dibawah ini.
======================================================
Prof | User | Dari | SMP | Jenis Track | Institusi |
======================================================
ini datanya
ini datanya
ini datanya
ini datanya
ini datanya
======================================================
di direktori protected/views/profesi/index.php
coding saya seperti ini
<?php
// echo $model;
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',));
?>
saya ubah jadi seperti ini
<?php
// echo $model;
$this->widget('zii.widgets.CGridView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',));
?>
Saya memanfaatkan CGridView… tapi ga bisa, hasilnya error… kenapa ya? (mohon bantuannya)
petra
(Petra Barus)
April 20, 2011, 2:02am
2
setau saya CGridView gak punya property itemView
deh,
asep
(Asep Mylocal)
April 20, 2011, 2:34am
3
maklum om masih asing nih sm yii , terus bagaimana cara menggunakannya CGridView adakah langkah-langkahnya?
asep
(Asep Mylocal)
April 20, 2011, 2:44am
4
saya pake coding ini alhamdulillah bisa
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
)
)
);
Thanks om…
aqge
(Programmer Riau)
April 20, 2011, 4:30am
5
saya pake coding ini alhamdulillah bisa
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
)
)
);
Thanks om…
emang beda sih GRidview dan ListView, beda folder juga di Zii nya…
congrate bro kalo dan ketemu
asep
(Asep Mylocal)
April 21, 2011, 2:44am
6
Untuk tampilan emang udah bener sih, cuma ada masalah lagi ni om…
Kalo pake Listview ane kan kalo mau update tinggal klik ProfID-nya yang source codingnya ada di _ivew.php yang menggunakan class view seperti di bawah ni
<div class="view">
<b><?php echo CHtml::encode($data->getAttributeLabel('ProfID')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->ProfID), array('view', 'id'=>$data->ProfID)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('UserID')); ?>:</b>
<?php echo CHtml::encode($data->UserID); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Dari')); ?>:</b>
<?php echo CHtml::encode($data->Dari); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Smp')); ?>:</b>
<?php echo CHtml::encode($data->Smp); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('JenisTrack')); ?>:</b>
<?php echo CHtml::encode($data->JenisTrack); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('InstitusiID')); ?>:</b>
<?php echo CHtml::encode($data->InstitusiID); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('Institusi')); ?>:</b>
<?php echo CHtml::encode($data->Institusi); ?>
<br />
<?php /*
<b><?php echo CHtml::encode($data->getAttributeLabel('PosisiPeran')); ?>:</b>
<?php echo CHtml::encode($data->PosisiPeran); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('CatatanDanPrestasi')); ?>:</b>
<?php echo CHtml::encode($data->CatatanDanPrestasi); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('KeySkills1')); ?>:</b>
<?php echo CHtml::encode($data->KeySkills1); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('KeySkills2')); ?>:</b>
<?php echo CHtml::encode($data->KeySkills2); ?>
<br />
*/ ?>
</div>
nah… sekarang setelah ane pake GridView, ProfIDnya tidak bisa diklik(ngelink) karena ambil data mentah langsung dr database, tidak ada modificate sedikitpun, gmn caranya ya biar ane bisa update…?
petra
(Petra Barus)
April 21, 2011, 6:37am
7
tambahin CButtonColumn aja,
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
array(
' class'=>'CButtonColumn',
),
)
)
);
bisa juga ditambahin di columnya jadi
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'name' => 'ProfId',
'type' => 'raw',
'value' => 'CHtml::link(CHtml::encode($data->ProfID), array(\'view\', \'id\'=>$data->ProfID))',
)
'ProfID',
'UserID',
asep
(Asep Mylocal)
April 24, 2011, 11:27pm
8
setelah ane coba berhasil juga sih omm
tapi saya inginnya, misal login dgn username: TONO,
maka tombol itu hanya akan muncul pada data yng diinputkan oleh TONO sedangkan pada data yang bukan diinputkan oleh TONO maka tombol itu tidak ada.
Jadi intinya dia hanya bisa CRUD sesuai user accountnya(UserID).
Saya pake koding ini ga bisa ya… harusnya conditionnya gmn ya?? bingung nih.
$myuser = Yii::app()->user->id;
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
if(UserID==$myuser){
array(
'class'=>'CButtonColumn',
),
else{}
asep
(Asep Mylocal)
April 25, 2011, 3:18am
9
tolong yang udah tau, kasih solusinya donk…
saya senang sekali jika ada yang bersudi membanru
junxiong
(Garry3peace)
April 25, 2011, 7:16am
10
setelah ane coba berhasil juga sih omm
tapi saya inginnya, misal login dgn username: TONO,
maka tombol itu hanya akan muncul pada data yng diinputkan oleh TONO sedangkan pada data yang bukan diinputkan oleh TONO maka tombol itu tidak ada.
Jadi intinya dia hanya bisa CRUD sesuai user accountnya(UserID).
Saya pake koding ini ga bisa ya… harusnya conditionnya gmn ya?? bingung nih.
$myuser = Yii::app()->user->id;
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
if(UserID==$myuser){
array(
'class'=>'CButtonColumn',
),
else{}
menurut saya seperti ini:
$kolom = array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi');
if(UserID==$myuser){
$kolom[] = array(
'class'=>'CButtonColumn',
);
$myuser = Yii::app()->user->id;
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>$kolom,
);
petra
(Petra Barus)
April 25, 2011, 7:40am
11
kayaknya mending,
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
array(
'class'=>'CButtonColumn',
'visible' => '$data->UserID == Yii::app()->user->id;',
),
atau kalo restriksinya cuman buat button delete sama update (yg viewnya boleh dilihat oleh user lain)
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'ProfID',
'UserID',
'Dari',
'Smp',
'JenisTrack',
'InstitusiID',
'Institusi',
'PosisiPeran',
'CatatanDanPrestasi',
array(
'class'=>'CButtonColumn',
'buttons' => array(
'delete' => array(
'visible' => '$data->UserID == Yii::app()->user->id;',
),
'update' => array(
'visible' => '$data->UserID == Yii::app()->user->id;',
),
)
),
junxiong
(Garry3peace)
April 25, 2011, 11:48am
12
Iya, solusi om Petra lebih bagus menurut saya~
lebih rapi~
asep
(Asep Mylocal)
May 1, 2011, 12:33pm
13
koding dari om petra
'visible' => '$data->UserID == Yii::app()->user->id;',
maaf
$data
itu variabel apa ya?
apakah yg dimaksud
$dataProvider
bukan…?
aqge
(Programmer Riau)
May 2, 2011, 2:55am
14
iya benul…
komponent item dari dataprovider itu di sebut nya $data, kayaknya setting otomatsnya yii…
petra
(Petra Barus)
May 2, 2011, 5:12am
15
asep
(Asep Mylocal)
May 2, 2011, 6:05am
16
@ petra, junxiong & aqge: berhasil juga, Thanks jawaban dan informasinya dari masta-masta semua.
Semoga tidak bosan dengan pertanyaan2 dari ane.
Mantab…ini yang saya cari-cari dari kemarin. Thanks banget.