[SPIP Zone] r26887 - in /_plugins_/_test_/horloge: horloge.js.html horloge.php horloge_pipelines.php modeles/ modeles/horloge.html plugin.xml

Ouh là, une horloge mise à jour en Ajax toutes les secondes ?
Si c'est bien ça, les serveurs risquent d'en pâtir non?
Pat

paolo2@taize.fr a écrit :

Added: _plugins_/_test_/horloge/plugin.xml

--- _plugins_/_test_/horloge/plugin.xml (added)
+++ _plugins_/_test_/horloge/plugin.xml Mon Feb 23 20:01:54 2009
@@ -0,0 +1,19 @@
+<plugin>
+ <nom>Horloge</nom>
+ <version>0.1</version>
+ <etat>test</etat>
+ <auteur>Paolo - licence GNU/GPL</auteur>
+ <description>
+ <multi>Insert the current time in your texts (updated by AJAX) with the tag "horloge"
+ [fr]Horloge en AJAX, &agrave; ins&eacute;rer dans les textes avec la balise «~horloge~»</multi>
+ <br />&lt;horloge|h24&gt; : 19:13
+ <br />&lt;horloge|h12&gt; : 7:13 pm
+ <br />&lt;horloge|enlong&gt; : 19:13 (7:13pm) Monday, 23 February
+ </description>
+ <lien>http://www.spip-contrib.net</lien>
+ <prefix>horloge</prefix>
+ <pipeline>
+ <nom>insert_head</nom>
+ <inclure>horloge_pipelines.php</inclure>
+ </pipeline>
+</plugin>

Pat wrote:

Ouh là, une horloge mise à jour en Ajax toutes les secondes ?

> Si c'est bien ça, les serveurs risquent d'en pâtir non?

Bonjour Pat, Non, cela se met à jour une fois par minute.

Tu m'as écrit à propos d'une horloge « mise à jour sur le poste du client » -- mais elle prend l'heure locale du serveur initialement ?

Paolo

Hmm, même une fois par minute, ça me parait bcp et pas si utile que ca...
je n'avais pas l'idée d'utiliser l'heure du serveur, mais l'initialisation pourrait se baser dessus, en effet
Pat

Paolo a écrit :

Pat wrote:

Ouh là, une horloge mise à jour en Ajax toutes les secondes ?

> Si c'est bien ça, les serveurs risquent d'en pâtir non?

Bonjour Pat, Non, cela se met à jour une fois par minute.

Tu m'as écrit à propos d'une horloge « mise à jour sur le poste du client » -- mais elle prend l'heure locale du serveur initialement ?

Paolo

Pat wrote:

Hmm, même une fois par minute, ça me parait bcp

Lorsque j'avais fait ça en modèle, cela se faisait uniquement quand la page qui porte l'horloge (une seule page sur le site et ses traductions) était ouverte. Maintenant que le code est en plugin, c'est une bonne question en fait si le code tourne sur toutes les pages, même si la classe horloge n'est pas présente sur la page. je n'y avais pas réfléchi. Peut-être Firebug va me permettre de regarder.

je n'avais pas l'idée d'utiliser l'heure du serveur,

Je ne perdrais pas du temps à afficher l'heure des visiteurs chez eux !
C'est pour qu'ils connaissent l'heure chez nous. Nous avons pas mal d'appels téléphoniques du monde entier, parfois au milieu de la nuit ... j'affiche l'heure à côté des numéros de tél pour qu'ils sachent à quelle heure ils nous dérangent :slight_smile:

Paolo

Hmm...

Après avoir regardé avec Firebug : oui il y a un problème, car le fonction
showTime() est lancé qu'une « horloge » se trouve sur la page en cours ou non.

Soit il faudrait trouver comment d'abord tester si une classe ".horloge-xxx" existe avant de lancer la fonction, soit initialiser seulement sur le serveur et mettre à jour côté client.

Paolo

il suffit d'initialiser l'horloge dans la page avec 3 lignes de php, et de la faire tourner sur le poste client en javascript pur
Il y en a une comme cela ici
http://www.france-info.com/js/realtimeServerSynchronizedClock.js.php?home

