Project

General

Profile

Evolution #3209

Permettre de supprimer les fusions (group by) explicitement

Added by RastaPopoulos ♥ over 5 years ago. Updated over 2 years ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
compilo
Target version:
Start date:
05/02/2014
Due date:
% Done:

0%

Resolution:

Description

Certaines boucles ou critères du core, ou de certains plugins, comme GIS, ajoute par défaut des groupements aux requêtes SQL afin d'obptenir tel ou tel comportement par défaut. Très bien.

Mais il n'y a pour l'instant rien qui permet, à celleux qui font des squelettes, de dire au cas par cas, boucle par boucle, qu'illes ne veulent PAS ce group by (ou qu'illes en veulent un autre ce qui revient au même). En effet, le critère {fusion} actuel ne marche que champ par champ, et ne fait qu'ajouter à la suite de ce qui existe déjà.

Afin de ne rien casser et de permettre de faire ce qu'on veut, je propose un nouveau critère {fusion_supprimer} qui supprime tout groupement précédemment défini. On peut ensuite rajouter ou pas un ou plusieurs critère {fusion} à la suite si jamais on veut rédéfinir autrement.

function critere_fusion_supprimer_dist($idb, &$boucles, $crit){
    $boucles[$idb]->group = array();
}

Et pour l'utilisation :

Pour n'avoir aucun groupement :
<BOUCLE_truc(TRUCS){boucle_qui_predefinie_un_groupement}{fusion_supprimer}>
</BOUCLE_truc>

Pour remettre à zéro puis définir explicitement ce qu'on veut :
<BOUCLE_truc(TRUCS){boucle_qui_predefinie_un_groupement}{fusion_supprimer}{fusion champ1}{fusion champ2}>
</BOUCLE_truc>


Related issues

Related to SPIP - Anomalie #3190: Critère {fusion} Nouveau 03/19/2014

History

#1 Updated by cedric - almost 5 years ago

  • Target version changed from 3.1 to 3.2

#2 Updated by marcimat 🌈 almost 5 years ago

Bon je suis dans un cas assez concret :

<BOUCLE_facette_annee(ARTICLES){id_mot=27}{fusion YEAR(date)}>
    [(#DATE|annee)]<br />
</BOUCLE_facette_annee>

Ça ne prend pas en compte la fusion parce que SPIP a ajouté un group by articles.id_article. Avant celui du critère fusion.

#3 Updated by RastaPopoulos ♥ over 3 years ago

Bon, 2 ans que je l'utilise régulièrement de temps à autre, je l'ai ajouté à Bonux pour le moment, du coup :
http://zone.spip.org/trac/spip-zone/changeset/98598

#4 Updated by marcimat 🌈 over 2 years ago

#5 Updated by RastaPopoulos ♥ over 2 years ago

  • Tracker changed from Anomalie to Evolution

#6 Updated by marcimat 🌈 over 2 years ago

Une proposition de Cerdic , de faire un peu comme pour les critères tris :
- que le core ajoute les group by dans une clé group_defaut (plutot que group)
- les critères dans la clé group
- l'écriture à la compilation prendrait la clé group si elle existe, sinon group_defaut.

#7 Updated by RastaPopoulos ♥ over 2 years ago

Ça ne change pas trop spécialement, car le core c'est bien peu de chose, et ça a plus tendance à se réduire qu'à augmenter. Par exemple le critère {gis} qu'on met sur d'autres objets (ARTICLES){gis} par exemple, c'est un critère, et il ajoute du group by. Mais du coup si toi ensuite tu veux faire des {fusion} perso que tu veux choisir, tu ne peux plus. Donc le critère de suppression est toujours aussi utile.

Also available in: Atom PDF