Additions

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

Merci

ADB

* ADB tapuscrivait, le 12/05/2010 08:29:

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

-- RealET

Le 12 mai 2010 à 15:18, RealET a écrit :

* ADB tapuscrivait, le 12/05/2010 08:29:

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

|plus - SPIP

-- RealET

additionner ou concaténer ? dans le premier cas, tu as le filtre "plus" et, dans le second, le filtre "concat"

Salut,
Une nouvelle balise #SOMME du genre :

function balise_SOMME_dist($p) {
  $n = 1;
  $_code = array();
  while ($_v = interprete_argument_balise($n++, $p))
    $_code = $_v;
  $p->code = count()?'('.join(' + ',$_code).')':'0';
  $p->interdire_scripts = false;
  return $p;
}

(non testée...)
Pat

Le 12/05/2010 08:29, ADB a écrit :

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

Merci

ADB

Bonsoir
Merci.
A la lecture de la définition du filtre, j'avais cru comprendre qu'il ne pouvait y avoir qu'un élément d'ajouté à la balise appelante.
Me trompé-je?
ADB

Message du 12/05/10 15:30
De : "pascal weber"

A : "liste SPIP"
Copie à :
Objet : Re: [Spip] Additions

Le 12 mai 2010 à 15:18, RealET a écrit :

> * ADB tapuscrivait, le 12/05/2010 08:29:
>> Bonjour
>> Comment faire pour additionner plusieurs valeurs de champs ?
>> Par exemple :
>> #ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/
> |plus - SPIP
>
> -- RealET
>

additionner ou concaténer ? dans le premier cas, tu as le filtre "plus" et, dans le second, le filtre "concat"

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

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

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

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

Comme quoi, il vaut mieux tester avant de gloser :wink:

Voici la fonction :

function balise_SOMME_dist($p) {
  $n = 1;
  $_code = array();
  while ($_v = interprete_argument_balise($n++, $p))
    $_code = $_v;
  $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
  $p->interdire_scripts = false;
  return $p;
}

