Yii 1.1: Extending CJuiDialog

3 followers

Sometimes you have CJuiDialog with different content but same buttons (or width, height). If you don't want to repeat yourself this is a great solution:

Create:

extensions/dialog/start.php

In start.php write:

Yii::import('zii.widgets.jui.CJuiDialog');
class Start extends CJuiDialog
{
 
        public function init()
        { 
 
                $options=$this->options;
 
                $options['buttons']=array(
                     'Save'=>'js:function(){alert("alert one");}',      
                     'Cancel'=>'js:function(){alert("alrt two");}', 
                );
 
                $this->options=$options;
                parent::init();
 
         }
 
}

Somewhere (in views) create:

$this->beginWidget('ext.dialog.start', array(
                             'id'=>'dialog',
                              'options'=>array(
                                           'title'=>'Title',
                                           'autoOpen'=>false,
                                           'modal'=>true,
                                           'width'=>320,
                                           'resizable'=>false,
                                           'height'=>'auto',
                                           )
                        ));                                     
 
 
 $this->renderPartial('view_file');
 
 $this->endWidget();

And that's it. You will have buttons Save and Cancel everytime.

Be the first person to leave a comment

Please to leave your comment.

Write new article