[SPIP Zone] Où déclarer une balise en Spip 3?

Bonjour,

Je trouve bien la déclaration des fonctions pour créer des balises dynamiques :
http://programmer.spip.net/Les-balises-dynamiques

Mais où déclarer ces fonctions hors de mes_fonctions.php ?

Suffit-il de créer un fichier balise/la_balise.php ?
Ou bien la déclarer dans paquet.xml ?
?

Merci

--
Stéphane

Les Voisins Spipeurs : http://www.voisins-spipeurs.net

Raahhhh....

J'ai simplement déclaré dans mes_fonctions.php :

function balise_URL_VIDEO_COMPTEUR_dist($p) {
     return calculer_balise_dynamique($p, 'URL_VIDEO_COMPTEUR', array('id_document'));
}

function balise_URL_VIDEO_COMPTEUR_stat( $args, $context_compil) {
     return $args;
}

function balise_URL_VIDEO_COMPTEUR_dyn( $id_document) {
     return "blabla";
}

un squelette videotest.html:

<BOUCLE_tous(DOCUMENTS){extension==mp4|ogg|webm}>
  <a href="#URL_VIDEO_COMPTEUR">
    <img src="#FICHIER" />
  </a>
</BOUCLE_tous>

Et j'ai une erreur sur /spip.php?page=videotest :

Balise URL_VIDEO_COMPTEUR mal déclarée pour CVT plugins/lorientation/videotest.html _tous 2

Que me manque-t-il ??

Merci

--
Stéphane

Les Voisins Spipeurs : http://www.voisins-spipeurs.net

Le 04/11/2014 18:13, Stéphane Santon a écrit :

Bonjour,

Je trouve bien la déclaration des fonctions pour créer des balises dynamiques :
Les balises dynamiques - Programmer avec SPIP 4

Mais où déclarer ces fonctions hors de mes_fonctions.php ?

Je crois avoir lu qu'un squelette truc.html accepte automatiquement
de prendre en compte le contenu du fichier: truc_fonctions.php

Suffit-il de créer un fichier balise/la_balise.php ?
Ou bien la déclarer dans paquet.xml ?

--
YannX

Le 04/11/2014 18:53, Stéphane Santon a écrit :

J'ai simplement déclaré dans mes_fonctions.php :
function balise_URL_VIDEO_COMPTEUR_dist($p) {
     return calculer_balise_dynamique($p, 'URL_VIDEO_COMPTEUR', array('id_document'));
}
function balise_URL_VIDEO_COMPTEUR_stat( $args, $context_compil) {
     return $args;
}
function balise_URL_VIDEO_COMPTEUR_dyn( $id_document) {
     return "blabla";
}
un squelette videotest.html:
<BOUCLE_tous(DOCUMENTS){extension==mp4|ogg|webm}><a href="#URL_VIDEO_COMPTEUR"><img src="#FICHIER" /></a> </BOUCLE_tous>

Et j'ai une erreur sur /spip.php?page=videotest :
Balise URL_VIDEO_COMPTEUR mal déclarée pour CVT plugins/lorientation/videotest.html _tous 2

Cette erreur vient apparemment de executer_balise_dynamique
http://core.spip.org/projects/spip/repository/entry/spip/ecrire/public/composer.php#L420
lorsqu'il ne trouve pas un fichier de définition dans le répertoire balise/
Visiblement mes_fonctions n'est pas le bon endroit, ou en tout cas ça ne suffit pas
et il semble que tu dois créer un fichier balise/url_video_compteur.php

Les messages d'erreurs étant insuffisant, si j'étais toi j'y ferai afficher plus d'infos
pour savoir précisément lequel se déclanche (car ya 2 occurences possibles).

J'ai aussi l'impression que comme le nom de ta fonction commence par URL_
elle fait partie de la famille des balises #URL_
et elle va être au moins en partie traitée par balise_url_stat et balise_url_dyn
Si tu veux cela, il va falloir t'occuper sérieusement de cette prise en charge (semi)automagique,
sinon, il serait plus simple de choisir un autre préfixe encore non utilisé :
#GETURL_VIDEO_COMPTEUR par exemple.

JL

Bonjour,

Le 04/11/2014 21:00, JLuc a écrit :

J'ai simplement déclaré dans mes_fonctions.php :
function balise_URL_VIDEO_COMPTEUR_dist($p) {

Et j'ai une erreur sur /spip.php?page=videotest :
Balise URL_VIDEO_COMPTEUR mal déclarée pour CVT
plugins/lorientation/videotest.html

Cette erreur vient apparemment de executer_balise_dynamique
http://core.spip.org/projects/spip/repository/entry/spip/ecrire/public/composer.php#L420

lorsqu'il ne trouve pas un fichier de définition dans le répertoire balise/
Visiblement mes_fonctions n'est pas le bon endroit, ou en tout cas ça ne
suffit pas
et il semble que tu dois créer un fichier balise/url_video_compteur.php

Tout à fait, j'ai créé le fichier dans le dossier balise/ et ça marche !
Merciiii :slight_smile:

Donc manque d'info sur Les balises dynamiques - Programmer avec SPIP 4

J'ai aussi l'impression que comme le nom de ta fonction commence par URL_
elle fait partie de la famille des balises #URL_
et elle va être au moins en partie traitée par balise_url_stat et
balise_url_dyn
Si tu veux cela, il va falloir t'occuper sérieusement de cette prise en
charge (semi)automagique,
sinon, il serait plus simple de choisir un autre préfixe encore non
utilisé :
#GETURL_VIDEO_COMPTEUR par exemple.

Pour l'instant pas de problème, mais en cas, je regarderai à ton conseil, merci.

--
Stéphane

Les Voisins Spipeurs : http://www.voisins-spipeurs.net

Bonjour,

Toujours dans ma balise devenue TELECHARGER_VIDEO_COMPTEUR j'ai placé

function balise_TELECHARGER_VIDEO_COMPTEUR_dyn( $id_document, $fichier, $format) {
$url = generer_url_action('telecharger',"arg=$id_document/$format",true);
return $url;
}

Ça marche bien sauf que ça crée une url absolue...
Comment raccourcir et créer une url relative ?

Merci

--
Stéphane

Les Voisins Spipeurs : http://www.voisins-spipeurs.net