Affichage de balises contitionnelles

Salut je voudrai afficher en priorité la balise #PS
si elle contient quelque chose et si non afficher
#SOUSTITRE qui lui contient toujours quelque chose
mais sans afficher les deux en même temps.

Possible?
D'avance merci aux intervenants.

Gabriel

je suis presque sur qu'il faut passer par du PHP:

<BOUCLE_Article(ARTICLES){id_article}>
<?
$art_ps=<<<EOF
#PS
EOF;

$art_sous=<<<EOF
#SOUSTITRE
EOF;

if($art_ps) {$info=$art_ps;} else {$info=art_sous;}
?>

ensuite dans le texte où tu veux qu'apparaisse PS ou SOUSTITRE, tu place la balise suivante <?= $info; ?>

</BOUCLE_Article>

Bonne chance
Tim

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Gabriel Henry
Envoyé : lundi 18 août 2003 15:22
À : spip@rezo.net
Objet : [Spip] Affichage de balises contitionnelles

Salut je voudrai afficher en priorité la balise #PS
si elle contient quelque chose et si non afficher
#SOUSTITRE qui lui contient toujours quelque chose
mais sans afficher les deux en même temps.

Possible?
D'avance merci aux intervenants.

Gabriel

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

Merci TIM
Trop fort tu es
Ça marche
Juste un oubli de $ avant le art_sous
Le revoilà corriger.

Gabriel

je suis presque sur qu'il faut passer par du PHP:

<BOUCLE_Article(ARTICLES){id_article}>
<?
$art_ps=<<<EOF
#PS
EOF;

$art_sous=<<<EOF
#SOUSTITRE
EOF;

if($art_ps) {$info=$art_ps;} else {$info=$art_sous;}
?>

ensuite dans le texte où tu veux qu'apparaisse PS ou SOUSTITRE, tu place la
balise suivante <?= $info; ?>

</BOUCLE_Article>

Bonne chance
Tim

waow !

qlq peux m'expliquer parce que là j'ai pas suivi, c quoi ce code ? du php, vous en êtes sûr !?
C'est un peu comme celui de Xpagination, j'y comprends pas grand chose, mdr !

merci pour vos éclairs,
Wakan.

lundi 18 août 2003, à 05:38 pm, Tim Fletcher a écrit :

je suis presque sur qu'il faut passer par du PHP:

<BOUCLE_Article(ARTICLES){id_article}>
<?
$art_ps=<<<EOF
#PS
EOF;

$art_sous=<<<EOF
#SOUSTITRE
EOF;

if($art_ps) {$info=$art_ps;} else {$info=art_sous;}
?>

ensuite dans le texte où tu veux qu'apparaisse PS ou SOUSTITRE, tu place la balise suivante <?= $info; ?>

</BOUCLE_Article>

Bonne chance
Tim

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Gabriel Henry
Envoyé : lundi 18 août 2003 15:22
À : spip@rezo.net
Objet : [Spip] Affichage de balises contitionnelles

Salut je voudrai afficher en priorité la balise #PS
si elle contient quelque chose et si non afficher
#SOUSTITRE qui lui contient toujours quelque chose
mais sans afficher les deux en même temps.

Possible?
D'avance merci aux intervenants.

Gabriel

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

Le 19/08/03 5:11, « Wakan TAKA » <wakan@taka.ca.tc> a écrit :

Salut,

waow !

Oui, c'est joli chsui d'accord :slight_smile:

qlq peux m'expliquer parce que là j'ai pas suivi, c quoi ce code ? du
php, vous en êtes sûr !?

Ben c'est du spip ET du php.

C'est un peu comme celui de Xpagination, j'y comprends pas grand chose,
mdr !

Je ne connais pas xpagination.

merci pour vos éclairs,

Je te commente le code de Tim?

lundi 18 août 2003, à 05:38 pm, Tim Fletcher a écrit :

/* Soit donc une boucle article qui se comporte pour l'article courant */
<BOUCLE_Article(ARTICLES){id_article}>
/* Cette boucle peut afficher toutes les variables de l'article */
/* mais ici on ne veut #PS QUE s'il n'est pas vide sinon c'est #SOUSTITRE */

<?

/* Tim crée une variable $art_ps qu'il remplit avec le contenu de #PS */
$art_ps=<<<EOF
#PS
EOF;

/* Tim crée une variable $art_sous qu'il remplit avec le #SOUSTITRE */
$art_sous=<<<EOF
#SOUSTITRE
EOF;

/* là c'est la boucle conditionnelle */
/* si $art_ps existe = n'est pas vide, alors $info prend son contenu */

if($art_ps) {$info=$art_ps;} else {$info=$art_sous;}

/* sinon il prend la valeur de $art_sous */

?>
</BOUCLE_Article>

La boucle a créé la variable php $info et cette variable peut être mise
ainsi dans ton squelette où tu veux (après la boucle...) de cette manière :
<?= $info; ?>

Désolé pour l'affront fait aux pro du php en commentant un code aussi simple
:wink:

--
Dr Philippe Auriol, allergologue
http://www.allergique.org/ Le Monde des Allergies
http://www.weballergies.com/ L'allergie en fiches
http://chercher.weballergies.com/ Chercher l'allergie sur le net

@ Tim Fletcher <tfletcher@netfactoriel.com> :

je suis presque sur qu'il faut passer par du PHP:

<BOUCLE_Article(ARTICLES){id_article}>
<?
$art_ps=<<<EOF
#PS
EOF;

Malheureux ! N'utilisez jamais ce genre de construction, car elle permet à
n'importe quel administrateur du site (voir contributeur au forum) de passer
du php dans vos squelettes ! Il suffit qu'il mettre EOF; dans son texte !

La bonne méthode pour stocker un élément SPIP dans une variable php est
documentée :
    $art_ps = '[(#PS|texte_script)]';

(très précisément, c'est-à-dire avec des ' - et pas des " - en guise de
délimiteurs...)

-- Fil