12/08/2012, 12:10:39
j'avais vu jpgraph mais je l'ai trouvé trop simpliste dans les résultats.
Là j'utilise Google Charts qui est une librairie JS . C'est totalement intégrée dans des templates smarty et ça permettrait à une Tiers personne de pondre ses propres graphes avec une autre librairie
Le fait d'être dans smarty permet également de profiter du cache smarty (non négligeable)
Pour la partie génération de la matrice, c'est du php classique évidement, ça me laisse toute la liberté pour manipuler les données, la bdd et dans le futur gérer plusieurs sources pour les données : bdd + fichier plats par exemple.
Qu'on soit d'accord : la gestion d'un cache interne à DownCnt doit elle être liée au cache cmsms ? Imaginez si un gus vide le cache cmsmadesimple, vos graphes doivent ils être perdus/à regénérer ? ou doivent ils être conservés ?
Un autre point évoqué en début de topic par toi justement :
Je vais faire comme dans Shootbox : un graphe aura une signature JS + une signature Smarty (via un alias) qui permette de l'afficher ET dans cmsmadesimple ET en dehors : sur votre blog, sur un forum, ...
Pour voir comment fonctionne le JS de Shootbox en dehors de son habitat normal qu'est cmsmadesimple : http://www.alpha-team.fr/bb
le code source à placer dans la page est :
mastoc je vous l'accord, mais terriblement efficace . Ce sera de toute façon moins conséquent pour afficher un diagramme.
Là j'utilise Google Charts qui est une librairie JS . C'est totalement intégrée dans des templates smarty et ça permettrait à une Tiers personne de pondre ses propres graphes avec une autre librairie
Le fait d'être dans smarty permet également de profiter du cache smarty (non négligeable)
Pour la partie génération de la matrice, c'est du php classique évidement, ça me laisse toute la liberté pour manipuler les données, la bdd et dans le futur gérer plusieurs sources pour les données : bdd + fichier plats par exemple.
Qu'on soit d'accord : la gestion d'un cache interne à DownCnt doit elle être liée au cache cmsms ? Imaginez si un gus vide le cache cmsmadesimple, vos graphes doivent ils être perdus/à regénérer ? ou doivent ils être conservés ?
Un autre point évoqué en début de topic par toi justement :
Citation :plutôt que de faire un copier/coller, si tu faisais une option pour voir la vue sur le front-end?
Je vais faire comme dans Shootbox : un graphe aura une signature JS + une signature Smarty (via un alias) qui permette de l'afficher ET dans cmsmadesimple ET en dehors : sur votre blog, sur un forum, ...
Pour voir comment fonctionne le JS de Shootbox en dehors de son habitat normal qu'est cmsmadesimple : http://www.alpha-team.fr/bb
le code source à placer dans la page est :
Code :
[== Indéfini ==]
<!-- BEGIN OF MODULE "SHOOTBOX" --><!-- MORE INFORMATIONS ON http://www.furie.be/projets/developpement-pur/shootbox.html --><div id="shoutbox"><div id="shoutbox_contenu"><img src='http://www.alpha-team.fr/modules/Shootbox/img/ajax-loader.gif' alt='please wait few seconds'/></div><form action="#" method="post" id="shootboxform" onsubmit="ShootboxFormSubmit();return false;"><div id="shootboxDiv"><img src='http://www.alpha-team.fr/modules/Shootbox/img/ajax-loader.gif' alt='please wait few seconds'/></div></form></div><script type="text/javascript">lastTime = -1;newLastTime = -1;function pingTime(){date = new Date();$.ajax({url: "http://www.alpha-team.fr/modules/Shootbox/ajax.getTime.php?time=" + date.getTime(),async: true,success: function(data){if(parseInt(data) != NaN && null != data || "" != data){newLastTime = data;pingContent(false);}}});}function pingContent(force){if(newLastTime == -1){$("#shoutbox_contenu").html('<span class="no_entry">aucune donnée.</span>');return;}if(null == newLastTime || "" == newLastTime){return;}if(force != null && !force && lastTime == newLastTime)return;file = 'http://www.alpha-team.fr/modules/Shootbox/cache/' + newLastTime + ".desc.txt";lastTime = newLastTime;$.ajax({url: file,async: true,success: function(data){$("#shoutbox_contenu").html(data);focusContent();}});}function refreshDelay(lastTime){/*date = new date();/date.*/$("#delayOfLastShoot").html("toto");}function focusContent(){element=document.getElementById('shoutbox_contenu');element.scrollTop = element.scrollHeight;}function ShootboxFormSubmit(){var field0=document.getElementById('Shootboxinput');var value0=field0.value;value0 = value0.replace('+','%2B').replace('#','%23').replace('&','%26');field0.value = null;file = 'http://www.alpha-team.fr/modules/Shootbox/ajax.save_record.php?Shootboxinput='+value0;$.ajax({url: file,async: false,success: function(data){$("#shootboxDiv").html(data);pingContent(true);document.getElementById('Shootboxinput').focus();}});}$(document).ready(function(){ping=setInterval("pingTime()", 3000);$.ajax({url: 'http://www.alpha-team.fr/modules/Shootbox/ajax.getButtons.php',async: true,success: function(data){$("#shootboxDiv").html(data);}});});</script><!-- END OF MODULE "SHOOTBOX"-->
mastoc je vous l'accord, mais terriblement efficace . Ce sera de toute façon moins conséquent pour afficher un diagramme.