From 81a7b9df0d25c4f663cba493820846b5b6eccc8f Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Tue, 1 Aug 2006 22:13:59 +0000
Subject: [PATCH] =?UTF-8?q?Permettre=20la=20surcharge=20du=20selecteur=20d?=
 =?UTF-8?q?e=20rubrique.=20Ca=20permet=20plus=20facilement=20de=20d=C3=A9s?=
 =?UTF-8?q?activer=20Ajax=20pour=20ceux=20qui=20n'aiment=20pas,=20et=20de?=
 =?UTF-8?q?=20fabriquer=20d'autres=20menus=20au=20besoin.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                   |   1 +
 ecrire/exec/articles_edit.php    |   3 +-
 ecrire/exec/breves_edit.php      |   6 +-
 ecrire/exec/rubriques_edit.php   |   4 +-
 ecrire/exec/sites_edit.php       |   4 +-
 ecrire/inc/auteur_voir.php       |   4 +-
 ecrire/inc/chercher_rubrique.php | 228 +++++++++++++++++++++++++++++++
 ecrire/inc/rubriques.php         | 214 -----------------------------
 8 files changed, 240 insertions(+), 224 deletions(-)
 create mode 100644 ecrire/inc/chercher_rubrique.php

diff --git a/.gitattributes b/.gitattributes
index 1d5ac59e0b..7b645dcd55 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -378,6 +378,7 @@ ecrire/inc/article_select.php -text
 ecrire/inc/auteur_voir.php -text
 ecrire/inc/boutons.php -text
 ecrire/inc/chercher_logo.php -text
+ecrire/inc/chercher_rubrique.php -text
 ecrire/inc/cookie.php -text
 ecrire/inc/distant.php -text
 ecrire/inc/drapeau_edition.php -text
diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php
index cb06519d16..c9e78e44af 100644
--- a/ecrire/exec/articles_edit.php
+++ b/ecrire/exec/articles_edit.php
@@ -156,6 +156,7 @@ function formulaire_articles_edit($row, $lier_trad, $new, $champs_article) {
 
 	if ($champs_extra) include_spip('inc/extra');
 
+	$selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
 	return
 		"\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>" .
 		"<tr width='100%'>" .
@@ -214,7 +215,7 @@ function formulaire_articles_edit($row, $lier_trad, $new, $champs_article) {
 
 		debut_cadre_couleur($logo, true, "", _T('titre_cadre_interieur_rubrique'). aide("artrub")) .
 
-		selecteur_rubrique($id_rubrique, 'article', ($statut == 'publie')) .
+		$selecteur_rubrique($id_rubrique, 'article', ($statut == 'publie')) .
 
 		fin_cadre_couleur(true) .
 	
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 746d872714..81b88af545 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -127,9 +127,9 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 
 	debut_cadre_couleur("$logo_parent", false, "",_T('entree_interieur_rubrique').aide ("brevesrub"));
 
-	// selecteur de rubrique (pas d'ajax car toujours racine)
-	include_spip('inc/rubriques');
-	echo selecteur_rubrique_html($id_rubrique, 'breve', ($statut == 'publie'));
+	// selecteur de rubrique (en general pas d'ajax car toujours racine)
+	$selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
+	echo $selecteur_rubrique($id_rubrique, 'breve', ($statut == 'publie'));
 
 	fin_cadre_couleur();
 	
diff --git a/ecrire/exec/rubriques_edit.php b/ecrire/exec/rubriques_edit.php
index af7b5d2f56..54170da624 100644
--- a/ecrire/exec/rubriques_edit.php
+++ b/ecrire/exec/rubriques_edit.php
@@ -112,9 +112,9 @@ echo "<INPUT TYPE='text' CLASS='formo' NAME='titre' VALUE=\"$titre\" SIZE='40' $
 debut_cadre_couleur("$logo_parent", false, '', _T('entree_interieur_rubrique').aide ("rubrub"));
 
 // selecteur de rubriques
-include_spip('inc/rubriques');
+$selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
 $restreint = ($GLOBALS['statut'] == 'publie');
-echo selecteur_rubrique($id_parent, 'rubrique', $restreint, $id_rubrique);
+echo $selecteur_rubrique($id_parent, 'rubrique', $restreint, $id_rubrique);
 
 
 // si c'est une rubrique-secteur contenant des breves, demander la
diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php
index 8db1d9a30e..c9ed5d2156 100644
--- a/ecrire/exec/sites_edit.php
+++ b/ecrire/exec/sites_edit.php
@@ -118,9 +118,9 @@ echo "<input type='text' class='formo' name='url_site' value=\"$url_site\" size=
 	debut_cadre_couleur("$logo_parent", false, "", _T('entree_interieur_rubrique'));
 
 	// selecteur de rubriques
-	include_spip('inc/rubriques');
+	$selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
 	$restreint = ($GLOBALS['statut'] == 'publie');
-	echo selecteur_rubrique($id_rubrique, 'site', $restreint);
+	echo $selecteur_rubrique($id_rubrique, 'site', $restreint);
 
 	fin_cadre_couleur();
 
diff --git a/ecrire/inc/auteur_voir.php b/ecrire/inc/auteur_voir.php
index 1b45371c7e..efa10428fe 100644
--- a/ecrire/inc/auteur_voir.php
+++ b/ecrire/inc/auteur_voir.php
@@ -80,8 +80,8 @@ function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') {
 		else
 			echo "<b>"._T('info_ajouter_rubrique')."</b><br />";
 		echo "\n<input name='id_auteur' value='$id_auteur' type='hidden' />";
-		include_spip('inc/rubriques');
-		echo selecteur_rubrique(0, 'auteur', false);
+		$selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc');
+		echo $selecteur_rubrique(0, 'auteur', false);
 		echo "</div>\n";
 		echo fin_block();
 	}
diff --git a/ecrire/inc/chercher_rubrique.php b/ecrire/inc/chercher_rubrique.php
new file mode 100644
index 0000000000..eb1dbca3fc
--- /dev/null
+++ b/ecrire/inc/chercher_rubrique.php
@@ -0,0 +1,228 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2006                                                *
+ *  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;
+
+//
+// Selecteur de rubriques pour l'espace prive
+// En entree :
+// - l'id_rubrique courante (0 si NEW)
+// - le type d'objet a placer (une rubrique peut aller a la racine
+//    mais pas dans elle-meme, les articles et sites peuvent aller
+//    n'importe ou (defaut), et les breves dans les secteurs.
+// $idem : en mode rubrique = la rubrique soi-meme
+function inc_chercher_rubrique_dist ($id_rubrique, $type, $restreint, $idem=0) {
+	global $_COOKIE;
+	global $browser_name, $browser_version;
+
+	// Mode sans Ajax :
+	// - soit parce que le cookie ajax n'est pas la
+	// - soit parce qu'il y a peu de rubriques
+	// - soit parce qu'avec IE ca plante et c'est penible
+	if (false /* mettre true pour desactiver ajax */
+	OR (($browser_name == "MSIE" AND floor($browser_version) < "7"))
+	OR $_COOKIE['spip_accepte_ajax'] < 1
+	OR spip_num_rows(
+	spip_query("SELECT id_rubrique FROM spip_rubriques LIMIT 21")) < 20)
+		return selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem);
+
+	else
+		return selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem);
+
+}
+
+// compatibilite pour extensions qui utilisaient l'ancien nom
+$GLOBALS['selecteur_rubrique'] = 'inc_chercher_rubrique_dist';
+
+function style_menu_rubriques($i) {
+	global $browser_name, $browser_version;
+	global $couleur_claire, $spip_lang_left;
+
+	if (eregi("mozilla", $browser_name)) {
+		$style = "padding-$spip_lang_left: 16px; "
+		. "margin-$spip_lang_left: ".(($i-1)*16)."px;";
+		$espace = '';
+	} else {
+		$style = '';
+		for ($count = 0; $count <= $i; $count ++)
+			$espace .= "&nbsp;&nbsp;&nbsp;&nbsp;";
+	}
+	switch ($i) {
+		case 1:
+			$espace= "";
+			$style .= "font-weight: bold;";
+			break;
+		case 2:
+			$style .= "color: #202020;";
+			break;
+		case 3:
+			$style .= "color: #404040;";
+			break;
+		case 4:
+			$style .= "color: #606060;";
+			break;
+		case 5:
+			$style .= "color: #808080;";
+			break;
+		default:
+			$style .= "color: #A0A0A0;";
+			break;
+	}
+
+	if ($i==1) {
+		$style .= "background-image: url(" . _DIR_IMG_PACK. "secteur-12.gif);";
+		$style .= "background-color: $couleur_claire;";
+		$style .= "font-weight: bold;";
+	}
+	else if ($i==2) {
+		$style .= "border-bottom: 1px solid $couleur_claire;";
+		$style .= "font-weight: bold;";
+	}
+
+	if ($style) $style = " style='$style'";
+
+	return array($style,$espace);
+}
+
+function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) {
+	global $browser_name, $browser_version;
+	static $decalage_secteur;
+
+	// Si on a demande l'exclusion ne pas descendre dans la rubrique courante
+	if ($exclus > 0
+	AND $root == $exclus) return '';
+
+	// en fonction du niveau faire un affichage plus ou moins kikoo
+
+	// selected ?
+	$selected = ($root == $id_rubrique) ? ' selected' : '';
+
+	// class='selec_rub' sauf pour contourner le bug MSIE / MacOs 9.0
+	if (!($browser_name == "MSIE" AND floor($browser_version) == "5"))
+		$class = " class='selec_rub'";
+
+	// le style en fonction de la profondeur
+	list($style,$espace) = style_menu_rubriques($niv);
+
+	// creer l'<option> pour la rubrique $root
+	if (isset($data[$root])) # pas de racine sauf pour les rubriques
+	{
+		$r .= "<option$selected value='$root'$class$style>$espace"
+		.$data[$root]
+		.'</option>'."\n";
+	}
+	
+	// et le sous-menu pour ses enfants
+	$sous = '';
+	if ($enfants[$root])
+		foreach ($enfants[$root] as $sousrub)
+			$sous .= sous_menu_rubriques($id_rubrique, $sousrub,
+				$niv+1, $data, $enfants, $exclus, $restreint, $type);
+
+	// si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques
+	if ($restreint AND !acces_rubrique($root))
+		return $sous;
+
+	// sauter un cran pour les secteurs (sauf premier)
+	if ($niv == 1
+	AND $decalage_secteur++
+	AND $type != 'breve')
+		$r = "<option value='$root'></option>\n".$r;
+
+	// et voila le travail
+	return $r.$sous;
+}
+
+// Le selecteur de rubriques en mode classique (menu)
+function selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem=0) {
+	$data = array();
+	if ($type == 'rubrique')
+		$data[0] = _T('info_racine_site');
+	if ($type == 'auteur')
+		$data[0] = '&nbsp;'; # premier choix = neant (rubriques restreintes)
+
+	//
+	// creer une structure contenant toute l'arborescence
+	//
+
+	$q = spip_query("SELECT id_rubrique, id_parent, titre, statut, lang, langue_choisie FROM spip_rubriques " . ($type == 'breve' ?  'WHERE id_parent=0 ' : '') . "ORDER BY 0+titre,titre");
+	while ($r = spip_fetch_array($q)) {
+		// titre largeur maxi a 50
+		$titre = couper(supprimer_tags(typo(extraire_multi($r['titre']
+		)))." ", 50);
+		if ($GLOBALS['meta']['multi_rubriques'] == 'oui'
+		AND ($r['langue_choisie'] == "oui" OR $r['id_parent'] == 0))
+			$titre .= ' ['.traduire_nom_langue($r['lang']).']';
+		$data[$r['id_rubrique']] = $titre;
+		$enfants[$r['id_parent']][] = $r['id_rubrique'];
+		if ($id_rubrique == $r['id_rubrique']) $id_parent = $r['id_parent'];
+	}
+
+
+	$opt = sous_menu_rubriques($id_rubrique,0, 0,$data,$enfants,$idem, $restreint, $type);
+	$att = " name='id_parent'\nstyle='font-size: 90%; width: 99%; font-face: verdana,arial,helvetica,sans-serif; max-height: 24px;'";
+
+	if (preg_match(',^<option[^<>]*value=.(\d*).[^<>]*>([^<]*)</option>$,',$opt,$r))
+	  $r = "<input$att type='hidden' value='" . $r[1] . "' />" . $r[2] ;
+	else 
+	  $r = "<select$att size='1'>\n$opt</select>\n";
+
+	# message pour neuneus (a supprimer ?)
+#	if ($type != 'auteur' AND $type != 'breve')
+#		$r .= "\n<br />"._T('texte_rappel_selection_champs');
+
+	return $r;
+}
+
+//
+// Le selecteur de rubriques en mode Ajax
+// necessite ajax_page.php et inc_mini_nav.php
+//
+function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0) {
+
+	## $restreint indique qu'il faut limiter les rubriques affichees
+	## aux rubriques editables par l'admin restreint... or, ca ne marche pas.
+	## Pour la version HTML c'est bon (cf. ci-dessus), mais pour l'ajax...
+	## je laisse ca aux specialistes de l'ajax & des admins restreints
+	## note : toutefois c'est juste un pb d'interface, car question securite
+	## la verification est faite a l'arrivee des donnees (Fil)
+
+	if ($idem)
+		$exclus = "&exclus=$idem&rac=oui";
+
+	if ($id_rubrique)
+		list($titre_parent) = spip_fetch_array(spip_query("SELECT titre FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
+	else if ($type == 'auteur')
+		$titre_parent = '&nbsp;';
+	else
+		$titre_parent = _T('info_racine_site');
+
+	return 	"<table width='100%'><tr width='100%'><td width='45'>
+	<a	href=\"#\"
+		onClick=\"if(findObj('selection_rubrique').style.display=='none')
+			{charger_id_url_si_vide('" .
+	  generer_url_ecrire('ajax_page', "fonction=aff_rubrique&id=$id_rubrique$exclus", true) ."',
+				'selection_rubrique');}
+			else {findObj('selection_rubrique').style.display='none';}\"
+	><img src='". _DIR_IMG_PACK . "loupe.png' style='vertical-align: middle;'
+	/></a><img src='". _DIR_IMG_PACK . "searching.gif'
+		id='img_selection_rubrique' style='visibility: hidden;'>
+	</td><td>
+	<input type='text' id='titreparent' name='titreparent'
+		disabled='disabled' class='forml' value=\""
+	  . str_replace('&amp;', '&', entites_html(textebrut(typo($titre_parent))))
+	  ."\" />
+	<input type='hidden' id='id_parent' name='id_parent' value='$id_rubrique' />
+	</td></tr></table>
+	<div id='selection_rubrique' style='display: none;'></div>";
+}
+?>
diff --git a/ecrire/inc/rubriques.php b/ecrire/inc/rubriques.php
index 0d8bdcd506..79961b3780 100644
--- a/ecrire/inc/rubriques.php
+++ b/ecrire/inc/rubriques.php
@@ -10,11 +10,8 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
-//
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-
 //
 // Recalculer l'ensemble des donnees associees a l'arborescence des rubriques
 // (cette fonction est a appeler a chaque modification sur les rubriques)
@@ -368,217 +365,6 @@ function calcul_branche ($generation) {
 	}
 }
 
-//
-// Selecteur de rubriques pour l'espace prive
-// En entree :
-// - l'id_rubrique courante (0 si NEW)
-// - le type d'objet a placer (une rubrique peut aller a la racine
-//    mais pas dans elle-meme, les articles et sites peuvent aller
-//    n'importe ou (defaut), et les breves dans les secteurs.
-// $idem : en mode rubrique = la rubrique soi-meme
-function selecteur_rubrique($id_rubrique, $type, $restreint, $idem=0) {
-	global $_COOKIE;
-	global $browser_name, $browser_version;
-
-	// Mode sans Ajax :
-	// - soit parce que le cookie ajax n'est pas la
-	// - soit parce qu'il y a peu de rubriques
-	// - soit parce qu'avec IE ca plante et c'est penible
-	if (false /* mettre true pour desactiver ajax */
-	OR (($browser_name == "MSIE" AND floor($browser_version) < "7"))
-	OR $_COOKIE['spip_accepte_ajax'] < 1
-	OR spip_num_rows(
-	spip_query("SELECT id_rubrique FROM spip_rubriques LIMIT 21")) < 20)
-		return selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem);
-
-	else
-		return selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem);
-
-}
-
-function style_menu_rubriques($i) {
-	global $browser_name, $browser_version;
-	global $couleur_claire, $spip_lang_left;
-
-	if (eregi("mozilla", $browser_name)) {
-		$style = "padding-$spip_lang_left: 16px; "
-		. "margin-$spip_lang_left: ".(($i-1)*16)."px;";
-		$espace = '';
-	} else {
-		$style = '';
-		for ($count = 0; $count <= $i; $count ++)
-			$espace .= "&nbsp;&nbsp;&nbsp;&nbsp;";
-	}
-	switch ($i) {
-		case 1:
-			$espace= "";
-			$style .= "font-weight: bold;";
-			break;
-		case 2:
-			$style .= "color: #202020;";
-			break;
-		case 3:
-			$style .= "color: #404040;";
-			break;
-		case 4:
-			$style .= "color: #606060;";
-			break;
-		case 5:
-			$style .= "color: #808080;";
-			break;
-		default:
-			$style .= "color: #A0A0A0;";
-			break;
-	}
-
-	if ($i==1) {
-		$style .= "background-image: url(" . _DIR_IMG_PACK. "secteur-12.gif);";
-		$style .= "background-color: $couleur_claire;";
-		$style .= "font-weight: bold;";
-	}
-	else if ($i==2) {
-		$style .= "border-bottom: 1px solid $couleur_claire;";
-		$style .= "font-weight: bold;";
-	}
-
-	if ($style) $style = " style='$style'";
-
-	return array($style,$espace);
-}
-
-function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) {
-	global $browser_name, $browser_version;
-	static $decalage_secteur;
-
-	// Si on a demande l'exclusion ne pas descendre dans la rubrique courante
-	if ($exclus > 0
-	AND $root == $exclus) return '';
-
-	// en fonction du niveau faire un affichage plus ou moins kikoo
-
-	// selected ?
-	$selected = ($root == $id_rubrique) ? ' selected' : '';
-
-	// class='selec_rub' sauf pour contourner le bug MSIE / MacOs 9.0
-	if (!($browser_name == "MSIE" AND floor($browser_version) == "5"))
-		$class = " class='selec_rub'";
-
-	// le style en fonction de la profondeur
-	list($style,$espace) = style_menu_rubriques($niv);
-
-	// creer l'<option> pour la rubrique $root
-	if (isset($data[$root])) # pas de racine sauf pour les rubriques
-	{
-		$r .= "<option$selected value='$root'$class$style>$espace"
-		.$data[$root]
-		.'</option>'."\n";
-	}
-	
-	// et le sous-menu pour ses enfants
-	$sous = '';
-	if ($enfants[$root])
-		foreach ($enfants[$root] as $sousrub)
-			$sous .= sous_menu_rubriques($id_rubrique, $sousrub,
-				$niv+1, $data, $enfants, $exclus, $restreint, $type);
-
-	// si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques
-	if ($restreint AND !acces_rubrique($root))
-		return $sous;
-
-	// sauter un cran pour les secteurs (sauf premier)
-	if ($niv == 1
-	AND $decalage_secteur++
-	AND $type != 'breve')
-		$r = "<option value='$root'></option>\n".$r;
-
-	// et voila le travail
-	return $r.$sous;
-}
-
-// Le selecteur de rubriques en mode classique (menu)
-function selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem=0) {
-	$data = array();
-	if ($type == 'rubrique')
-		$data[0] = _T('info_racine_site');
-	if ($type == 'auteur')
-		$data[0] = '&nbsp;'; # premier choix = neant (rubriques restreintes)
-
-	//
-	// creer une structure contenant toute l'arborescence
-	//
-
-	$q = spip_query("SELECT id_rubrique, id_parent, titre, statut, lang, langue_choisie FROM spip_rubriques " . ($type == 'breve' ?  'WHERE id_parent=0 ' : '') . "ORDER BY 0+titre,titre");
-	while ($r = spip_fetch_array($q)) {
-		// titre largeur maxi a 50
-		$titre = couper(supprimer_tags(typo(extraire_multi($r['titre']
-		)))." ", 50);
-		if ($GLOBALS['meta']['multi_rubriques'] == 'oui'
-		AND ($r['langue_choisie'] == "oui" OR $r['id_parent'] == 0))
-			$titre .= ' ['.traduire_nom_langue($r['lang']).']';
-		$data[$r['id_rubrique']] = $titre;
-		$enfants[$r['id_parent']][] = $r['id_rubrique'];
-		if ($id_rubrique == $r['id_rubrique']) $id_parent = $r['id_parent'];
-	}
-
-
-	$opt = sous_menu_rubriques($id_rubrique,0, 0,$data,$enfants,$idem, $restreint, $type);
-	$att = " name='id_parent'\nstyle='font-size: 90%; width: 99%; font-face: verdana,arial,helvetica,sans-serif; max-height: 24px;'";
-
-	if (preg_match(',^<option[^<>]*value=.(\d*).[^<>]*>([^<]*)</option>$,',$opt,$r))
-	  $r = "<input$att type='hidden' value='" . $r[1] . "' />" . $r[2] ;
-	else 
-	  $r = "<select$att size='1'>\n$opt</select>\n";
-
-	# message pour neuneus (a supprimer ?)
-#	if ($type != 'auteur' AND $type != 'breve')
-#		$r .= "\n<br />"._T('texte_rappel_selection_champs');
-
-	return $r;
-}
-
-//
-// Le selecteur de rubriques en mode Ajax
-// necessite ajax_page.php et inc_mini_nav.php
-//
-function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0) {
-
-	## $restreint indique qu'il faut limiter les rubriques affichees
-	## aux rubriques editables par l'admin restreint... or, ca ne marche pas.
-	## Pour la version HTML c'est bon (cf. ci-dessus), mais pour l'ajax...
-	## je laisse ca aux specialistes de l'ajax & des admins restreints
-	## note : toutefois c'est juste un pb d'interface, car question securite
-	## la verification est faite a l'arrivee des donnees (Fil)
-
-	if ($idem)
-		$exclus = "&exclus=$idem&rac=oui";
-
-	if ($id_rubrique)
-		list($titre_parent) = spip_fetch_array(spip_query("SELECT titre FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
-	else if ($type == 'auteur')
-		$titre_parent = '&nbsp;';
-	else
-		$titre_parent = _T('info_racine_site');
-
-	return 	"<table width='100%'><tr width='100%'><td width='45'>
-	<a	href=\"#\"
-		onClick=\"if(findObj('selection_rubrique').style.display=='none')
-			{charger_id_url_si_vide('" .
-	  generer_url_ecrire('ajax_page', "fonction=aff_rubrique&id=$id_rubrique$exclus", true) ."',
-				'selection_rubrique');}
-			else {findObj('selection_rubrique').style.display='none';}\"
-	><img src='". _DIR_IMG_PACK . "loupe.png' style='vertical-align: middle;'
-	/></a><img src='". _DIR_IMG_PACK . "searching.gif'
-		id='img_selection_rubrique' style='visibility: hidden;'>
-	</td><td>
-	<input type='text' id='titreparent' name='titreparent'
-		disabled='disabled' class='forml' value=\""
-	  . str_replace('&amp;', '&', entites_html(textebrut(typo($titre_parent))))
-	  ."\" />
-	<input type='hidden' id='id_parent' name='id_parent' value='$id_rubrique' />
-	</td></tr></table>
-	<div id='selection_rubrique' style='display: none;'></div>";
-}
-
 function cron_rubriques($t) {
 	calculer_rubriques();
 	return 1;
-- 
GitLab