I though this might be useful since its not widely spread yet. There will be times when you want to disable some scripts on CClientScript so that your ajax or JSON will print properly. In this case, depending on what you want to disable, these methods might be helpful.
$cs = Yii::app()->clientScript; $cs->scriptMap['jquery.js'] = false; $cs->scriptMap['bootstrap.min.css'] = false; $cs->scriptMap['bootstrap.min.js'] = false; $cs->scriptMap['bootstrap-yii.css'] = false;
scriptMap will disable the file mentioned (example jquery,js) and replace with 'false', this is similar to how you would go about optimizing js and css scripts on Yii as well 😉
this will be a little bit tougher than you would imagine since the array 'scripts' which suppose to be available isn't really 'public' but you can still remove the code via the following,
basically, to remove the custom script i have wrote above, i will fire something like this
basically i am overwriting whatever i have registered and this will remove the custom script that i have written. Neat isn't it 😉
Remove every single custom scripts on CClientScript
if the above isn't what you were looking for, may be you are like me who manage to remove custom scripts using the above method but the script tags still appear, in this case, i fire the following code to stop my headache
$cs = Yii::app()->clientScript; $cs->reset();
since we can't make 'hasScripts' to be false (which is the reason why the script tags still appear), we will reset all the calling scripts instead. but this won't always work as neat as you would want to but its a good solution so far.
Well, its so irritating that i wanted everything to be disable on cclientscript, in this case, use the following,
This will ensure everything is disabled.
This should be useful for people working on Ajax, restful and JSON implementation on Yii 😉