[SPIP Zone] Plugin Agenda 2, lien vers un évènement dans le corps d'un article. Pas possible ? [mon lien->evenementXX]

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d’un évènement (lié à un autre article) proprement dans le corps d’un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu’un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

Le 25 mars 10 à 15:29, Guy Cesaro a écrit :

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d'un évènement (lié à un autre article) proprement dans le corps d'un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu'un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

faire un modele par exemple

Bonjour,

Merci, ça me dépanne, mais c’est un peu déroutant pour le rédacteur. Avec les [lien->artXX], [lien->rubXX], [lien->brvXX], on peut s’attendre à un [lien->evtXX]…
Là, on se retrouve avec une syntaxe <event|lien=le titre de mon lien> pour un modèle « event.html »

Et en dehors de ce « léger » désagrément, la longueur du paramètre « lien » / certains caractères ne risquent-ils pas de poser un problème ? Les paramètres des modèles sont-ils sans danger avec de longues chaines de caractères ?

Le 25 mars 2010 15:52, Pierre Fiches <pierre.fiches@free.fr> a écrit :

Le 25 mars 10 à 15:29, Guy Cesaro a écrit :

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d’un évènement (lié à un autre article) proprement dans le corps d’un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu’un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

faire un modele par exemple


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Bonjour,

Est-ce que vous avez un squelette evenement.html dans votre répertoire squelettes?

Cordialement,

Teddy Payet

Le 25 mars 2010 à 17:32, Guy Cesaro <guy.cesaro@gmail.com> a écrit :

Bonjour,

Merci, ça me dépanne, mais c’est un peu déroutant pour le rédacteur. Avec les [lien->artXX], [lien->rubXX], [lien->brvXX], on peut s’attendre à un [lien->evtXX]…
Là, on se retrouve avec une syntaxe <event|lien=le titre de mon lien> pour un modèle « event.html »

Et en dehors de ce « léger » désagrément, la longueur du paramètre « lien » / certains caractères ne risquent-ils pas de poser un problème ? Les paramètres des modèles sont-ils sans danger avec de longues chaines de caractères ?

Le 25 mars 2010 15:52, Pierre Fiches <pierre.fiches@free.fr> a écrit :

Le 25 mars 10 à 15:29, Guy Cesaro a écrit :

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d’un évènement (lié à un autre article) proprement dans le corps d’un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu’un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

faire un modele par exemple


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Bonjour Teddy,
je vois pas bien à quoi ça servirait ou plutôt qu’est ce que ça changerait ? Ou alors si ça fonctionne tout bêtement comme ça faut me détailler le fonctionnement parce que je suis largué ?

non, j’ai fait comme me l’a indiqué Pierre (encore merci!), un modèle « mon_modele » en pompant la boucle du modèle fournit avec agenda 2 :

