diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index d232f2cab2f66d35c6b8e0b9bf2374b7de896620..535092379c375fc7e7d026227f4f4ea01ad9fe85 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -419,6 +419,14 @@ OR _request('action') == 'test_dirs')) { // autrement c'est une install ad hoc (spikini...), on sait pas faire } +// memoriser un tri sessionne eventuel +if (isset($_REQUEST['var_memotri']) + AND $t = $_REQUEST['var_memotri'] + AND (strncmp($t,'trisession',10)==0 OR strncmp($t,'senssession',11)==0)){ + if (!function_exists('session_set')) + include_spip('inc/session'); + session_set($t,_request($t)); +} /** * Header "Composed-By" diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 92150d49f06f0630feac35efb4adaef312df5012..fbcfae0dbae83702256f6a880f9275be7ddeed9e 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -2594,6 +2594,7 @@ function balise_TRI_dist($p, $liste='true') { $_variable = "((\$s=$_issens)?'sens':'tri').".$boucle->modificateur['tri_nom']; $_url = "parametre_url(self(),$_variable,\$s?$_sens:$_champ)"; + $_url = "parametre_url($_url,'var_memotri',strncmp(".$boucle->modificateur['tri_nom'].",'session',7)==0?$_variable:'')"; $_on = "\$s?(".$boucle->modificateur['tri_sens']."==$_sens".'):('.$boucle->modificateur['tri_champ']."==$_champ)"; $p->code = "lien_ou_expose($_url,$_libelle,$_on".($_class?",$_class":"").")"; diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 5bac3eca158c4684110d13bd1306b6d968f73e70..e88c6bf8583441d3718daa88580848555c84c074 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -1287,10 +1287,10 @@ function critere_tri_dist($idb, &$boucles, $crit){ $_variable = !isset($crit->param[2][0]) ? "'$idb'" : calculer_liste(array($crit->param[2][0]), array(), $boucles, $boucle->id_parent); - $_tri = "((\$t=(isset(\$Pile[0]['tri'.$_variable]))?\$Pile[0]['tri'.$_variable]:$_champ_defaut)?tri_protege_champ(\$t):'')"; + $_tri = "((\$t=(isset(\$Pile[0]['tri'.$_variable]))?\$Pile[0]['tri'.$_variable]:((strncmp($_variable,'session',7)==0 AND session_get('tri'.$_variable))?session_get('tri'.$_variable):$_champ_defaut))?tri_protege_champ(\$t):'')"; $_sens_defaut = "(is_array(\$s=$_sens_defaut)?(isset(\$s[\$st=$_tri])?\$s[\$st]:reset(\$s)):\$s)"; - $_sens = "((intval(\$t=(isset(\$Pile[0]['sens'.$_variable]))?\$Pile[0]['sens'.$_variable]:$_sens_defaut)==-1 OR \$t=='inverse')?-1:1)"; + $_sens = "((intval(\$t=(isset(\$Pile[0]['sens'.$_variable]))?\$Pile[0]['sens'.$_variable]:((strncmp($_variable,'session',7)==0 AND session_get('sens'.$_variable))?session_get('sens'.$_variable):$_sens_defaut))==-1 OR \$t=='inverse')?-1:1)"; $boucle->modificateur['tri_champ'] = $_tri; $boucle->modificateur['tri_sens'] = $_sens; diff --git a/prive/objets/liste/articles.html b/prive/objets/liste/articles.html index ade1782a742ec03bbbf4821876c836fd6c0b6c11..458a9d9767744a496b2da72a369bdeccdb568168 100644 --- a/prive/objets/liste/articles.html +++ b/prive/objets/liste/articles.html @@ -19,7 +19,7 @@ </tr> </thead> <tbody> - <BOUCLE_liste_art(ARTICLES){id_article?}{id_rubrique?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,date},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}{!lang_select}> + <BOUCLE_liste_art(ARTICLES){id_article?}{id_rubrique?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,date},#GET{defaut_tri},session_liste_art}{par titre}{pagination #ENV{nb,10}}{!lang_select}> [(#LANG|changer_typo)] <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> <td class='statut'>[(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})]</td>