From d7b7388f775612c5376654869262f5eafd340e8b Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 7 May 2006 09:06:39 +0000
Subject: [PATCH] =?UTF-8?q?#248=20:=20extension=20du=20crit=C3=A8re=20inve?=
 =?UTF-8?q?rse=20pour=20permettre=20la=20construction=20{par=20#ENV{tri}}{?=
 =?UTF-8?q?inverse=20#ENV{senstri}}=20si=20senstri=3D0,=20inverse=20n'est?=
 =?UTF-8?q?=20pas=20applique,=20si=20senstri=20vaut=201=20inverse=20est=20?=
 =?UTF-8?q?appliqu=C3=A9=20Au=20passage=20on=20perd=20la=20possibilit?=
 =?UTF-8?q?=C3=A9=20de=20construire=20{inverse=20id=5Farticle}=20qui=20eta?=
 =?UTF-8?q?it=20une=20contraction=20de=20{!par=20id=5Farticle},=20mais=20q?=
 =?UTF-8?q?ui=20n'etait=20pas=20document=C3=A9...?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/public/criteres.php | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 92c1d03b19..111a3cb6e5 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -309,16 +309,22 @@ function critere_inverse_dist($idb, &$boucles, $crit) {
 
 	$boucle = &$boucles[$idb];
 	// Classement par ordre inverse
-
-	if ($crit->not || $crit->param)
+	if ($crit->not)
 		critere_parinverse($idb, $boucles, $crit, " . ' DESC'");
 	else
 	  {
+	  	$order = "' DESC'";
+			// Classement par ordre inverse fonction eventuelle de #ENV{...}
+			if ($crit->param[0]){
+				$critere = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
+				$order = "(($critere)?' DESC':'')";
+			}
+	  	
 	    $n = count($boucle->order);
 	    if ($n)
-	      $boucle->order[$n-1] .= " . ' DESC'";
+	      $boucle->order[$n-1] .= " . $order";
 	    else
-	      $boucle->default_order[] =  ' DESC';
+	      $boucle->default_order[] =  $order;
 	  }
 }
 
-- 
GitLab