il suffit de mettre du php dans l'init.
Cédric

Le 24 févr. 09 à 14:14, Paolo a écrit :

Hmm...

Après avoir regardé avec Firebug : oui il y a un problème, car le fonction
showTime() est lancé qu'une « horloge » se trouve sur la page en cours ou non.

Soit il faudrait trouver comment d'abord tester si une classe ".horloge-xxx" existe avant de lancer la fonction, soit initialiser seulement sur le serveur et mettre à jour côté client.

Paolo

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

oui voici mon code de départ pour une balise #HORLOGE, vais bientôt le publier.

// La balise #HORLOGE{format,utc,id}
function balise_HORLOGE_dist($p) {
  $format = sinon(interprete_argument_balise(1,$p), "'H:i:s'");
  $utc = sinon(interprete_argument_balise(2,$p), "''");
  $id = sinon(interprete_argument_balise(3,$p), "'0'");
  $p->code = "<div class=\"jclock'.(intval($id)?' jclock'.$id:'').'\" title=\"'.$utc.'|'.$format.'\"></div>'";
  $p->type = 'php';
  return $p;
}

jQuery se charge ensuite tout seul pour mettre à jour le div. J'ai ajouté une librairie pour avoir le formatage php en js et une liste de zones UTC.

Pat

Paolo a écrit :

Hmm...

Après avoir regardé avec Firebug : oui il y a un problème, car le fonction
showTime() est lancé qu'une « horloge » se trouve sur la page en cours ou non.

Soit il faudrait trouver comment d'abord tester si une classe ".horloge-xxx" existe avant de lancer la fonction, soit initialiser seulement sur le serveur et mettre à jour côté client.

Paolo

Pat wrote:

oui voici mon code de départ pour une balise #HORLOGE, vais bientôt le publier.

Magnifique ! :slight_smile:

P.

2009/2/24 Pat <patrice.vanneufville@laposte.net>

Ouh là, une horloge mise à jour en Ajax toutes les secondes ?
Si c’est bien ça, les serveurs risquent d’en pâtir non?
Pat

C’est pour augmenter les stats ? :wink:

Plus sérieusement, si c’est ça il vaut mieux un horloge locale en javascript avec une synchro initiale éventuelle si on veut (il suffit par exemple de stocker le delta par rapport à l’heure du navigateur dans un cookie et le vérifier de temps en temps), c’est plus économe et ça permet une heure indépendante du système.

a+

Arnaud

Excellent!

Bravo Pat et merci pour ce boulot!

  • Seb -

Au fond, est-ce que ranger ça ne revient pas un peu à foutre le bordel dans son désordre ?

2009/2/24 Pat <patrice.vanneufville@laposte.net>

oui voici mon code de départ pour une balise #HORLOGE, vais bientôt le publier.

// La balise #HORLOGE{format,utc,id}
function balise_HORLOGE_dist($p) {
$format = sinon(interprete_argument_balise(1,$p), « ‹ H:i:s › »);
$utc = sinon(interprete_argument_balise(2,$p), « ‹  › »);
$id = sinon(interprete_argument_balise(3,$p), « ‹ 0 › »);
$p->code = « <div class="jclock’.(intval($id)?’ jclock’.$id:‹  ›).‹ " title=" ›.$utc.‹ | ›.$format.‹ "> › »;
$p->type = ‹ php ›;
return $p;
}

jQuery se charge ensuite tout seul pour mettre à jour le div. J’ai ajouté une librairie pour avoir le formatage php en js et une liste de zones UTC.

Pat

Paolo a écrit :

Hmm…

Après avoir regardé avec Firebug : oui il y a un problème, car le fonction
showTime() est lancé qu’une « horloge » se trouve sur la page en cours ou non.

Soit il faudrait trouver comment d’abord tester si une classe « .horloge-xxx » existe avant de lancer la fonction, soit initialiser seulement sur le serveur et mettre à jour côté client.

Paolo


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone