Hi all.
Pretty new to Yii but loving it so far.
I was wondering if there was a way to recreate this in Yii, and/or the best practice. In my old site, wich im converting to Yii, I was passing dynamically created dialogs to the client side from an jquery post request that was the consumed by a function i had on the main page.
example function i used
function sysDialog(obj){
var dialog = '<div id="dialogBox"><div class="modal"> <div class="modal-header"> <a class="close" data-dismiss="modal">x</a> <h3>'+obj.title+'</h3> </div>';
dialog = dialog + '<div class="modal-body">'+obj.msg+'</div>';
dialog = dialog + '<div class="modal-footer">';
var i = 0;
var js = "";
for (var i in obj.buttons){
var css = "btn"
if ( i == 0){
var css = "btn btn-primary"
i = 1;
}
dialog = dialog + '<a id="'+i+'" href="#" class="'+css+'">'+i+'</a>';
js = js+'$("#'+i+'").click('+obj.buttons[i]+');';
}
dialog = dialog +' </div></div></div>';
js = js + '$("#dialogBox").modal("show"); $( "#SiteHolder" ).draggable();';
$('#SiteHolder').html(dialog);
eval(js);
}
I know Yii has the CJuiDialog widget for creating a dialog box but since i’m calling renderPartial
on my view the JS is never generated.
My goals are:
-
Be able to support a JavaScript enabled page as well as static pages.
-
Flexible enough to change ui’s
Should I just create a custom view for my theme? or should I just hard code my JS into the controller within –
if(Yii::app()->request->isAjaxRequest){
$this->render('mypage');
}else{
/// return my java script for client side consumption
}
The latter option would require that a JS function be embedded in the main page to consume this information and call a dialog.
A little background…
The site im working on is used at service point to help patrons/customers as well as manage personal. because of this the page is only ever fully loaded once. (This was done because there are i-frames contained withing the main page that preload slower sites required to assist in assisting patrons/customers.) After that all parts of the page are loaded with Ajax calls. I have found this to be a pain in Yii since it only generates JS when a page is fully rendered.