Rendre un bout de code PHP en langage SPIP dans squelette

'jour,

Comment je peux rendre ça (dans la page article.html) en langage SPIP svp ?

<code>
<?php
if(#ID_ARTICLE == 11) {
     print 'Je vous aime';
}
?>
<?php
if (#ID_ARTICLE == 30 || #ID_ARTICLE == 32) {
     print '#TEXTE';
     }
else {
     print '';
     }
?>
</code>

Ca doit bien exister ? Il y en a bien un(e) parmi vous qu'il y a pensé ?

Précision : ça fonctionne très bien ainsi, mais je voudrais le coder en SPIP.

Sankseulotte.

-- Franck

Tu peux faire [(#ID_ARTICLE|=={11}|?{' '}) Je vous aime] pour le premier et
[(#ID_ARTICLE|regexp{30, 32}|?{' '}) #TEXTE]

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de
Franck Ducas
Envoyé : samedi 27 septembre 2008 11:52
À : SPIP REZO
Objet : [Spip] Rendre un bout de code PHP en langage SPIP dans squelette

'jour,

Comment je peux rendre ça (dans la page article.html) en langage SPIP svp ?

<code>
<?php
if(#ID_ARTICLE == 11) {
     print 'Je vous aime';
}
?>
<?php
if (#ID_ARTICLE == 30 || #ID_ARTICLE == 32) {
     print '#TEXTE';
     }
else {
     print '';
     }
?>
</code>

Ca doit bien exister ? Il y en a bien un(e) parmi vous qu'il y a pensé ?

Précision : ça fonctionne très bien ainsi, mais je voudrais le coder en
SPIP.

Sankseulotte.

-- Franck
_______________________________________________
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.spip.net/

irc://irc.freenode.net/spip ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Franck Ducas <franck.ducas <at> free.fr> writes:

Comment je peux rendre ça (dans la page article.html) en langage SPIP svp ?

<code>
<?php
if(#ID_ARTICLE == 11) {
     print 'Je vous aime';
}
?>

code SPIP:
[(#ID_ARTICLE|=={11}|?{Je vous aime})]

<?php
if (#ID_ARTICLE == 30 || #ID_ARTICLE == 32) {
     print '#TEXTE';
     }
else {
     print '';
     }
?>

code SPIP:
[(#ID_ARTICLE|match{^(30|32)$}|?{
    [(#TEXTE)]
    ,
    ''
})]

ou, si tu veux faire des choses plus complexe que simplement [(#TEXTE)]
[(#ID_ARTICLE|match{^(30|32)$}|?{' ',''})
    le code si le test est OK
]
[(#ID_ARTICLE|match{^(30|32)$}|?{'',' '})
    le code si le test n'est PAS OK
]

Attention! dans tous les cas il faut que toutes les #BALISEs que tu mets dans
les parties conditionnelles soient entre [(...)] sinon ça plante

Ca doit bien exister ? Il y en a bien un(e) parmi vous qu'il y a pensé ?

heureusement que ça existe: c'est SPIP quand même!

Si tu veux aller plus loin, tu aura ensuite besoin de faire la même chose avec
des boucles dans le résultat de ton test et là il te faudra (par exemple)
utiliser la bidouille des "BOUCLEs feintes" brillamment expliquée dans le
paragraphe "Parties optionnelles des balises" de cet article

Précision : ça fonctionne très bien ainsi, mais je voudrais le coder en
SPIP.

ça fonctionne peut être mais c'est *mal* de mettre du PHP dans les squelettes !

Xébiaut a écrit :

Tu peux faire [(#ID_ARTICLE|=={11}|?{' '}) Je vous aime] pour le premier et
[(#ID_ARTICLE|regexp{30, 32}|?{' '}) #TEXTE]

Ca me colle un message d'erreur en début de page sur les rubriques (?) au niveau de la fonction getsizeimage() et un pb de "regexp" sur la page des articles.
Ceci après avoir viré le code php et avoir fait ça dans le squelette :
<code>
[(#ID_ARTICLE|=={11}|?{' '}) Je vous aime]
[(#ID_ARTICLE|regexp{30, 32}|?{' '}) #TEXTE]
</code>

Mais merci quand même. Je vais creuser ton exemple.

-- Franck

cy_altern a écrit :

code SPIP: [(#ID_ARTICLE|=={11}|?{Je vous aime})]

Impeccable !
http://jmpechart.com/spip.php?article11

[(#ID_ARTICLE|match{^(30|32)$}|?{
    [(#TEXTE)]
    ,
    ''
})]

Ca défrise aussi.
http://jmpechart.com/spip.php?article30
http://jmpechart.com/spip.php?article32

Et sur les autres, rien (par exemple) :
http://jmpechart.com/spip.php?article73

Donc nickel, avec un seul squelette et deux lignes !

ou, si tu veux faire des choses plus complexe que simplement [(#TEXTE)]
[(#ID_ARTICLE|match{^(30|32)$}|?{' ',''})
    le code si le test est OK
]
[(#ID_ARTICLE|match{^(30|32)$}|?{'',' '})
    le code si le test n'est PAS OK
]

/snip

Si tu veux aller plus loin, tu aura ensuite besoin de faire la même chose avec
des boucles dans le résultat de ton test et là il te faudra (par exemple)
utiliser la bidouille des "BOUCLEs feintes" brillamment expliquée dans le
paragraphe "Parties optionnelles des balises" de cet article
Les traitements conditionnels avec SPIP - Le labo

Merci beaucoup ! Ce logiciel me rendra toujours mon regard d'enfant sur les choses que l'on peut faire avec !

-- Franck

C la seconde boucle qui doit etre mauvaise
Il faut que tu regardes du coté de la balise #ARRAY

-----Message d'origine-----
De : Franck Ducas [mailto:franck.ducas@free.fr]
Envoyé : samedi 27 septembre 2008 12:56
À : Xébiaut
Cc : 'SPIP REZO'
Objet : Re: [Spip] Rendre un bout de code PHP en langage SPIP dans squelette

Xébiaut a écrit :

Tu peux faire [(#ID_ARTICLE|=={11}|?{' '}) Je vous aime] pour le premier

et

[(#ID_ARTICLE|regexp{30, 32}|?{' '}) #TEXTE]

Ca me colle un message d'erreur en début de page sur les rubriques (?)
au niveau de la fonction getsizeimage() et un pb de "regexp" sur la page
des articles.
Ceci après avoir viré le code php et avoir fait ça dans le squelette :
<code>
[(#ID_ARTICLE|=={11}|?{' '}) Je vous aime]
[(#ID_ARTICLE|regexp{30, 32}|?{' '}) #TEXTE]
</code>

Mais merci quand même. Je vais creuser ton exemple.

-- Franck