balises avec mes_fonctions.php
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):
Code:
1 2 3 4 5 6 7
| <?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
Création d’une balise SPIP type
Citation:
Envoyé par
ZeMike
- je crée un fichier mes_fonctions.php qui contient (très inspiré de plusieurs exemples):
Code:
1 2 3 4 5 6 7
| <?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 ...
Bonjour Mike,
Voici une réponse tardive mais qui peut servir à d'autres (sous SPIP3).
Dans l'exemple précédent, la balise <montest> incluse dans un message par un rédacteur n'est pas interprétée. Ceci est normal pour des raisons de sécurité.
Une fois créée dans le fichier mes_fonctions.php, la balise "#MONTEST" doit être incluse - par la même personne qui possède les permissions d'écriture du webmaster (accès FTP) -, dans un fichier de squelette SPIP (par exemple article.html).
Exemple d'appel d'une balise #MONTEST dans un fichier de type squelette (par exemple article.html du répertoire squelette), correspondant à une fonction php balise_MONTEST() située dans un fichier mes_fonctions.php du même répertoire squelette :
Code:
[<p>(#MONTEST{valeur_eventuelle})</p>]
Par ailleurs, le code à inclure obligatoirement dans la fonction php est un peu plus complexe si l'on veut être certain qu'il n'y aura pas d'erreur pendant son exécution.
La page suivante indique le code minimal pour créer une balise SPIP type : http://aide.ordi49.fr/spip.html#crea...lise_spip_type