From df9b1d5006ec9de94707f5cd84fec0119fe3e0fd Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 28 Jan 2008 10:58:34 +0000
Subject: [PATCH] =?UTF-8?q?La=20fonction=20''meme=5Frubrique''=20devient?=
 =?UTF-8?q?=20surchargeable,=20ce=20qui=20permettra=20=C3=A0=20ceux=20voul?=
 =?UTF-8?q?ant=20recup=C3=A9rer=20le=20mode=20exp=C3=A9rimental=20MEME=5FR?=
 =?UTF-8?q?UBRIQUE=20(cf=20[8228]=20parlant=20de=20[8227])=20de=20le=20fai?=
 =?UTF-8?q?re=20dans=20une=20extension=20perso.=20Permettra=20aussi=20d'am?=
 =?UTF-8?q?=C3=A9liorer=20sa=20pr=C3=A9sentation=20pour=20ceux=20qui=20le?=
 =?UTF-8?q?=20souhaitent.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                |  1 +
 ecrire/exec/articles.php      |  3 +-
 ecrire/exec/breves_voir.php   |  4 +-
 ecrire/exec/meme_rubrique.php |  4 +-
 ecrire/exec/sites.php         |  3 +-
 ecrire/inc/meme_rubrique.php  | 91 +++++++++++++++++++++++++++++++++++
 ecrire/inc/presentation.php   | 76 -----------------------------
 ecrire/inc/vieilles_defs.php  |  7 ++-
 8 files changed, 105 insertions(+), 84 deletions(-)
 create mode 100644 ecrire/inc/meme_rubrique.php

diff --git a/.gitattributes b/.gitattributes
index 7033e4ce1f..0fa05d3edb 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -640,6 +640,7 @@ ecrire/inc/lang_liste.php -text
 ecrire/inc/legender.php -text
 ecrire/inc/lien.php -text
 ecrire/inc/mail.php -text
+ecrire/inc/meme_rubrique.php -text
 ecrire/inc/message_select.php -text
 ecrire/inc/minipres.php -text
 ecrire/inc/modifier.php -text
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 28425bd647..d3d09bfda7 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -96,6 +96,7 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot
 	$referencer_traduction = charger_fonction('referencer_traduction', 'inc');
 	$discuter = charger_fonction('discuter', 'inc');
 
+	$meme_rubrique = charger_fonction('meme_rubrique', 'inc');
 	$iconifier = charger_fonction('iconifier', 'inc');
 	$icone = $iconifier('id_article', $id_article,'articles', false, $flag_editable);
 
@@ -115,7 +116,7 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot
 	  . pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''));
 	
 	$extra = creer_colonne_droite('', true)
-		. meme_rubrique($id_rubrique, $id_article, 'article')
+		. $meme_rubrique($id_rubrique, $id_article, 'article')
 	  . pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
 	  . debut_droite('',true);
 
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 1e22dc84bb..f49f005589 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -65,7 +65,7 @@ function exec_breves_voir_args($id_breve, $cherche_mot, $select_groupe)
 	$iconifier = charger_fonction('iconifier', 'inc');
 
 	$dater = charger_fonction('dater', 'inc');
-
+	$meme_rubrique = charger_fonction('meme_rubrique', 'inc');
 	$editer_mot = charger_fonction('editer_mot', 'inc');
 	if ($champs_extra AND $extra)
 		include_spip('inc/extra');
@@ -102,7 +102,7 @@ function exec_breves_voir_args($id_breve, $cherche_mot, $select_groupe)
 		'data'=>''
 		)
 	);
-	echo meme_rubrique($id_rubrique, $id_breve, 'breve', 'date_heure');
+	echo $meme_rubrique($id_rubrique, $id_breve, 'breve', 'date_heure');
 
 	/* raccourcis ont disparu */
 	echo bloc_des_raccourcis(icone_horizontale(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui&id_rubrique=$id_rubrique"), "breve-24.gif","creer.gif", 0));
diff --git a/ecrire/exec/meme_rubrique.php b/ecrire/exec/meme_rubrique.php
index dc70ccd490..cc1f7795a0 100644
--- a/ecrire/exec/meme_rubrique.php
+++ b/ecrire/exec/meme_rubrique.php
@@ -26,9 +26,9 @@ function exec_meme_rubrique_args($id, $type, $order)
 		include_spip('inc/minipres');
                 echo minipres();
         } else {
-		include_spip('inc/presentation');
+		$meme_rubrique = charger_fonction('meme_rubrique', 'inc');
 	// on connait pas le vrai 2e arg mais c'est pas dramatique
-		$res = meme_rubrique($id, 0, $type, $order, NULL, true);
+		$res = $meme_rubrique($id, 0, $type, $order, NULL, true);
 		ajax_retour($res);
 	}
 }
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index 65914a3397..2b73fe0969 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -64,6 +64,7 @@ function afficher_site($id_syndic, $id_rubrique, $nom_site, $row){
 	$flag_administrable = autoriser('modifier','site',$id_syndic);
 	$flag_editable = ($flag_administrable OR ($GLOBALS['meta']["proposer_sites"] > 0 AND ($statut == 'prop')));
 
+	$meme_rubrique = charger_fonction('meme_rubrique', 'inc');
 	$iconifier = charger_fonction('iconifier', 'inc');
 	if ($flag_editable AND ($statut == 'publie'))
 		$dater = charger_fonction('dater', 'inc');
@@ -93,7 +94,7 @@ function afficher_site($id_syndic, $id_rubrique, $nom_site, $row){
 	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''));
 
 	echo creer_colonne_droite('', true);