Tests OK :
#SOMME{1,2,3}
[(#SOMME{[(#VAL{2}|plus{3})],10,100})]

Pa

Le 12/05/2010 16:17, Pat a écrit :

Salut,
Une nouvelle balise #SOMME du genre :

function balise_SOMME_dist($p) {
$n = 1;
$_code = array();
while ($_v = interprete_argument_balise($n++, $p))
$_code = $_v;
$p->code = count()?'('.join(' + ',$_code).')':'0';
$p->interdire_scripts = false;
return $p;
}

(non testée...)
Pat

Le 12/05/2010 08:29, ADB a écrit :

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

Merci

ADB

Bonjour,

Tu parles du filtre |plus ? Ou du filtre |concat ?

Pour |plus, tu peux jouer avec un couple #SET/#GET… Il y a eu un message de ce genre sur la liste. Faudrait qu’on retrouve ça dans les archives.

Le 12 mai 2010 16:56, Arnaud DUPIN DE BEYSSAT <a.adupinbe@orange.fr> a écrit :

Bonsoir
Merci.
A la lecture de la définition du filtre, j’avais cru comprendre qu’il ne pouvait y avoir qu’un élément d’ajouté à la balise appelante.
Me trompé-je?
ADB

Message du 12/05/10 15:30
De : « pascal weber »

A : « liste SPIP »
Copie à :
Objet : Re: [Spip] Additions

Le 12 mai 2010 à 15:18, RealET a écrit :

  • ADB tapuscrivait, le 12/05/2010 08:29:

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/
http://www.spip.net/fr_article4307.html#plus

– RealET

additionner ou concaténer ? dans le premier cas, tu as le filtre « plus » et, dans le second, le filtre « concat »


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


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

Bonsoir
Ca c'est bien tentant, mais je ne saurai pas le
débuguer si ça ne fonctionne pas, et je ne sais déjà pas où l'enregistrer.
Je suis resté sur mes bases de 1.8.2 et je travaille maintenant en 2.1 !!!
Merci
ADB

> > Message du 12/05/10 16:15
> > De : "Pat"
>
> > A : spip@rezo.net
> > Copie à :
> > Objet : Re: [Spip] Additions
> >
> >
> > Salut,
> > Une nouvelle balise #SOMME du genre :
> >
> > function balise_SOMME_dist($p) {
> > $n = 1;
> > $_code = array();
> > while ($_v = interprete_argument_balise($n++, $p))
> > $_code = $_v;
> > $p->code = count()?'('.join(' + ',$_code).')':'0';
> > $p->interdire_scripts = false;
> > return $p;
> > }
> >
> > (non testée...)
> > Pat
> >
> > Le 12/05/2010 08:29, ADB a écrit :
> > > Bonjour
> > > Comment faire pour additionner plusieurs valeurs de champs ?
> > > Par exemple :
> > >
> #ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/
> > >
> > >
> > > Merci
> > >
> > > ADB
> > >
> > >
> >
> > _______________________________________________
> > liste spip
> > spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net
> >
> > Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
> > Discuter chez rezo.net
> >
> > Documentation de SPIP : http://www.spip.net/
> >
> > Irc : de l'aide à toute heure : http://spip.net/irc
> >
> >

Bonsoir
Du filtre Plus.
Je cite:
"Le filtre |plus{xx} est un filtre d’opérations mathématiques.
Il retourne le résultat de l’addition (la somme) de la valeur de la balise et xx."

Donc pour moi, ce ne peut être que l'addition de deux nombres.
ADB

Message du 12/05/10 17:37
De : "TeddyP SPIP"
A : "Arnaud DUPIN DE BEYSSAT"
Copie à : "pascal weber"

, "liste SPIP"

Objet : Re: [Spip] Additions

Bonjour,

Tu parles du filtre |plus ? Ou du filtre |concat ?

Pour |plus, tu peux jouer avec un couple #SET/#GET... Il y a eu un message
de ce genre sur la liste. Faudrait qu'on retrouve ça dans les archives.

Le 12 mai 2010 16:56, Arnaud DUPIN DE BEYSSAT a écrit
:

> Bonsoir
> Merci.
> A la lecture de la définition du filtre, j'avais cru comprendre qu'il ne
> pouvait y avoir qu'un élément d'ajouté à la balise appelante.
> Me trompé-je?
> ADB
>
>
> > Message du 12/05/10 15:30
> > De : "pascal weber"
>
> > A : "liste SPIP"
> > Copie à :
> > Objet : Re: [Spip] Additions
> >
> >
> >
> > Le 12 mai 2010 à 15:18, RealET a écrit :
> >
> > > * ADB tapuscrivait, le 12/05/2010 08:29:
> > >> Bonjour
> > >> Comment faire pour additionner plusieurs valeurs de champs ?
> > >> Par exemple :
> > >>
> #ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/
> > > |plus - SPIP
> > >
> > > -- RealET
> > >
> >
> > additionner ou concaténer ? dans le premier cas, tu as le filtre "plus"
> et, dans le second, le filtre "concat"
> >
> > _______________________________________________
> > liste spip
> > spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net
> >
> > Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
> > Discuter chez rezo.net
> >
> > Documentation de SPIP : http://www.spip.net/
> >
> > Irc : de l'aide à toute heure : http://spip.net/irc
> >
> >
>
>
> _______________________________________________
> liste spip
> spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net
>
> Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
> Discuter chez rezo.net
>
> Documentation de SPIP : http://www.spip.net/
>
> Irc : de l'aide à toute heure : http://spip.net/irc
>

Je confirme que la fonction plus() n'additionne QUE 2 nombres.
Pat

Le 12/05/2010 17:46, Arnaud DUPIN DE BEYSSAT a écrit :

Donc pour moi, ce ne peut être que l'addition de deux nombres.
ADB

Et si tu tentais ? (jamais testé)

plus{xx|plus{yy|plus{zz}}}

Arnaud DUPIN DE BEYSSAT a écrit :

Alors, j'ai créé un fichier mes_fonctions.php dans mon rép squelettes. Avec ce code:
?php
function balise_SOMME_dist($p) {
     $n = 1;
     $_code = array();
     while ($_v = interprete_argument_balise($n++, $p))
         $_code = $_v;
     $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
     $p->interdire_scripts = false;
     return $p;
}
?

Mais ça me plante le site. ???

Autre question là-dessus:
Grâce à cette fonction, pourrais-je alors faire:
#SOMME{#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5}

Merci
ADB

Le 12/05/2010 16:58, Pat a écrit :

Comme quoi, il vaut mieux tester avant de gloser :wink:

Voici la fonction :

function balise_SOMME_dist($p) {
    $n = 1;
    $_code = array();
    while ($_v = interprete_argument_balise($n++, $p))
        $_code = $_v;
    $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
    $p->interdire_scripts = false;
    return $p;
}

Tests OK :
#SOMME{1,2,3}
[(#SOMME{[(#VAL{2}|plus{3})],10,100})]

Rajoutes un < au début et un > à la fin

<?php
function balise_SOMME_dist($p) {
    $n = 1;
    $_code = array();
    while ($_v = interprete_argument_balise($n++, $p))
        $_code = $_v;
    $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
    $p->interdire_scripts = false;
    return $p;
}
? >

ADB a écrit :

Alors, j'ai créé un fichier mes_fonctions.php dans mon rép squelettes. Avec ce code:
?php
function balise_SOMME_dist($p) {
    $n = 1;
    $_code = array();
    while ($_v = interprete_argument_balise($n++, $p))
        $_code = $_v;
    $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
    $p->interdire_scripts = false;
    return $p;
}
?

Mais ça me plante le site. ???

Autre question là-dessus:
Grâce à cette fonction, pourrais-je alors faire:
#SOMME{#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5}

Merci
ADB

Le 12/05/2010 16:58, Pat a écrit :

Comme quoi, il vaut mieux tester avant de gloser :wink:

Voici la fonction :

function balise_SOMME_dist($p) {
    $n = 1;
    $_code = array();
    while ($_v = interprete_argument_balise($n++, $p))
        $_code = $_v;
    $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
    $p->interdire_scripts = false;
    return $p;
}

Tests OK :
#SOMME{1,2,3}
[(#SOMME{[(#VAL{2}|plus{3})],10,100})]

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

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

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

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

Le 12/05/2010 18:44, ADB a écrit :

Mais ça me plante le site. ???

Cette phrase est trop vague pour une réponse...

Grâce à cette fonction, pourrais-je alors faire:
#SOMME{#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5}

Oui !

Pat

Avec des BOUCLE, #SET, #GET, POUR et le filtre PLUS il y a quelques outils à dispo.
S'il s'agit simplement d'additionner qqs valeurs il suffit d'enchaîner les filtres :

[(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n})] il me semble ?

Bonsoir
Merci.
A la lecture de la définition du filtre, j'avais cru comprendre qu'il ne pouvait y avoir qu'un élément d'ajouté à la balise appelante.
Me trompé-je?
ADB

Message du 12/05/10 15:30
De : "pascal weber"

A : "liste SPIP"
Copie à :
Objet : Re: [Spip] Additions

Le 12 mai 2010 à 15:18, RealET a écrit :

* ADB tapuscrivait, le 12/05/2010 08:29:

Bonjour
Comment faire pour additionner plusieurs valeurs de champs ?
Par exemple :
#ADDITION/#L_R3_T_1,#L_R3_T_2,#L_R3_T_3,#L_R3_T_4,#L_R3_T_5,#L_R3_T_6,#L_R3_T_7,#L_R3_T_8,#L_R3_T_9/

|plus - SPIP

-- RealET

additionner ou concaténer ? dans le premier cas, tu as le filtre "plus" et, dans le second, le filtre "concat"

__

Oui, oui, je les ai enlevées pour le mail.
Mais ça me fait une page blanche immédiatement.
Ne serait-ce pas dû au php dans la page?
J ne comprends pas...
ADB

Le 12/05/2010 18:54, Jean-Christophe Villeneuve a écrit :

<?php
function balise_SOMME_dist($p) {
   $n = 1;
   $_code = array();
   while ($_v = interprete_argument_balise($n++, $p))
       $_code = $_v;
   $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
   $p->interdire_scripts = false;
   return $p;
}
? >

pas de ligne vide ou d'espace avant et après les chevrons ?

ADB a écrit :

Oui, oui, je les ai enlevées pour le mail.
Mais ça me fait une page blanche immédiatement.
Ne serait-ce pas dû au php dans la page?
J ne comprends pas...
ADB

Le 12/05/2010 18:54, Jean-Christophe Villeneuve a écrit :

<?php
function balise_SOMME_dist($p) {
   $n = 1;
   $_code = array();
   while ($_v = interprete_argument_balise($n++, $p))
       $_code = $_v;
   $p->code = count($_code)?'('.join(' + ',$_code).')':'0';
   $p->interdire_scripts = false;
   return $p;
}
? >

Super, c'est excellent.
Merci

Maintenant, puis-je écrire quelque chose comme cela:

#SET{retour,(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n})
#GET{#L_R3|moins{retour}}

Pour soustraire de L_R3 la valeur de l'addition?

Merci
ADB

Le 12/05/2010 19:04, pascal weber a écrit :

[(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n})]

J'ai trouvé. Il faut écrire:
#SET{aller,(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n)}
#SET{retour,#L_R3|moins{(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n)}}
#GET{retour}

Mais pourquoi je ne peux pas écrire:
#SET{aller,(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n)}
#SET{retour,(#L_R3|moins{aller})}
#GET{retour}

ADB

Le 13/05/2010 15:20, ADB a écrit :

Super, c'est excellent.
Merci

Maintenant, puis-je écrire quelque chose comme cela:

#SET{retour,(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n})
#GET{#L_R3|moins{retour}}

Pour soustraire de L_R3 la valeur de l'addition?

Merci
ADB

Bon, alors il faut écrire:

#SET{aller,(#ADDITION|plus{#L_R3_T_1}|plus{#L_R3_T_2}| ... |plus{#L_R3_T_n)}
#SET{retour,#L_R3|moins{#GET{aller}}}
     #GET{retour}

Merci infiniment à Pascal Weber pour son orientation
ADB