Valider 65b1b2df rédigé par cerdic's avatar cerdic
Parcourir les fichiers

#3320 : quand on utilise avec le criter tri un nom de variable qui commence...

#3320 : quand on utilise avec le criter tri un nom de variable qui commence par 'session', les changements de criteres de tri par l'utilisateur sont memorises en session et conserves d'un hit sur l'autre pour toutes les listes qui utilisent le meme nom de variable.
Application a la liste des articles dans l'espace prive (a voir si on generalise a tous les objets ou non)
parent 83c56279
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+8 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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"
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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":"").")";
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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;
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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>