fonction et ou


De : Fortineau Franck [mailto:f.fortineau@gmail.com]
Envoyé : vendredi 18 décembre 2009 15:58
À : spip@rezo.net
Objet : [Spip] fonction et ou

Bonjour,

J’aimerais savoir si je peux faire ca dans une boucle :

[(#ID_BREVE|=={‹ 69 ›}ou{‹ 70 ›}|?{’ ‹ , ›‹ })
[(#MODELE{breve}{id_breve}{cible=1}{reduire=1})]
]
[(#ID_BREVE|!={‹ 69 ›}ou{‹ 70 ›}|?{ › ‹ , ›'})
[(#MODELE{breve}{id_breve}{cadre=cadre}{cible=1}{reduire=1})]
]

et si oui, quelqu’un aurait il une idée svp ?

[(#ID_BREVE|==={^(69|70)$})] ?

Olivier GENDRIN a écrit :

[(#ID_BREVE|==={^(69|70)$})] ?

marche plus ça...

(ça eu)

denisb a écrit :

Olivier GENDRIN a écrit :

[(#ID_BREVE|==={^(69|70)$})] ?

marche plus ça...

mais on peut utiliser (si on tient aux regexp) :
   [(#ID_BREVE|match{^(69|70)$}|oui) affiche mon truc]

bonjour denisb,
c’est le pipe dans (69|70) qui office de OU ?
cordialement

denisb a écrit :

bobof a écrit :

c'est le pipe dans (69|70) qui office de OU ?
cordialement

ben oui. c'est de la syntaxe de regexp.

^ -> commence par
(69|70) -> strictement 69 ou 70
$ -> finit par

se traduit donc par : est égal à 69 ou 70

(0|2|4|6|8)$
se traduirait par : se termine par 0, 2, 4, 6 ou 8
donc : est pair

voir (entre moult autres) : http://lumadis.be/regex/tuto_pcre.php

Pas possible de simplement faire une sous boucle ?:

<BOUCLE_sub(BREVES){id_breve IN 69,70}> Code_conditionnel… </BOUCLE_sub>

Alex Gomes

IT Unit

ITUC International Trade Union Confederation

Boulevard du Roi Albert II 5, B 1, B-1210 Brussels, Belgium
Tel: 32(0)2 224 0211 Direct: (0)2 224 0281

From: bobof [mailto:bof-bof@sfr.fr]
Sent: Friday, December 18, 2009 5:07 PM
To: denisb
Cc: spip@rezo.net
Subject: Re: [Spip] fonction et ou

bonjour denisb,
c’est le pipe dans (69|70) qui office de OU ?
cordialement

denisb a écrit :

denisb a écrit :

Olivier GENDRIN a écrit :

[(#ID_BREVE|==={^(69|70)$})] ?

marche plus ça…

mais on peut utiliser (si on tient aux regexp) :
[(#ID_BREVE|match{^(69|70)$}|oui) affiche mon truc]


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Signalez vos spams d’un simple clic. www.signal-spam.fr

Gomes, Alex a écrit :

Pas possible de simplement faire une sous boucle ?:
<BOUCLE_sub(BREVES){id_breve IN 69,70}> Code_conditionnel... </BOUCLE_sub>

si bien sûr, mais c'est moins souple et lance une (ou deux) requête
sql supplémentaire.

et comme il y a 2 options (si oui ceci ; si non cela)
il faudrait 2 sous-boucles.

merci tout le monde, ca marche super bien !!

2009/12/18 bobof <bof-bof@sfr.fr>

bonjour denisb,
c’est le pipe dans (69|70) qui office de OU ?
cordialement

denisb a écrit :

denisb a écrit :

Olivier GENDRIN a écrit :

[(#ID_BREVE|==={^(69|70)$})] ?

marche plus ça…

mais on peut utiliser (si on tient aux regexp) :
[(#ID_BREVE|match{^(69|70)$}|oui) affiche mon truc]


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Signalez vos spams d’un simple clic. www.signal-spam.fr


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc


Franck Fortineau
Les Clefs du Net
8 rue René Coty
85000 La Roche sur Yon

mail : ffortineau@lesclefsdunet.com
Tél : 06 99 85 02 24

merci denisb, il est bien ce tuto !!
cordialement

denisb a écrit :

bonsoir,
petite mise en application qui peut être sympa,

<div>[(#DATE|saison|ucfirst)] [(#SET{saisons,[(#DATE|saison)]})]
  [(#GET{saisons}|match{^(a)}|oui)du 21-09 au 20-12]
  [(#GET{saisons}|match{^(h)}|oui)du 21-12 au 20-03]
  [(#GET{saisons}|match{^(p)}|oui)du 21-03 au 20-06]
  [(#GET{saisons}|match{^(é)}|oui)du 21-06 au 20-09]
  </div>

pour chaque saison ça affiche le nom de la saison et la plage des dates
à vérifier pour l'été , je suis pas sûr du

{^(é)}

y a peu être moyen de simplifier ?

cordialement

denisb a écrit :

bobof a écrit :

c'est le pipe dans (69|70) qui office de OU ?
cordialement

ben oui. c'est de la syntaxe de regexp.

^ -> commence par
(69|70) -> strictement 69 ou 70
$ -> finit par

se traduit donc par : est égal à 69 ou 70

(0|2|4|6|8)$
se traduirait par : se termine par 0, 2, 4, 6 ou 8
donc : est pair

voir (entre moult autres) : http://lumadis.be/regex/tuto_pcre.php

--
Signalez vos spams d'un simple clic. www.signal-spam.fr
<https://www.signal-spam.fr/&gt;

bobof a écrit :

pour chaque saison ça affiche le nom de la saison et la plage des dates
à vérifier pour l'été , je suis pas sûr du
{^(é)}

hum...
multilingue ?

on devrait pouvoir faire un truc comme :

[(#SET{saisons, #ARRAY{<:date_saison_1:>,'21/12 &#8594; 20/03',
                        <:date_saison_2:>,'21/03 &#8594; 20/06',
                        <:date_saison_3:>,'21/06 &#8594; 20/09',
                        <:date_saison_4:>,'21/09 &#8594; 20/12'
}})]

<BOUCLE_a(ARTICLES){lang}>
   [[(#DATE|saison|ucfirst)]
   (#GET{saisons}|table_valeur{#DATE|saison})<br />]
</BOUCLE_a>

qui, en fonction de la langue du contexte (lang=... en url)
ne sortira que les articles de 'cette' langue
avec le nom de la saison correspondant à leur date de publication
traduit dans la langue du contexte (de l'article donc)

bonsoir denisb,

denisb a écrit :

bobof a écrit :

pour chaque saison ça affiche le nom de la saison et la plage des dates
à vérifier pour l’été , je suis pas sûr du
{^(é)}

hum…
multilingue ?

non, j’ai pas poussé le vice jusque là, au départ c’était juste un bout de code pour afficher par exemple :
Automne du 21-09 au 20-12
ou
hiver du 21-12 au 20-03
etc
en fonction de la date courante.
le tout placé dans une noisette ça permet d’afficher la période de chaque saison en cours, un petit gadget quoi ! pour appliquer ton code. !
j’ai vérifier en forçant le #SET{saisons,été} et ça marche pour le filtre |match{^(é)}

on devrait pouvoir faire un truc comme :

[(#SET{saisons, #ARRAY{<:date_saison_1:>,‹ 21/12 → 20/03 ›,
<:date_saison_2:>,‹ 21/03 → 20/06 ›,
<:date_saison_3:>,‹ 21/06 → 20/09 ›,
<:date_saison_4:>,‹ 21/09 → 20/12 ›
}})]

<BOUCLE_a(ARTICLES){lang}>
[[(#DATE|saison|ucfirst)]
(#GET{saisons}|table_valeur{#DATE|saison})
]
</BOUCLE_a>

qui, en fonction de la langue du contexte (lang=… en url)
ne sortira que les articles de ‹ cette › langue
avec le nom de la saison correspondant à leur date de publication
traduit dans la langue du contexte (de l’article donc)

je vais essayer avec une seule langue pour le fun, voir comment se fait le tri.
merci denisb

denisb a écrit :

bobof a écrit :

pour chaque saison ça affiche le nom de la saison et la plage des dates
à vérifier pour l'été , je suis pas sûr du
{^(é)}

hum...
multilingue ?

on devrait pouvoir faire un truc comme :

[(#SET{saisons, #ARRAY{<:date_saison_1:>,'21/12 &#8594; 20/03',
                       <:date_saison_2:>,'21/03 &#8594; 20/06',
                       <:date_saison_3:>,'21/06 &#8594; 20/09',
                       <:date_saison_4:>,'21/09 &#8594; 20/12'
}})]

<BOUCLE_a(ARTICLES){lang}>
  [[(#DATE|saison|ucfirst)]
  (#GET{saisons}|table_valeur{#DATE|saison})<br />]
</BOUCLE_a>

qui, en fonction de la langue du contexte (lang=... en url)
ne sortira que les articles de 'cette' langue
avec le nom de la saison correspondant à leur date de publication
traduit dans la langue du contexte (de l'article donc)

_______________________________________________

je lit le post avec grand interêt car si j'ai bien suivi avec la boucle ci-dessus on peut afficher la saison en fonction de la date;
L'idée qui me troote dans la tête depuis que je suis en train d'essayer de construire un site spip et

est t'il possible d'afficher une css particuliére en fonction de saison ou dates

exemple mois novembre (halooween.css) ; decembre (noel.css); avril (paques.css)

et la boucle semble s'en rapproché ...

bonjour,
oui c’est possible, entre les balises et ou dans inc-head.html ou encore par la balise #INSERT_HEAD (faut le faire en php à mon avis dans ce dernier cas)
exemple pour les saisons

[(#SET{saisons,[(#DATE|saison)]})]
[(#GET{saisons}|match{^(a)}|oui)]
[(#GET{saisons}|match{^(h)}|oui)]
[(#GET{saisons}|match{^(p)}|oui)]
[(#GET{saisons}|match{^(é)}|oui)]

puis dans squelettes/styles/
faire les quatre feuilles de styles, automne.css, hiver.css, printemps.css et ete.css

à partir de ce principe et en jouant avec les filtres de la balise #DATE y a moyen de faire des choses sympa.
par exemple un style pour chaque jour de la semaine on peut imaginer ceci :

[(#SET{saisons,[(#DATE|nom_jour{abbr})]})]
[(#GET{saisons}|match{^(lun.)}|oui)]
[(#GET{saisons}|match{^(mar.)}|oui)]
[(#GET{saisons}|match{^(mer.)}|oui)]
[(#GET{saisons}|match{^(jeu.)}|oui)]
… etc
et faire les feuilles de styles correspondantes, à vérifier tout de même.

cordialement

assobachant a écrit :

bobof a écrit :

[(#SET{saisons,[(#DATE|nom_jour{abbr})]})]
[(#GET{saisons}|match{^(lun.)}|oui)<link rel="stylesheet" href="squelettes/styles/lundi.css" type="text/css" />]

   [snip]

et faire les feuilles de styles correspondantes, à vérifier tout de même.

hum...
toujours dans l'option du multilinguisme :

des feuilles de style nommées respectivement jour_0.css à jour_6.css
(traduire : dimanche.css à samedi.css)
puis dans le squelette :
   [
    <link rel="stylesheet"
    href="squelettes/styles/jour_(#VAL{w}|date{#DATE|strtotime}).css"
    type="text/css" />
   ]

bonjour,
heu … ???
quelques explications sont possibles ???

  1. #VAL est absente du glossaire sur spip.net !
  2. y a bien un article (bien fourni en exemples [(#troll)]) ici :
    ---- donc ceci en spip href=« squelettes/styles/jour_(#VAL{w}|date{#DATE|strtotime}).css » correspond à cela en php ? href=« squelettes/styles/jour_<?php echo date(w); ?>.css » et sinon avec la balise #MAINTENANT ou #NOW du couteau suisse ? href=« squelettes/styles/jour_#NOW{w}.css » ça doit le faire aussi non ? cordialement denisb a écrit :

bobof a écrit :

donc ceci en spip
  href="squelettes/styles/jour_(#VAL{w}|date{#DATE|strtotime}).css"
correspond à cela en php ?
  href="squelettes/styles/jour_<?php echo date(w); ?>.css"

voilà.

merci denisb, c’est toujours un plaisir de te lire sur la liste !
cordialement

denisb a écrit :

Salut,

En faisant ton propre filtre tu pourras simplifier les choses et gagner en rapidité. Le filtre |saison te renvoie une chaine de langue...

Exemple à mettre dans mes_options.php :

function ma_saison($mois) {
  if ($mois > 0){
   $saison = 1;
   if(($mois == 3 AND $jour >= 21) OR $mois > 3) $saison = 2;
   if(($mois == 6 AND $jour >= 21) OR $mois > 6) $saison = 3;
   if(($mois == 9 AND $jour >= 21) OR $mois > 9) $saison = 4;
   if(($mois == 12 AND $jour >= 21) OR $mois > 12) $saison = 1;
  }
  return $saison;
}

à utiliser par exemple sur : [(#NOW{n}|ma_saison)]

Pat

bobof a écrit :

et sinon avec la balise #MAINTENANT ou #NOW du couteau suisse ?
href="squelettes/styles/jour_#NOW{w}.css"

ça doit le faire aussi non ?

Bon avant d'essayer et de me planter comme d'habitude
je repose une question

si je souhaite lancer des thémes (Thème - SPIP-Contrib )en fonction de date; vous faites ça comment vous
puisque si j'ai compris c'est possible

exemple je me prépare un thémes pour noêl et je souhaite qu'il s'affiche entre le 01/12 et le 30/12

bobof a écrit :

bonjour,
oui c'est possible, entre les balises <head> et </head> ou dans inc-head.html ou encore par la balise #INSERT_HEAD (faut le faire en php à mon avis dans ce dernier cas)
exemple pour les saisons

[(#SET{saisons,[(#DATE|saison)]})]
[(#GET{saisons}|match{^(a)}|oui)<link rel="stylesheet" href="squelettes/styles/automne.css" type="text/css" />]
[(#GET{saisons}|match{^(h)}|oui)<link rel="stylesheet" href="squelettes/styles/hiver.css" type="text/css" />]
[(#GET{saisons}|match{^(p)}|oui)<link rel="stylesheet" href="squelettes/styles/printemps.css" type="text/css" />]
[(#GET{saisons}|match{^(é)}|oui)<link rel="stylesheet" href="squelettes/styles/ete.css" type="text/css" />]

puis dans squelettes/styles/
faire les quatre feuilles de styles, automne.css, hiver.css, printemps.css et ete.css

à partir de ce principe et en jouant avec les filtres de la balise #DATE y a moyen de faire des choses sympa.
par exemple un style pour chaque jour de la semaine on peut imaginer ceci :

[(#SET{saisons,[(#DATE|nom_jour{abbr})]})]
[(#GET{saisons}|match{^(lun.)}|oui)<link rel="stylesheet" href="squelettes/styles/lundi.css" type="text/css" />]
[(#GET{saisons}|match{^(mar.)}|oui)<link rel="stylesheet" href="squelettes/styles/mardi.css" type="text/css" />]
[(#GET{saisons}|match{^(mer.)}|oui)<link rel="stylesheet" href="squelettes/styles/mercredi.css" type="text/css" />]
[(#GET{saisons}|match{^(jeu.)}|oui)<link rel="stylesheet" href="squelettes/styles/jeudi.css" type="text/css" />]
...... etc
et faire les feuilles de styles correspondantes, à vérifier tout de même.

cordialement

assobachant a écrit :

denisb a écrit :

bobof a écrit :

pour chaque saison ça affiche le nom de la saison et la plage des dates
à vérifier pour l'été , je suis pas sûr du
{^(é)}

hum...
multilingue ?

on devrait pouvoir faire un truc comme :

[(#SET{saisons, #ARRAY{<:date_saison_1:>,'21/12 &#8594; 20/03',
                       <:date_saison_2:>,'21/03 &#8594; 20/06',
                       <:date_saison_3:>,'21/06 &#8594; 20/09',
                       <:date_saison_4:>,'21/09 &#8594; 20/12'
}})]

<BOUCLE_a(ARTICLES){lang}>
  [[(#DATE|saison|ucfirst)]
  (#GET{saisons}|table_valeur{#DATE|saison})<br />]
</BOUCLE_a>

qui, en fonction de la langue du contexte (lang=... en url)
ne sortira que les articles de 'cette' langue
avec le nom de la saison correspondant à leur date de publication
traduit dans la langue du contexte (de l'article donc)

_______________________________________________

je lit le post avec grand interêt car si j'ai bien suivi avec la boucle ci-dessus on peut afficher la saison en fonction de la date;
L'idée qui me troote dans la tête depuis que je suis en train d'essayer de construire un site spip et

est t'il possible d'afficher une css particuliére en fonction de saison ou dates

exemple mois novembre (halooween.css) ; decembre (noel.css); avril (paques.css)

et la boucle semble s'en rapproché ...
_______________________________________________