[SPIP Zone] Mettre une horloge dans un plugin

Bonsoir,

Depuis un temps nous utilisons une horloge jQuery par un modèle SPIP pour insérer l'heure (du serveur) sur une page : http://www.taize.fr/fr_article858.html (Mettre l'horloge à côté des numéros de téléphone n'est vraiment pas si bête -- et celui qui répond au téléphone la nuit en est content.)

Le code (trouvé par sebbou) est simple. Dans squelettes/modeles il y a deux fichiers :

### clock.html ###

<strong><span id="currentTime">&nbsp;</span></strong>
<script type="text/javascript">
//<![CDATA[<!--
// Cf. http://www.billwelense.com/depaul/ajaxdemo/demo.html

$(document).ready(function(){ showCurrentTime("#ENV{fmt}"); });

function showCurrentTime(fmt) {
$.get("#CHEMIN{modeles/clock.php}", function(currentDateTime) {
var time = [ $(fmt, currentDateTime).text() ];
// Set milliseconds to wait until refreshing
var refresh = [(60 - $("sec", currentDateTime).text()) * 1000 ];
$("#currentTime").html(time.join(''));
// Set timer for client to update
var refreshfunc = 'showCurrentTime("'+fmt+'")';
setTimeout(refreshfunc, refresh);
});
}
//-->
//]]>
</script>
<noscript>Javascript needed!</noscript>

### et clock.php ###

<?php
header('Content-Type: text/xml');
// For other formats, see: http://fr.php.net/date
$h24 = date("H:i");
$h12 = date("g:ia");
$engdate = date("H:i (g:ia) l, j F");

// Create the XML document
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<currentDateTime>' . "\n";
echo "\t" . '<h24>' . $h24 . '</h24>' . "\n";
echo "\t" . '<h12>' . $h12 . '</h12>' . "\n";
echo "\t" . '<engdate>' . $engdate . '</engdate>' . "\n";
echo '</currentDateTime>' . "\n";
?>

###

Ensuite, il suffit de mettre un raccourci dans le texte :
<clock|fmt=h24> pour afficher l'heure dans le format désiré.

Alors -- si vous êtes encore là et si cela vous intéresse --, plusieurs questions/idées/défis :

1. SPIP ferme toujours le paragraphe de texte avant ce modèle, et l'heure saute sur une ligne toute seule. C'est dommage - cela ne se passe pas avec d'autres modèles. Pourquoi ?

2. A cause du Javascript qui est inséré (je suppose), je ne peux pas formater le modèle avec des raccourcis SPIP. Mettre par ex. {{<clock|fmt=engdate>}} dans le texte d'un article. C'est dommage aussi.

3. On ne peut pas mettre plus qu'une horloge sur la page, pour ne pas dupliquer la fonction JS. Ce serait mieux de mettre tout ça en plugin et utiliser "insert_head". J'ai essayé de la faire, mais je ne trouve pas le chemin.

Paolo

C'est plus ou moins dans un plugin maintenant :
http://www.spip-contrib.net/ecrire/?exec=articles&id_article=2995

Paolo