affichage conditionnel

Bonsoir,

Je suis en train de créer une page où je liste des articles en affichant
leur #TITRE et leur #CHAPO. J'aimerais créer un lien vers la page de
l'article mais uniquement quand le champ #TEXTE n'est pas vide (je sais,
ça paraît un peu bizarre comme ça, mais c'est le seul moyen que j'ai
trouvé pour faire une page de news où les trois lignes d'intro sont
différentes de la page sur laquelle on tombe).

Bref, en suivant la logique de l'affichage conditionnel dans SPIP, j'écris :

[<!-- (#TEXTE) --><a href="#URL_ARTICLE">]#TITRE[<!-- (#TEXTE) --></a>]

Ou, avec un peu de php :

<?php

$texte = stripslashes("[(#TEXTE|addslashes)]");

if($texte) print("<a href=\"#URL_ARTICLE\">"); ?>#TITRE<?php

if($texte) print("</a>");

?>

Mais le moins qu'on puisse dire est que tout ça est fort laborieux, très
peu efficace et absolument pas du tout élégant. Je ne vois pas comment
faire ça mieux. Quelqu'un a une autre idée ?

Merci

FS

--
François SCHREUER - francois@schreuer.org

<?php
$texte = stripslashes("[(#TEXTE|addslashes)]");

La documentation recommande d'utiliser '[(#TEXTE|texte_script)]' ; toute
autre formulation risque en effet d'ouvrir des trous des sécurité (que se
passe-t-il s'il y a un $ dans la chaine)...

-- Fil

SCHREUER François a écrit :

Bref, en suivant la logique de l'affichage conditionnel dans SPIP, j'écris :
[<!-- (#TEXTE) --><a href="#URL_ARTICLE">]#TITRE[<!-- (#TEXTE) --></a>]

tu peux te baser sur texte_alternatif
http://www.uzine.net/spip_contrib/article.php3?id_article=144
pour écrire un nouveau filtre lien_conditionnel
à utiliser comme ça :
[(#TEXTE|lien_conditionnel {"#TITRE", #URL_ARTICLE})]
et qui ressemblerait à ça :
function lien_conditionnel ($texte_test, $texte_lien, $url )
{
     if ($texte_test)
         return '<a href="'.$url.'">'.$texte_lien.$"</a>";
     else
         return $texte_lien;
}

JLuc
PS : C'était le solstice hier,
les jours rallongent !
Yeahh !!!