RE: Re[4]: [spip-dev] critere_aieul_dans_les_boucles_SPIP?

Bonjour,
Je me permets d’intervenir sur la discussion sur ‘les aieux’, d’abord pour dire que je suis vachement content qu’on la prenne en compte: on a développé la première version de cela il y environ un an, si ça peut servir à la communauté SPIP et que nous ça nous facilite la migration, tout le monde y gagne (c’est l’esprit du libre).

Pour ce qui est de la sémantique (sous réserve aussi de ma compréhension) je ne suis pas sûr que le problème soit de choisir le bon mot, mais plutôt la bonne syntaxe. Je reprends la remarque de Fil :

<BOUCLE_xxx (sélectionne une rubrique)>
<BOUCLE_tout(ARTICLES){critere}{par date}{inverse}>
</BOUCLE_tout>
</BOUCLE_xxx>

Quel est le bon mot pour ce {critere} qui correspond en fait à
{id_rubrique IN (LISTE DES SOUS-RUBRIQUES DE L’ARBORESCENCE à
partir du point précisé)} ?

dans {id_aieul=4} ce qui choque n’est pas tant le mot ‘aieul’, mais bien le signe ‘=’

En effet, une rubrique/un article a un seul parent (la rubrique mère) et un seul secteur (l’aieul racine). En revanche, elle/il a un nombre indéterminé d’aieux. C’est ce qu’a amené Fil à dire: {id_rubrique IN (liste…)}

(Rq: dans la boucle HIERARCHIE on remonte, donc il y a un chemin défini de manière déterministe. En revanche dans notre concept d’aieul, qui serait descendant -tout en n’étant pas une boucle- : quel est l’ordre pour décrire les branches de l’arbre?)

Dans les syntaxes habituelles des critères de boucle SPIP :

  • filtre (avec un seul mot): {tous}, {doublons}
  • critère (avec le mot ‘par’): {par date}, {par hasard}
  • sélection (avec id_xxx= ): {id_rubrique=2}, {id_parent=3}, évent. défini comme variable: (id_article}
  • intervalle : {a,b}
  • regex, séparateur, …

sauf erreur de ma part, je ne vois pas d’opérateur du type “appartient à”, qui permette d’exprimer le critère “(rubrique 4) appartient à {ensemble des aieux}”, ou en français: “les articles dont la rubrique 4 est l’un des aieux”

D’où suggestion :
1/ soit on se contente de la syntaxe imparfaite {id_aieul=n},
(au dam des matheux qui verront une égalité non transitive: {id_aieul=2} et {id_aieul=1} peutvent être vrais simultanément!!)

2/ soit on introduit un opérateur d’apparténence dans les critères SPIP genre: {4 IN rubriques_aieulles}

Personnellement, je préfère la première solution pour la simple raison qu’elle est compatible avec les modifs de SPIP qu’on a faites et nos squelettes maison :wink:

daniel

Dans les syntaxes habituelles des critères de boucle SPIP :
- filtre (avec un seul mot): {tous}, {doublons}
- critère (avec le mot 'par'): {par date}, {par hasard}
- sélection (avec id_xxx= ): {id_rubrique=2}, {id_parent=3}, évent. défini
comme variable: (id_article}
- intervalle : {a,b}
- regex, séparateur, ...

Je préférerais que l'on n'utilise pas 'filtre' ni 'critère' comme ça :

* les 'filtres' sont les fonctions qu'on applique aux #TAGS sous la forme
    [(#TITRE|filtre1|filtre2)], on peut les stocker dans
    ecrire/inc_filtres.php3 (pour la distrib) et mes_fonctions.php3 (pour
    la personnalisation).

* les critères sont tous les éléments entre {accolades} des boucles.

Ceci étant dit, je trouve que ton travail d'éclaircissement est très
pédagogique, et mériterait de passer dans la doc. Sous la forme, peut-être,
d'un "glossaire du jargon spip" ???

Pour ta nomenclature ci-dessus, on pourrait prendre :
- "crible" ou "tamis" (avec un seul mot): {tous}, {doublons}
- "tri" (avec le mot 'par'): {par date}, {par hasard}
- "sélection" (avec id_xxx= ): {id_rubrique=2}, {id_parent=3}, évent. défini
   comme variable: (id_article}
- "intervalle" : {a,b}
- "séparateur" {"<br>"}

"regex", que tu mentionnes, est plutôt à ranger avec les "sélections"...

-- Fil