crichard@jalmus.net a écrit :
Je pense que c'est bon, mais j'ai eu un peu de mal avec rapidsvn alors il a
fallu que je le fasse sous Windows avec Tortoise.
J'utilise aussi Tortoise. En suis très satisfait !
A Pat
J'ai regardé ton code à partir des rapports de commit et je ne pense pas qu'il
soit utile de sauvegarder le fichier du code (fichier ly) dans le cache. En
effet le cache sert uniquement à éviter des appels inutiles au serveur (du coté
client) et les executions inutiles de lilypond du coté serveur. Et pour cela ,
seuls les fichiers images et midi sont nécessaires.
Absolument ! J'avais ajouté cette option dans le but d'un debuggage futur de la version 2.6 uniquement, et voir comment améliorer les bouts de partition avec du code lilypond supplémentaire. Mais il n'y avait dans mon commit initial aucune sollicitation du serveur, les lignes étaient en commentaire. D'ailleurs, voici le code que j'avais ajouté :
function lilyspip_ly_lilypond($music) {
// Regarder dans le repertoire local de Lilypond
$fichier = _DIR_Lilypond.md5($music).".ly";
if (!@file_exists($fichier) /*
|| $GLOBALS['var_mode'] == 'recalcul'
|| $GLOBALS['var_mode']=='calcul'*/) {
// Aller chercher le fichier midi sur le serveur
// $url = $GLOBALS['meta']['lilyspip_server']
// .'?format=ly&code='.rawurlencode($music);
// spip_log("Lilypond - appel ly de : $url");
// include_spip('inc/distant');
// $music = recuperer_page($url);
ecrire_fichier($fichier, $music);
}
return $music;
}
J'ai aussi testé chez moi le remplacement de la fonction fichier_vide par
@filesize et cela ne fonctionne pas, est-ce vraiment équivalent.
les deux semblent équivalents pourtant. @filesize renvoie false si le fichier n'existe pas et 0 si le fichier est de taille nulle.
le test == classique assimile le 0 au false. pour faire la différence, il faut utiliser l'opérateur ===.
Du coup, le test (@file_exists($fichiermidi) && !fichier_vide($fichiermidi)) est pour moi équivalent à (@file_exists($fichier) && @filesize($fichier)) qui est meme simplifiable en (@filesize($fichier)).
Ce dernier test se borne à vérifier que filesize rend bien une valeur différente de 0, ce qui indique forcement aussi que le fichier existe.
me trompe-je ?
Je n'ai pas pu voir les modifications que tu avais apporté sur la partie serveur
mais de la même manière seuls les fichiers png et midi sont nécessaires.
Je n'avais pas fait de modif sur ce fichier, mis à part une future procédure pour les fichiers ly dans le cadre d'un debuggage.
Quand aux modifications sur les fichiers xml et les fichiers lang, elles ne me
semblent pas des plus urgentes. Le principal problème reste la possibilité de
faire boucler lilypond et ainsi bloquer le serveur.
Tu as bien raison. Mais tu sais, qd on est lancé...
1. j'avais modifié plugin.xml pour le rendre compatible avec 1.9.2. Si ça t'interesse, tu peux te renseigner la-dessus : icone, installation, désinstallation... C'est super que Spip permette maintenant aux plugins de rester propres !
2. Pour la description, de simples précisions :
<description>Ce plugin permet d'insérer des notations musicales dans vos articles en utilisant la syntaxe [Lilypond->http://lilypond.org/\].
Un petit exemple :<code><lilypond>
{\\relative c'{\\time 4/4 c4 c c d e2 d c4 e d d c1}}
</lilypond></code>
</description>
<lien>[->http://www.spip.net/fr_article3448.html\]</lien>
3. Qd aux fichiers lang, deux précisions également :
'parametrages' => "Paramétrages du serveur",
'info_message' => "Cette page permet de spécifier l'adresse du serveur Lilypond pour l'insertion de notations musicales.<br /><br />La prévisualisation vous permet d'en tester instantanément le fonctionnement.",
Toutes tes modifications sur la compatibilité et le traitement de la variable
meta sont très interessantes et tes commits bienvenus.
Merci. Mais tu comprendras que sur ce point je suis devenu frileux. Tu as du lire les forums...
Je te propose de t'envoyer ma contrib en privé pour que tu fasses le tri de ce que tu juges intéressant ou non, car le travail chez moi est fait, et je ne vais pas tout recommencer.
J'ai simplement porté ce plugin sous Spip 1.9.2 en toilettant un peu de code ici ou là, tout en restant bien sûr compatible avec 1.9.1.
Rien de plus.
Pat
Christophe