<BOUCLE_vevent(EVENEMENTS){id_evenement=#ENV{id,#ENV{id_evenement}}}{tout}>
[[(#ENV{lien}||sinon{#TITRE})]]
</BOUCLE_vevent>

Je dois donc envoyer à l’appel du modèle « mon_modele » l’id_evenement et le paramètre lien (qui dans le cas présent est le titre de mon lien lorsque je veux faire référence à cet évènement)

Et ensuite plus qu’à écrire ça dans la rédaction d’article ou autre objet, en ayant effectivement un squelette « mon_squelette » préparé pour recevoir id_evenement :

j’ai enfin le <mon_mondeleXX|lien= titre de mon lien qui peut être court> et même le
<mon_mondeleXX|lien=titre de mon lien qui peut être trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèès long>

Mais je trouve ça déroutant pour les rédacteurs qui sont habitués aux liens de ce type pour les articles,rubriques,brèves :

j’ai enfin le [ titre de mon lien qui peut être court->evenementXX] et même le
[titre de mon lien qui peut être trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèès long->evenementXX]

Ma question est : Y a t-il une limite sur la longueur des paramètres que l’on transmet au modèle ? Y a t-il un risque d’interprétation de la chaine du/ des paramètres en cas de caractères spéciaux dans la chaine ?

Et bien sûr, y a t-il un plugin qui fasse ce boulot ? (interprété [titre->evenementXX] et [->evenementXX]). Pour cet objet ou un autre peu importe…

Le 25 mars 2010 18:35, Teddy Payet <teddy.spip@gmail.com> a écrit :

Bonjour,

Est-ce que vous avez un squelette evenement.html dans votre répertoire squelettes?

Cordialement,

Teddy Payet

Le 25 mars 2010 à 17:32, Guy Cesaro <guy.cesaro@gmail.com> a écrit :

Bonjour,

Merci, ça me dépanne, mais c’est un peu déroutant pour le rédacteur. Avec les [lien->artXX], [lien->rubXX], [lien->brvXX], on peut s’attendre à un [lien->evtXX]…
Là, on se retrouve avec une syntaxe <event|lien=le titre de mon lien> pour un modèle « event.html »

Et en dehors de ce « léger » désagrément, la longueur du paramètre « lien » / certains caractères ne risquent-ils pas de poser un problème ? Les paramètres des modèles sont-ils sans danger avec de longues chaines de caractères ?

Le 25 mars 2010 15:52, Pierre Fiches <pierre.fiches@free.fr> a écrit :

Le 25 mars 10 à 15:29, Guy Cesaro a écrit :

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d’un évènement (lié à un autre article) proprement dans le corps d’un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu’un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

faire un modele par exemple


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 26 mars 10 à 00:23, Guy Cesaro a écrit :

Bonjour Teddy,
je vois pas bien à quoi ça servirait ou plutôt qu’est ce que ça changerait ? Ou alors si ça fonctionne tout bêtement comme ça faut me détailler le fonctionnement parce que je suis largué ?

Ben… Euh, comment faire un lien vers un événement si vous n’avez pas un squelette pour l’afficher ?
C’est un peu comme les groupes de mots-clés… Si vous voulez les afficher, il faut avoir un squelette adéquate…

non, j’ai fait comme me l’a indiqué Pierre (encore merci!), un modèle « mon_modele » en pompant la boucle du modèle fournit avec agenda 2 :

<BOUCLE_vevent(EVENEMENTS){id_evenement=#ENV{id,#ENV{id_evenement}}}{tout}>
[[(#ENV{lien}||sinon{#TITRE})]]
</BOUCLE_vevent>

Je dois donc envoyer à l’appel du modèle « mon_modele » l’id_evenement et le paramètre lien (qui dans le cas présent est le titre de mon lien lorsque je veux faire référence à cet évènement)

Et ensuite plus qu’à écrire ça dans la rédaction d’article ou autre objet, en ayant effectivement un squelette « mon_squelette » préparé pour recevoir id_evenement :

j’ai enfin le <mon_mondeleXX|lien= titre de mon lien qui peut être court> et même le
<mon_mondeleXX|lien=titre de mon lien qui peut être trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèès long>

Mais je trouve ça déroutant pour les rédacteurs qui sont habitués aux liens de ce type pour les articles,rubriques,brèves :

j’ai enfin le [ titre de mon lien qui peut être court->evenementXX] et même le
[titre de mon lien qui peut être trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès trèèèèèèèèèèèèèèèèèèèès long->evenementXX]

Ma question est : Y a t-il une limite sur la longueur des paramètres que l’on transmet au modèle ? Y a t-il un risque d’interprétation de la chaine du/ des paramètres en cas de caractères spéciaux dans la chaine ?

Et bien sûr, y a t-il un plugin qui fasse ce boulot ? (interprété [titre->evenementXX] et [->evenementXX]). Pour cet objet ou un autre peu importe…

Le 25 mars 2010 18:35, Teddy Payet <teddy.spip@gmail.com> a écrit :

Bonjour,

Est-ce que vous avez un squelette evenement.html dans votre répertoire squelettes?

Cordialement,

Teddy Payet

Le 25 mars 2010 à 17:32, Guy Cesaro <guy.cesaro@gmail.com> a écrit :

Bonjour,

Merci, ça me dépanne, mais c’est un peu déroutant pour le rédacteur. Avec les [lien->artXX], [lien->rubXX], [lien->brvXX], on peut s’attendre à un [lien->evtXX]…
Là, on se retrouve avec une syntaxe <event|lien=le titre de mon lien> pour un modèle « event.html »

Et en dehors de ce « léger » désagrément, la longueur du paramètre « lien » / certains caractères ne risquent-ils pas de poser un problème ? Les paramètres des modèles sont-ils sans danger avec de longues chaines de caractères ?

Le 25 mars 2010 15:52, Pierre Fiches <pierre.fiches@free.fr> a écrit :

Le 25 mars 10 à 15:29, Guy Cesaro a écrit :

Bonjour,

Je me retrouve face à un problème. Comment écrire un lien vers la page d’un évènement (lié à un autre article) proprement dans le corps d’un article ? Apparemment, pas prévu du tout par le plugin, mais peut-etre quelqu’un a une astuce pour que les rédacteurs puissent faire des liens vers un évènement proprement (sans url_absolue ou autre) ?

faire un modele par exemple


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 26/03/2010 00:23, Guy Cesaro a écrit :

Bonjour Teddy,
je vois pas bien à quoi ça servirait ou plutôt qu'est ce que ça
changerait ? Ou alors si ça fonctionne tout bêtement comme ça faut me
détailler le fonctionnement parce que je suis largué ?

Ben c'est-à-dire que "evenement" étant de fait un nouvel objet éditorial SPIP, alors *automatiquement* tu peux écrire #URL_EVENEMENT ainsi que [->evenementXX] et ça génèrera alors l'URL de l'objet (spip.php?evenementXX en URL classique, sinon le titre).
URL qui dirigera vers le squelette du nom de l'objet, ici evenement.html

C'est trop la classe, SPIP.

--
RastaPopoulos

@teddy
Pardonne moi, je n’ai pas été clair : je n’ai pas dis que je n’avais pas un squelette pour afficher les évènements. Simplement, même s’il s’appelle evenement.html, il n’est pas appelé par evenementXX. Il lui faut un page=evenement&id_evenement=XX. Donc à partir de là, qu’il s’appelle evenement ou mon_squelette, ça ne change rien. Dans la solution que je donne basée sur l’idée de Pierre (utilisation d’un modèle pour générer le lien), il suffit de mettre le nom du bon squelette. Mais je dois avoir un dysfonctionnement chez moi puisque RastaPopoulos semble dire la même chose que toi, qu’avoir un squelette evenement.html ferait qu’il est appelé lorsque le lien pointe vers evenementXX

@RastaPopoulos
Bonjour RastaPopoulos, et merci pour ta réponse. Le comportement que tu décris est celui auquel je m’attendais mais que je n’obtiens pas :
je suis en spip 2.1rc1+agenda 2, et [->evenementXX] ne fait qu’ajouter evenementXX à l’url en cours (ce qui donne dans l’espace privé on tombe sur /ecrire/evenementXX :confused: et sur le public /spip.php?evenementXX. Donc il n’est pas interprété du tout sinon j’aurais un exec=evenements_edit&id_evenement=XX dans l’espace privé ?

Ensuite, pour l’appel du squelette, ça ne fonctionne pas, avec un squelette evenement.html dans le dossier squelette, je tombe dessus seulement si l’url est de type page=evenement&id_evenement=XX. Si l’url est avec spip.php?evenementXX, je suis renvoyé sur l’accueil, il comprend pas l’écureuil :frowning:

@tous
Qu’est ce qui ne va pas chez moi ?
La version de spip ? un plugin ? Je suis largué ? Faut zpip en dernière version ?
snif, comment ça travaille (quels plugins en quelle version; quel spip) sur les spip ou tu as vu ça ?

Sinon, oui trop la classe le spip… il avance bien l’écureuil en ce moment :slight_smile:

Le 26 mars 2010 00:53, RastaPopoulos <rastapopoulos@spip.org> a écrit :

Le 26/03/2010 00:23, Guy Cesaro a écrit :

Bonjour Teddy,
je vois pas bien à quoi ça servirait ou plutôt qu’est ce que ça
changerait ? Ou alors si ça fonctionne tout bêtement comme ça faut me
détailler le fonctionnement parce que je suis largué ?

Ben c’est-à-dire que « evenement » étant de fait un nouvel objet éditorial SPIP, alors automatiquement tu peux écrire #URL_EVENEMENT ainsi que [->evenementXX] et ça génèrera alors l’URL de l’objet (spip.php?evenementXX en URL classique, sinon le titre).
URL qui dirigera vers le squelette du nom de l’objet, ici evenement.html

C’est trop la classe, SPIP.


RastaPopoulos


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 26/03/10 10:21, Guy Cesaro a écrit :

Simplement, même s'il s'appelle
evenement.html, il n'est pas appelé par evenementXX. Il lui faut un
page=evenement&id_evenement=XX. Donc à partir de là, qu'il s'appelle
evenement ou mon_squelette, ça ne change rien.

bah.
en ajoutant un rewriterule dans le htaccess :
   RewriteRule ^evenement([0-9]+)(\.html)?$ spip.php?page=evenement&id_evenement=$1 [QSA,L]

Le 26/03/2010 10:41, denisb a écrit :

Le 26/03/10 10:21, Guy Cesaro a écrit :

Simplement, même s'il s'appelle
evenement.html, il n'est pas appelé par evenementXX. Il lui faut un
page=evenement&id_evenement=XX. Donc à partir de là, qu'il s'appelle
evenement ou mon_squelette, ça ne change rien.

bah.
en ajoutant un rewriterule dans le htaccess :
RewriteRule ^evenement([0-9]+)(\.html)?$
spip.php?page=evenement&id_evenement=$1 [QSA,L]

Bof.
En fait pour les URL classiques ça marche pas en 2.0 c'était pas extensible. Mais en 2.1 il faut ajouter un pipeline dans Agenda pour "declarer_objet" et ajouter l'objet "evenement". Et là ça sera pris en compte automatiquement.

Sinon pour les autres types d'URLs, là ça marchait déjà en 2.0.

Pour ce qui est du raccourci typo de lien [->evenementXX] je sais plus si c'est automatique ou s'il faut qu'Agenda se mette dans un pipeline dédié à ça.

--
RastaPopoulos

Youhou ! Tu m’as trouvé la solution parfaite !

Spip 2.1 a un nouveau pipeline inclut au core, declarer_url_objets (http://programmer.spip.org/declarer_url_objets)

Donc ajouter à plugin.xml d’agenda 2

declarer_url_objets agenda_pipelines.php

Donc ajouter à agenda_pipelines.php

function agenda_declarer_url_objets($array){
$array = ‹ evenement ›;
return $array;
}

Et ça roule !!! Géanial, géant et génial.

De ce que je comprends, on complète avec declarer_tables_interfaces pour mettre le titre en réécriture d’url ?

Bon, et si un ptit plugin listait tous les objets pour permettre de choisir ce comportement ou non via un formulaire adapté, ce s’rait top. Le problème étant que certains objets comme grappes déjà ce type de comportement. Possiblement surchargeable ?

Le 26 mars 2010 11:02, RastaPopoulos <rastapopoulos@spip.org> a écrit :

Le 26/03/2010 10:41, denisb a écrit :

Le 26/03/10 10:21, Guy Cesaro a écrit :

Simplement, même s’il s’appelle
evenement.html, il n’est pas appelé par evenementXX. Il lui faut un
page=evenement&id_evenement=XX. Donc à partir de là, qu’il s’appelle
evenement ou mon_squelette, ça ne change rien.

bah.
en ajoutant un rewriterule dans le htaccess :
RewriteRule ^evenement([0-9]+)(.html)?$
spip.php?page=evenement&id_evenement=$1 [QSA,L]

Bof.
En fait pour les URL classiques ça marche pas en 2.0 c’était pas extensible. Mais en 2.1 il faut ajouter un pipeline dans Agenda pour « declarer_objet » et ajouter l’objet « evenement ». Et là ça sera pris en compte automatiquement.

Sinon pour les autres types d’URLs, là ça marchait déjà en 2.0.

Pour ce qui est du raccourci typo de lien [->evenementXX] je sais plus si c’est automatique ou s’il faut qu’Agenda se mette dans un pipeline dédié à ça.


RastaPopoulos


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone