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>
Aujourd'hui de gros changement dans la librairie avec l'ajout de jQuery UI accordion.