Menambahkan widget ke dalam widget di yii
Pada kesempatan ini ane ingin memberikan sedikit penjelasan bagaimana kita dapat menambahkan widget di dalam widget di yii framework
Oke langsung kita lihat bagaimana kita bisa membuat widget di yii dengan konsep sebagai berikut :
$this->widget('ext.xxx.yyy',array(...));Fungsi widget ini nantinya sudah mengeksekusi dalam bentuk string yang telah di echo dalam yii framework. Padahal di dalam widget yang kita inginkan kita ingin memberikan kembalian berupa string value.
Oleh karena itu kita akan membuat dengan bantuan fungsi dari ob_start(). dimana kita dapat menyimpan hasilnya ke dalam sebuah variabel terlebih dahulu.
Pada kesempatan kali ini ane ingin memberikan contoh untuk memberikan bagaimana kita dapat membuat cjuislider di dalam cdetaillistview..
Langsung saja contoh kodingnya adalah sebagai berikut :
<?php //Simpan hasilnya dalam bentuk variabel dulu di dalam variabel $spoiler ob_start(); $this->widget('zii.widgets.jui.CJuiSliderInput', array( 'name'=>'my_slider', 'value'=>0, 'event'=>'change', 'options'=>array( 'min'=>0, 'max'=>100, 'slide'=>'js:function(event,ui){$("#amount").text(ui.value);}', ), 'htmlOptions'=>array( 'style'=>'width:200px; float:left;' ), )); echo '<div id="amount"></div>'; $slider=ob_get_contents(); ob_end_clean(); ?> <?php $this->widget('zii.widgets.CDetailView', array( 'data'=>$model, 'id'=>'hor-minimalist-b', 'attributes'=>array( 'project_id', 'title', array( 'label'=>'Project proposal', 'type'=>'raw', 'value'=>empty($model->project_proposal)?"":CHtml::link($model->project_proposal,Yii::app()->homeUrl.'/../upload/'.$model->project_proposal), ), array( 'label'=>'Progress', 'type'=>'raw', 'value'=>$slider,//ini kode yang didapatkan dari atas ), 'start_time_actual', 'end_time_actual', // 'id_FK', 'scope_name' ), )); ?>