From cd16e6df0f89e8f9d192867d649d72d8171a72b8 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 27 May 2007 17:56:13 +0000
Subject: [PATCH] homgeneisation des listes qui deviennent toutes repliables

---
 dist/style_prive.html          | 12 ++++++++++--
 ecrire/inc/afficher_objets.php | 13 ++++++++-----
 ecrire/inc/layer.php           | 10 +++++-----
 ecrire/inc/presentation.php    | 21 ++++++++++++---------
 ecrire/inc/suivi_versions.php  | 15 ++++++++-------
 5 files changed, 43 insertions(+), 28 deletions(-)

diff --git a/dist/style_prive.html b/dist/style_prive.html
index aa90afad2e..367c4d7a3b 100644
--- a/dist/style_prive.html
+++ b/dist/style_prive.html
@@ -1207,11 +1207,14 @@ span.creer {
 	margin-top: 4px;
 }
 
-div.liste {
+div.liste,div.cadre-liste {
 	border: 1px solid #444;
 	margin-top: 3px; 
 	margin-bottom: 3px;
+	background:white;
 }
+div.cadre-liste .cadre-padding{padding:0;}
+div.cadre-liste .tranches{border-top:1px solid black;}
 
 	
 .tout-site #page ul#articles_tous,.tout-site ul#articles_tous ul {
@@ -1671,12 +1674,17 @@ a.ical {
 	background-position: [(#ENV{ltr}|choixsiegal{left,left,right})] 6px;
 	padding-[(#ENV{ltr}|choixsiegal{left,left,right})]: 16px;
 	}
+.cadre-couleur-foncee .titrem {background-color:##ENV{couleur_foncee,3874b0}}
+.cadre-liste .titrem {background-color:#fff;}
+.cadre-liste .titrem.hover {background-color:##ENV{couleur_claire,edf3fe}}
+.cadre-liste .tr_liste .titrem {background-color:#eee;}
+
 /* Deplier / Replier */
 .replie { background-image: url(#EVAL{_DIR_IMG_PACK}wrapper.php?file=deplierhaut[(#ENV{ltr}|choixsiegal{left,'',_rtl})].gif); }
 .hover { background-color: ##ENV{couleur_claire,edf3fe}; }
 .deplie { background-image: url(#EVAL{_DIR_IMG_PACK}wrapper.php?file=deplierbas.gif); }
 .impliable {}
-.bloc_depliable { display: none; }
+.bloc_depliable.replie { display: none; }
 .bloc_depliable.deplie { display: block; background: none; }
 
 td.pense-bete, a.pense-bete {
diff --git a/ecrire/inc/afficher_objets.php b/ecrire/inc/afficher_objets.php
index f6c51d22eb..e551a8e263 100644
--- a/ecrire/inc/afficher_objets.php
+++ b/ecrire/inc/afficher_objets.php
@@ -412,7 +412,9 @@ function afficher_articles_trad($titre_table, $requete, $formater, $tmp_var, $ha
 	$nb_aff = ($cpt  > floor(1.5 * _TRANCHES)) ? _TRANCHES : floor(1.5 * _TRANCHES) ;
 	$deb_aff = intval(_request($tmp_var));
 
-	$q = spip_query("SELECT " . $requete['SELECT'] . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
+	$q = spip_query($u = "SELECT " . $requete['SELECT'] . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
+	$id_liste = 't'.substr(md5($u),0,8);
+
 	$t = '';
 	while ($r = spip_fetch_array($q))
 		if (autoriser('voir','article',$r['id_article']))
@@ -435,13 +437,14 @@ function afficher_articles_trad($titre_table, $requete, $formater, $tmp_var, $ha
 		. "<img\nsrc='". _DIR_IMG_PACK . $icone ."' alt='$alt' /></a></span>";
 	}
 	$texte .=  '<b>' . $titre_table  . '</b>';
-
-	$res = "\n<div class='liste'>"
-	. bandeau_titre_boite2($texte, "article-24.gif", 'toile_blanche', 'ligne_noire')
+	
+	$res = debut_cadre('liste',"article-24.gif",'',$bouton = bouton_block_depliable($texte,true,$id_liste))
+	. debut_block_depliable(true,$id_liste)
 	. (($cpt <= $nb_aff) ? ''
 	   : afficher_tranches_requete($cpt, $tmp_var, generer_url_ecrire('memoriser', "hash=$hash&trad=$trad"), $nb_aff))
 	. $t
-	. "</div>\n";
+	. fin_block()
+	. fin_cadre();
 
 	return ajax_action_greffe($tmp_var,$res);
 }
diff --git a/ecrire/inc/layer.php b/ecrire/inc/layer.php
index 7ede4f1b55..15e3dc290a 100644
--- a/ecrire/inc/layer.php
+++ b/ecrire/inc/layer.php
@@ -35,23 +35,23 @@ function debut_block_depliable($deplie,$id=""){
 	$class=' deplie';
 	// si on n'accepte pas js, ne pas fermer
 	if (_SPIP_AJAX AND !$deplie)
-		$class="";
+		$class=" replie";
 	return "<div ".($id?"id='$id' ":"")."class='bloc_depliable$class'>";	
 }
 // http://doc.spip.org/@fin_block
 function fin_block() {
-	return "<br class='nettoyeur' /></div>";
+	return "<div class='nettoyeur' /></div></div>";
 }
 // $texte : texte du bouton
 // $deplie : true (deplie) ou false (plie) ou -1 (inactif)
 // $ids : id des div lies au bouton (facultatif, par defaut c'est le div.bloc_depliable qui suit)
 function bouton_block_depliable($texte,$deplie,$ids=""){
 	if (!_SPIP_AJAX) $deplie=true; // forcer un bouton deplie si pas de js
-	$bouton_id = substr(md5($texte.microtime()),8);
+	$bouton_id = 'b'.substr(md5($texte.microtime()),8);
 	$class= ($deplie===true)?" deplie":(($deplie==-1)?" impliable":" replie");
 	if (strlen($ids)){
 		$cible = explode(',',$ids);
-		$cible = 'div#'.implode(",div#",$cible);
+		$cible = '#'.implode(",#",$cible);
 		$bouton_id = "";
 	}
 	else{
@@ -60,7 +60,7 @@ function bouton_block_depliable($texte,$deplie,$ids=""){
 	return "<div "
 	  .($bouton_id?"id='$bouton_id' ":"")
 	  ."class='titrem$class'"
-	  . (($deplie==-1)?"":
+	  . (($deplie===-1)?"":
 	  " onclick=\"toggleBouton(jQuery(this),jQuery('$cible'));\""
 	  ." onmouseover=\"jQuery(this).addClass('hover');\""
 	  ." onmouseout=\"jQuery(this).removeClass('hover');\"")
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 5ff74c2edb..c38e413984 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -262,7 +262,7 @@ function bandeau_titre_boite2($titre, $logo="", $fond="toile_blanche", $texte="l
 		. http_img_pack($logo, "", "")
 		. "</div>"
 		. "\n<div style='padding: 3px; padding-$spip_lang_left: 30px; border-bottom: 1px solid #444444;' class='verdana2 $fond $texte'>$titre</div>"
-		 . "</div>";
+		. "</div>";
 	} else {
 		return "<h3 style='padding: 3px; border-bottom: 1px solid #444444; margin: 0px;' class='verdana2 $fond $texte'>$titre</h3>";
 	}
@@ -388,7 +388,7 @@ function afficher_tranches_requete($num_rows, $tmp_var, $url='', $nb_aff = 10, $
 	$self = self();
 	$ie_style = ($browser_name == "MSIE") ? "height:1%" : '';
 
-	$texte = "\n<div style='position: relative;$ie_style; background-color: #dddddd; border-bottom: 1px solid #444444; padding: 2px;' class='arial1' id='a$ancre'>";
+	$texte = "\n<div style='position: relative;$ie_style; background-color: #dddddd; border-bottom: 1px solid #444444; padding: 2px;' class='arial1 tranches' id='a$ancre'>";
 	$on ='';
 
 	for ($i = 0; $i < $num_rows; $i += $nb_aff){
@@ -441,8 +441,8 @@ function afficher_tranches_requete($num_rows, $tmp_var, $url='', $nb_aff = 10, $
 // http://doc.spip.org/@affiche_tranche_bandeau
 function affiche_tranche_bandeau($requete, $icone, $fg, $bg, $tmp_var,  $titre, $force, $largeurs, $styles, $skel, $own='')
 {
-
 	global $spip_display ;
+	$res = "";
 
 	$voir_logo = ($spip_display != 1 AND $spip_display != 4 AND isset($GLOBALS['meta']['image_process'])) ? ($GLOBALS['meta']['image_process'] != "non") : false;
 
@@ -452,18 +452,20 @@ function affiche_tranche_bandeau($requete, $icone, $fg, $bg, $tmp_var,  $titre,
 
 	if (! ($force OR ($cpt = $cpt['n']))) return '';
 
-	$res = bandeau_titre_boite2($titre, $icone, $fg, $bg);
 	if (isset($requete['LIMIT'])) $cpt = min($requete['LIMIT'], $cpt);
 
 	$deb_aff = intval(_request($tmp_var));
 	$nb_aff = floor(1.5 * _TRANCHES);
 
+	$tranches = "";
 	if ($cpt > $nb_aff) {
 		$nb_aff = (_TRANCHES); 
-		$res .= afficher_tranches_requete($cpt, $tmp_var, '', $nb_aff);
+		$tranches = afficher_tranches_requete($cpt, $tmp_var, '', $nb_aff);
 	}
 
 	$result = spip_query($u = "SELECT " . (isset($requete["SELECT"]) ? $requete["SELECT"] : "*") . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
+	$id_liste = 't'.substr(md5($u),0,8);
+	$bouton = bouton_block_depliable($titre,true,$id_liste);
 
 	$table = array();
 	while ($row = spip_fetch_array($result)) {
@@ -477,11 +479,12 @@ function affiche_tranche_bandeau($requete, $icone, $fg, $bg, $tmp_var,  $titre,
 	    . $t
 	    . "</table>";
 	return
-	  (!$titre ? '': "\n<div style='height: 12px;'></div>")
-	  . "\n<div class='liste'>"
-	  . $res
+	  debut_cadre('liste',$icone,'',$bouton)
+	  . debut_block_depliable(true,$id_liste)
+	  . $tranches
 	  . $t
-	  . "</div>\n";
+	  . fin_block()
+	  . fin_cadre();
 }
 
 
diff --git a/ecrire/inc/suivi_versions.php b/ecrire/inc/suivi_versions.php
index ecc08a9e03..528dbbf4c7 100644
--- a/ecrire/inc/suivi_versions.php
+++ b/ecrire/inc/suivi_versions.php
@@ -66,11 +66,12 @@ function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = fa
 				$titre_table = afficher_plus(generer_url_ecrire("suivi_revisions"))
 				. $titre_table;
 
-			$revisions .= "\n<div style='height: 12px;'></div>";
-			$revisions .= "\n<div class='liste'>";
-			$revisions .= bandeau_titre_boite2($titre_table, "historique-24.gif", 'toile_blanche', 'ligne_noire');
 	
-			$total = spip_num_rows(spip_query("SELECT versions.*, articles.statut, articles.titre FROM spip_versions AS versions, spip_articles AS articles WHERE $req_where LIMIT 0, 149"));
+			$total = spip_num_rows(spip_query($u="SELECT versions.*, articles.statut, articles.titre FROM spip_versions AS versions, spip_articles AS articles WHERE $req_where LIMIT 0, 149"));
+			$id_liste = 't'.substr(md5($u),0,8);
+			$bouton = bouton_block_depliable($titre_table,true,$id_liste);
+	  	$revisions .= debut_cadre('liste',"historique-24.gif",'',$bouton)
+	 		 . debut_block_depliable(true,$id_liste);
 		
 			if ($total > $nb_aff) {
 				$nb_tranches = ceil($total / $nb_aff);
@@ -125,7 +126,7 @@ $revisions .= "<a href='".generer_url_ecrire('suivi_revisions', "debut=$next&id_
 					if (strlen($nom)>0) $titre_bouton .= "($nom)";
 					$titre_bouton .= "</span>";
 					if (!$court)
-						$revisions .= bouton_block_depliable($titre_bouton,true,"$id_version-$id_article-$id_auteur");
+						$revisions .= bouton_block_depliable($titre_bouton,false,"$id_version-$id_article-$id_auteur");
 					else
 						$revisions .= $titre_bouton;
 				} else {
@@ -142,7 +143,7 @@ $revisions .= "<a href='".generer_url_ecrire('suivi_revisions', "debut=$next&id_
 				if (!$court) {
 					$textes = revision_comparee($id_article, $id_version, 'diff');
 					if (!$rss)
-						$revisions .= debut_block_depliable(true,"$id_version-$id_article-$id_auteur");
+						$revisions .= debut_block_depliable(false,"$id_version-$id_article-$id_auteur");
 	
 					if (is_array($textes))
 					foreach ($textes as $var => $t) {
@@ -169,7 +170,7 @@ $revisions .= "<a href='".generer_url_ecrire('suivi_revisions', "debut=$next&id_
 					$items[] = $item;
 			}
 		}		
-		if (!$rss) $revisions .= "</div>";
+		if (!$rss) $revisions .= fin_block() . fin_cadre();
 	}
 
 	if ($rss)
-- 
GitLab