mes_fonctions et balises spip

bonjour,
j'essaie désespérément de créer un nouveau type de balise pour SPIP, mais j'en viens à me demander si j'ai vraiment compris le concept de balise.
Je lis par endroits que les balises SPIP sont du type #BALISE à l'intérieur des squelettes,
et par ailleurs je lis que les balises sont <balise> dans l'espace de rédaction. Ce qui m'interesse actuelleemnt c'est de créer une <balise> pour l'espace de rédaction pour que les rédacteurs puissent insérer à volonté du contenu, par exemple issu d'une autre base de données. Voici donc ce que je fais :
- je crée un fichier mes_fonctions.php qui contient (très inspiré de plusieurs exemples):
<?php
function balise_MONTEST_dist($p) {
$option = interprete_argument_balise(1,$p);
$p->code = "Hello";
return $p;
}
?>
- je copie ce fichier dans /squelettes
- je vais dans l'espace de rédaction, modifie un article et ajoute <montest> quelque part dans le texte, valide la modif, et je m'attends à ce que ce soit remplacé par "Hello".

Et rien ... Pourtant j'ai examiné le code de certains plugin (par exemple refbase) et j'ai bien l'impression que çà devrait fonctionner. Mon code est bien vu par spip car si j'introduis une erreur de syntaxe spip indique une erreur dans ce fichier ...
Est-ce que j'oublie quelque chose ? Est-ce que j'ai mal compris le concept de balise spip ? Est-ce que je dois parser le texte avec les pipelines (ca me semble lourd !!) ?
En vous remerciant,
Mike

je pense que ta fonction balise_MONTEST_dist($p) { … } devrait fonctionner pour #MONTEST inséré dans un squelette.

Par contre, pour créer des balises utilisables par l’espace rédacteurs, il faut à mon avis se pencher sur les modèles (dans le répertoire squelettes/modeles).

exemple, tu crées un fichier nommé montest.html dans le répertoire squelettes/modeles/.

dans ce fichier tu écris :

<? echo "

appel de la balise montest :

"; echo "

lecture du paramètre : "; echo '#ENV{mon_parametre}'; echo "

"; ?>

tu sauvegardes biensûr.

pour appeler ta balise, depuis l’espace rédacteur, tu tapes :

<montest|mon_parametre=bonjour>

et ça devrait exécuter le petit script.

Cela dit, je ne sais pas encore si ce principe permet une bonne optimisation du cache de SPIP (puisque j’insère du code PHP où spip attend du code spip, boucles etc). Des avis à ce propos ?

Cordialement,


e.r

Le 14 février 2012 11:00, Mikhael MYARA <myara@opto.univ-montp2.fr> a écrit :

bonjour,
j’essaie désespérément de créer un nouveau type de balise pour SPIP, mais j’en viens à me demander si j’ai vraiment compris le concept de balise.
Je lis par endroits que les balises SPIP sont du type #BALISE à l’intérieur des squelettes,
et par ailleurs je lis que les balises sont dans l’espace de rédaction. Ce qui m’interesse actuelleemnt c’est de créer une pour l’espace de rédaction pour que les rédacteurs puissent insérer à volonté du contenu, par exemple issu d’une autre base de données. Voici donc ce que je fais :

  • je crée un fichier mes_fonctions.php qui contient (très inspiré de plusieurs exemples):
<?php function balise_MONTEST_dist($p) { $option = interprete_argument_balise(1,$p); $p->code = "Hello"; return $p; } ?>
  • je copie ce fichier dans /squelettes
  • je vais dans l’espace de rédaction, modifie un article et ajoute quelque part dans le texte, valide la modif, et je m’attends à ce que ce soit remplacé par « Hello ».

Et rien … Pourtant j’ai examiné le code de certains plugin (par exemple refbase) et j’ai bien l’impression que çà devrait fonctionner. Mon code est bien vu par spip car si j’introduis une erreur de syntaxe spip indique une erreur dans ce fichier …
Est-ce que j’oublie quelque chose ? Est-ce que j’ai mal compris le concept de balise spip ? Est-ce que je dois parser le texte avec les pipelines (ca me semble lourd !!) ?
En vous remerciant,
Mike


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Bonjour,
suite à des conseils sur le newsgroup j’ai fait plus ou moins ce que tu dis :

  • créé un montest.html qui contient #MONTEST (pour faire la correspondance entre la balise #MONTEST et le modèle/squelette montest.html
  • dans mes_fonctions.php j’ai créé une fonction balise_MONTEST_dist($p) et je travaille dedans.
    Ensuite il faut avoir en tête que la fonction doit renvoyer une chaine de caractères AVEC les guillemets (donc « "texte" ») sinon cela provoque une erreur de compilation. Bref c’est comme çà qu’on étend le langage spip pour les rédacteurs du site.
    pour le cache avec le texte entre « " " » tout est mis dans le cache (aucun délai notable à l’affichage alors que je récupère et met en page 200 lignes de code HTML dans le plugin).
    Merci à tous,
    Mike

Le 14 févr. 2012 à 20:21, ~e a écrit :

je pense que ta fonction balise_MONTEST_dist($p) { … } devrait fonctionner pour #MONTEST inséré dans un squelette.

Par contre, pour créer des balises utilisables par l’espace rédacteurs, il faut à mon avis se pencher sur les modèles (dans le répertoire squelettes/modeles).

exemple, tu crées un fichier nommé montest.html dans le répertoire squelettes/modeles/.

dans ce fichier tu écris :

<? echo "

appel de la balise montest :

"; echo "

lecture du paramètre : "; echo '#ENV{mon_parametre}'; echo "

"; ?>

tu sauvegardes biensûr.

pour appeler ta balise, depuis l’espace rédacteur, tu tapes :

<montest|mon_parametre=bonjour>

et ça devrait exécuter le petit script.

Cela dit, je ne sais pas encore si ce principe permet une bonne optimisation du cache de SPIP (puisque j’insère du code PHP où spip attend du code spip, boucles etc). Des avis à ce propos ?

Cordialement,


e.r

Le 14 février 2012 11:00, Mikhael MYARA <myara@opto.univ-montp2.fr> a écrit :

bonjour,
j’essaie désespérément de créer un nouveau type de balise pour SPIP, mais j’en viens à me demander si j’ai vraiment compris le concept de balise.
Je lis par endroits que les balises SPIP sont du type #BALISE à l’intérieur des squelettes,
et par ailleurs je lis que les balises sont dans l’espace de rédaction. Ce qui m’interesse actuelleemnt c’est de créer une pour l’espace de rédaction pour que les rédacteurs puissent insérer à volonté du contenu, par exemple issu d’une autre base de données. Voici donc ce que je fais :

  • je crée un fichier mes_fonctions.php qui contient (très inspiré de plusieurs exemples):
<?php function balise_MONTEST_dist($p) { $option = interprete_argument_balise(1,$p); $p->code = "Hello"; return $p; } ?>
  • je copie ce fichier dans /squelettes
  • je vais dans l’espace de rédaction, modifie un article et ajoute quelque part dans le texte, valide la modif, et je m’attends à ce que ce soit remplacé par « Hello ».

Et rien … Pourtant j’ai examiné le code de certains plugin (par exemple refbase) et j’ai bien l’impression que çà devrait fonctionner. Mon code est bien vu par spip car si j’introduis une erreur de syntaxe spip indique une erreur dans ce fichier …
Est-ce que j’oublie quelque chose ? Est-ce que j’ai mal compris le concept de balise spip ? Est-ce que je dois parser le texte avec les pipelines (ca me semble lourd !!) ?
En vous remerciant,
Mike


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc