Ce widget possède beaucoup de paramètres, les méthodes sont définie séparément pour une plus grande liberté.
Divers méthode pour une liberté total :
[PHP] <?php //instance jQuery $jquery = new magixcjquery_jquery_magixcjQuery(); //instance plugin accordion $accordion = new magixcjquery_jquery_plugins_ui_accordion(); print $jquery->startjQuery(). $accordion->jaccordion('#accordion',array( $accordion->opt_Active()=>'2', $accordion->opt_event()=>'"mouseover"', $accordion->opt_icons()=>'{'.$accordion->opt_header().':'.'"ui-icon-circle-arrow-e",headerSelected:"ui-icon-circle-arrow-s"'.'}' )). $jquery->endjQuery(); ?>
Avec la class jQuery_params pour faire la boucle dans le tableau de paramètre de la fonction header
[PHP] <?php //instance jQuery $jquery = new magixcjquery_jquery_magixcjQuery(); require('../jquery.php'); //instance plugin accordion $accordion = new magixcjquery_jquery_plugins_ui_accordion(); //instance class params spécial pour faire la boucle du tableau $for= new magixcjquery_jquery_params(); //Tableau pour les paramètres de la fonction header de jquery ui $headparams = array('"ui-icon-circle-arrow-e"','headerSelected:"ui-icon-circle-arrow-s"'); print $jquery->startjQuery(); $script = $accordion->jaccordion('"#accordion"',array( $accordion->opt_Active()=>'2', $accordion->opt_event()=>'"mouseover"', $accordion->opt_icons()=>'{'.$accordion->opt_header().':'.$for->forUIValue($headparams).'}' )); print $script; print $jquery->endjQuery(); ?>
Le code PHP ci-dessus retourne :
[javascript] <script type="text/javascript"> $(document).ready(function(){ $("#accordion").accordion({ active:2,event:"mouseover", icons:{header:"ui-icon-circle-arrow-e",headerSelected:"ui-icon-circle-arrow-s"} }); })</script>
Prochaine étape, l'obsfuscation automatique avec packer dans la librairie pour optimiser le javascript au maximum.
Les premiers test sont pour le moins satisfaisant. Voici un exemple avec notre code :
[PHP] <?php //instance jQuery $jquery = new magixcjquery_jquery_magixcjQuery(); require('../jquery.php'); //instance plugin accordion $accordion = new magixcjquery_jquery_plugins_ui_accordion(); //instance class params spécial pour faire la boucle du tableau $for= new magixcjquery_jquery_params(); //Tableau pour les paramètres de la fonction header de jquery ui $headparams = array('"ui-icon-circle-arrow-e"','headerSelected:"ui-icon-circle-arrow-s"'); print $jquery->startjQuery(); $script = $accordion->jaccordion('"#accordion"',array( $accordion->opt_Active()=>'2', $accordion->opt_event()=>'"mouseover"', $accordion->opt_icons()=>'{'.$accordion->opt_header().':'.$for->forUIValue($headparams).'}' )); //packer automatique de votre code dans cet exemple en numéric $t1 = magixcjquery_jquery_packer_pack::timeStart(); $packed = magixcjquery_jquery_packer_pack::packer($script,95); $t2 = magixcjquery_jquery_packer_pack::timeEnd(); print $packed; print $jquery->endjQuery(); ?>
Ce code donnera exactement le même résultat mais avec une obfuscation automatique :
[javascript] <script type="text/javascript"> $(document).ready(function(){eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$("#0").0({7:2,6:"8",b:{c:"1-3-4-5-9",d:"1-3-4-5-a"}});',14,14,'accordion|ui||icon|circle|arrow|event|active|mouseover|e|s|icons|header|headerSelected'.split('|'),0,{})) })</script>