hello everyone, i build a dialog box feature that may be usefull for everyone using yii framework.
Only one component is requiered: DialogBox.php and no more.
The DialogBox class opens a jquery-based popup containing an action inside. No specific codding for dialog box needed, the usage is very simple.
hope it will be usefull…
[b]
[/b]
a screen shot, showing you how it looks like, the ‘zipcode’ labeled input element receive the dialog output when it is finished. the dialog runs an action as content body, [color="#0000ff"]when user press ‘Finish’ buttton then the dialog box is automatically closed and its return value is passed into the zipcode input box[/color].
[b]
[/b]
[b]please note that the entire dialog content (including control buttons) is a standard Yii action (running inside a iframe), not special codding needed for dialog.[color="#0000ff"] if your actions runs directly from your navigator then it runs too into the dialog box[/color].
[/b]

TO LAUNCH THE DIALOG BOX,
this piece of code must be used to open the popup, the createDialogBox call creates a css-styled icon ready and configured to launch the jquery dialogbox.
<div id='dialogBoxLaunchIconPosition' style="margin-top: 10px;">
To start testing this dialog box sample, click this icon:
<?php DialogBox::createDialogBox(
    $this
   ,"myDialog1"
   ,"Type your name:"
   ,"site/sample"
   ,"testinput"
   ,"sampleIconCssStyle"
   ,320,300
); 
?>
When dialog is finished then your input will be shown in this Input element:<br/>
<input id='testinput'></input>
</div>
CLOSING AND RETURN, the code for the action response to return the dialog value is as follows:
	public function actionSample()
	{
    	$model=new SampleModel;
    	if(isset($_POST['SampleModel']))
    	{
        	$model->attributes=$_POST['SampleModel'];
        	if($model->validate())
        	{
            	// form inputs are valid, do something here
            	DialogBox::closeDialogBox($model->name,"index.php?r=site/sample");
            	return;
        	}
    	}
    	$this->layout = "dialoglayout";
    	$this->render('sample',array('model'=>$model));
	}