Difference between #5 and #2 of Extending CJuiDialog

unchanged
Title
Extending CJuiDialog
unchanged
Category
How-tos
unchanged
Tags
CJuiDialog, widget, extending
unchanged
Content
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:



~~~
[php]
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:



~~~
[php]

  $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.