-	echo meme_rubrique($id_rubrique, $id_syndic, 'syndic');
+	echo $meme_rubrique($id_rubrique, $id_syndic, 'syndic');
 	echo pipeline('affiche_droite',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''));
 
 	echo bloc_des_raccourcis(
diff --git a/ecrire/inc/meme_rubrique.php b/ecrire/inc/meme_rubrique.php
new file mode 100644
index 0000000000..6ebc21934d
--- /dev/null
+++ b/ecrire/inc/meme_rubrique.php
@@ -0,0 +1,91 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2008                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+// http://doc.spip.org/@meme_rubrique
+function inc_meme_rubrique_dist($id_rubrique, $id, $type, $order='date', $limit=NULL, $ajax=false)
+{
+	global $spip_lang_right, $spip_lang_left;
+	include_spip('inc/presentation');
+	include_spip('inc/afficher_objets');
+
+	$table = table_objet_sql($type);
+	if (!id_table_objet($table)) {
+		spip_log("meme_rubrique: $type table inconnue");
+		$type = 'article';
+		$table = 'spip_articles';
+	}
+	$prim = 'id_' . $type;
+	if (!$limit) $limit = 10;
+
+	$titre = ($type!='syndic'?'titre':'nom_site');
+	$exec = array('article'=>'articles','breve'=>'breves_voir','syndic'=>'sites');
+
+	$where = (($GLOBALS['visiteur_session']['statut'] == '0minirezo')
+		  ? ''
+		  :  "(statut = 'publie' OR statut = 'prop') AND ") 
+	. "id_rubrique=$id_rubrique AND ($prim != $id)";
+
+	$select = "$prim AS id, $titre AS titre, statut";
+
+	$n = sql_countsel($table, $where);
+
+	if (!$n) return '';
+
+	$voss = sql_select($select, $table, $where, '', "$order DESC", $limit);
+
+	$limit = $n - $limit;
+	$retour = '';
+	$fstatut = 'puce_statut_' . ($type!='syndic'?$type:'site');
+	$idom = 'rubrique_' . $type;
+
+	while($row = sql_fetch($voss)) {
+		$id = $row['id'];
+		$num = afficher_numero_edit($id, $prim, $type);
+		$statut = $row['statut'];
+		$statut = $fstatut($id, $statut, $id_rubrique, $type);
+		$href = "<a class='verdana1' href='"
+		. generer_url_ecrire($exec[$type],"$prim=$id")
+		. "'>"
+		. sinon(typo($row['titre']), _T('info_sans_titre'))
+		. "</a>";
+
+		// Todo: refaire en css plus sains
+		$retour .= "\n<div>"
+				. "\n<div style='float:$spip_lang_right;width: 32%'>"
+				. $num . "</div>"
+				. "<div style='float:$spip_lang_left; padding-top:1px; width:18px;'>".$statut ."</div>"
+				. "<div style='padding-$spip_lang_left:18px;'>".$href."</div>"
+				. "<div style='clear:both; height: 3px;'></div>"
+				. "</div>";
+	}
+
+	$icone =  '<b>' . _T('info_meme_rubrique')  . '</b>';
+	$bouton = bouton_block_depliable(_T('info_meme_rubrique'),true,'memerub');
+
+	$retour = 
+		debut_cadre('meme-rubriques',"article-24.gif",'',$bouton)
+		. debut_block_depliable(true,'memerub')
+		. $retour;
+	
+
+	//	$retour .= (($limit <= 0) ? '' : "<tr><td colspan='3' style='text-align: center'>+ $limit</td></tr>");
+
+	$retour .= fin_block()
+		. fin_cadre('meme-rubriques');
+
+	if ($ajax) return $retour;
+
+	// id utilise dans puce_statut_article
+	return "\n<div id='imgstatut$idom$id_rubrique'>$retour</div>";
+}
+?>
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 981c71490e..bf7ea22841 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -1344,82 +1344,6 @@ function debloquer_article($arg, $texte) {
 	  "</a>";
 }
 
-// http://doc.spip.org/@meme_rubrique
-function meme_rubrique($id_rubrique, $id, $type, $order='date', $limit=NULL, $ajax=false)
-{
-	global $spip_lang_right, $spip_lang_left;
-	include_spip('inc/afficher_objets');
-
-	$table = table_objet_sql($type);
-	if (!id_table_objet($table)) {
-		spip_log("meme_rubrique: $type table inconnue");
-		$type = 'article';
-		$table = 'spip_articles';
-	}
-	$prim = 'id_' . $type;
-	if (!$limit) $limit = 10;
-
-	$titre = ($type!='syndic'?'titre':'nom_site');
-	$exec = array('article'=>'articles','breve'=>'breves_voir','syndic'=>'sites');
-
-	$where = (($GLOBALS['visiteur_session']['statut'] == '0minirezo')
-		  ? ''
-		  :  "(statut = 'publie' OR statut = 'prop') AND ") 
-	. "id_rubrique=$id_rubrique AND ($prim != $id)";
-
-	$select = "$prim AS id, $titre AS titre, statut";
-
-	$n = sql_countsel($table, $where);
-
-	if (!$n) return '';
-
-	$voss = sql_select($select, $table, $where, '', "$order DESC", $limit);
-
-	$limit = $n - $limit;
-	$retour = '';
-	$fstatut = 'puce_statut_' . ($type!='syndic'?$type:'site');
-	$idom = 'rubrique_' . $type;
-
-	while($row = sql_fetch($voss)) {
-		$id = $row['id'];
-		$num = afficher_numero_edit($id, $prim, $type);
-		$statut = $row['statut'];
-		$statut = $fstatut($id, $statut, $id_rubrique, $type);
-		$href = "<a class='verdana1' href='"
-		. generer_url_ecrire($exec[$type],"$prim=$id")
-		. "'>"
-		. sinon(typo($row['titre']), _T('info_sans_titre'))
-		. "</a>";
-
-		// Todo: refaire en css plus sains
-		$retour .= "\n<div>"
-				. "\n<div style='float:$spip_lang_right;width: 32%'>"
-				. $num . "</div>"
-				. "<div style='float:$spip_lang_left; padding-top:1px; width:18px;'>".$statut ."</div>"
-				. "<div style='padding-$spip_lang_left:18px;'>".$href."</div>"
-				. "<div style='clear:both; height: 3px;'></div>"
-				. "</div>";
-	}
-
-	$icone =  '<b>' . _T('info_meme_rubrique')  . '</b>';
-	$bouton = bouton_block_depliable(_T('info_meme_rubrique'),true,'memerub');
-
-	$retour = 
-		debut_cadre('meme-rubriques',"article-24.gif",'',$bouton)
-		. debut_block_depliable(true,'memerub')
-		. $retour;
-	
-
-	//	$retour .= (($limit <= 0) ? '' : "<tr><td colspan='3' style='text-align: center'>+ $limit</td></tr>");
-
-	$retour .= fin_block()
-		. fin_cadre('meme-rubriques');
-
-	if ($ajax) return $retour;
-
-	// id utilise dans puce_statut_article
-	return "\n<div id='imgstatut$idom$id_rubrique'>$retour</div>";
-}
 
 //
 // Afficher la hierarchie des rubriques
diff --git a/ecrire/inc/vieilles_defs.php b/ecrire/inc/vieilles_defs.php
index f74ef59ae0..1adcd9a4c4 100644
--- a/ecrire/inc/vieilles_defs.php
+++ b/ecrire/inc/vieilles_defs.php
@@ -794,8 +794,11 @@ $GLOBALS[\'all_langs\'] = @$GLOBALS[\'meta\'][\'langues_proposees\'];
 	$boucle->id_boucle); 
 	return false;
   }
-'
-
+',
+'meme_rubrique' => '($id_rubrique, $id, $type, $order="date", $limit=NULL, $ajax=false) {
+	$meme_rubrique = charger_fonction("meme_rubrique", "inc");
+	return $meme_rubrique($id_rubrique, $id, $type, $order, $limit, $ajax);
+}'
 ) as $f => $def) {
 	if (!function_exists($f)) {
 		eval("function $f$def");
-- 
GitLab