From a4895abc260177da1964c25f288bfe2d52352d89 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sat, 10 Dec 2011 16:27:38 +0000
Subject: [PATCH] La fonction de chargeur de plugin ou lib disparait du core :
 tout cela reposait sur le bricolage du flux RSS. SVP/STP reprend ca de facon
 beaucoup plus propre et robuste, c'est donc lui qui sera en charge de cette
 fonctionnalite

---
 .gitattributes                             |   6 -
 ecrire/action/charger_plugin.php           | 307 ------------
 ecrire/exec/charger_plugin.php             |  69 ---
 ecrire/exec/charger_plugin_descr.php       |  65 ---
 ecrire/exec/info_plugin_distant.php        |  34 --
 ecrire/inc/charger_plugin.php              | 555 ---------------------
 ecrire/inc/plugin.php                      |   5 +-
 ecrire/plugin.xml                          |  13 -
 ecrire/plugins/afficher_plugin_distant.php | 139 ------
 9 files changed, 3 insertions(+), 1190 deletions(-)
 delete mode 100644 ecrire/action/charger_plugin.php
 delete mode 100644 ecrire/exec/charger_plugin.php
 delete mode 100644 ecrire/exec/charger_plugin_descr.php
 delete mode 100644 ecrire/exec/info_plugin_distant.php
 delete mode 100644 ecrire/inc/charger_plugin.php
 delete mode 100644 ecrire/plugins/afficher_plugin_distant.php

diff --git a/.gitattributes b/.gitattributes
index 2d335a13cb..793a50d1f1 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -7,7 +7,6 @@ ecrire/action/ajouter_lien.php -text
 ecrire/action/annuler_job.php -text
 ecrire/action/auth.php -text
 ecrire/action/calculer_taille_cache.php -text
-ecrire/action/charger_plugin.php -text
 ecrire/action/confirmer_email.php -text
 ecrire/action/confirmer_inscription.php -text
 ecrire/action/converser.php -text
@@ -73,14 +72,11 @@ ecrire/exec/404.php -text
 ecrire/exec/admin_plugin.php -text
 ecrire/exec/base_delete_all.php -text
 ecrire/exec/base_repair.php -text
-ecrire/exec/charger_plugin.php -text
-ecrire/exec/charger_plugin_descr.php -text
 ecrire/exec/demande_mise_a_jour.php -text
 ecrire/exec/fond.php -text
 ecrire/exec/fond_monobloc.php -text
 ecrire/exec/index.php -text
 ecrire/exec/info_plugin.php -text
-ecrire/exec/info_plugin_distant.php -text
 ecrire/exec/informer.php -text
 ecrire/exec/install.php -text
 ecrire/exec/plonger.php -text
@@ -97,7 +93,6 @@ ecrire/inc/autoriser.php -text
 ecrire/inc/bandeau.php -text
 ecrire/inc/boutons.php -text
 ecrire/inc/charger_php_extension.php -text
-ecrire/inc/charger_plugin.php -text
 ecrire/inc/chercher_logo.php -text
 ecrire/inc/chercher_rubrique.php -text
 ecrire/inc/commencer_page.php -text
@@ -235,7 +230,6 @@ ecrire/plugin.xml -text
 ecrire/plugins/afficher_liste.php -text
 ecrire/plugins/afficher_nom_plugin.php -text
 ecrire/plugins/afficher_plugin.php -text
-ecrire/plugins/afficher_plugin_distant.php -text
 ecrire/plugins/afficher_repertoires.php -text
 ecrire/plugins/extraire_boutons.php -text
 ecrire/plugins/extraire_pipelines.php -text
diff --git a/ecrire/action/charger_plugin.php b/ecrire/action/charger_plugin.php
deleted file mode 100644
index 1ef4cf35a2..0000000000
--- a/ecrire/action/charger_plugin.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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.   *
-\***************************************************************************/
-
-
-/*
- * Ce fichier est extrait du plugin charge : action charger decompresser
- *
- * Auteur : bertrand@toggg.com
- * © 2007 - Distribue sous licence LGPL
- *
- */
-
-if (!defined('_ECRIRE_INC_VERSION')) return;
-
-// http://doc.spip.org/@action_charger_plugin_dist
-function action_charger_plugin_dist() {
-	global $spip_lang_left;
-
-	$securiser_action = charger_fonction('securiser_action', 'inc');
-	$arg = $securiser_action();
-
-	include_spip('inc/minipres');
-	include_spip('inc/charger_plugin');
-
-	// droits : il faut avoir le droit de choisir les plugins,
-	// mais aussi d'en ajouter -- a voir
-	include_spip('inc/autoriser');
-	if (!autoriser('configurer', 'plugins')) {
-		echo minipres();
-		exit;
-	}
-
-	$zip = "";
-	if ($arg == 'update_flux') {
-		if (is_array($syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug'])))
-			foreach ($syndic_plug as $url => $c)
-				essaie_ajouter_liste_plugins($url);
-	} 
-	elseif ($arg == 'supprimer_flux' AND $url = _request('supprimer_flux')) {
-		$syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']);
-		unset($syndic_plug[$url]);
-		ecrire_meta('syndic_plug', serialize($syndic_plug));
-	}
-	elseif (in_array($arg,array('charger_zip','lib','plugins'))) {
-		// la verification que c'est bien un zip sera faite apres
-		$zip = _request('url_zip_plugin');
-	}
-	elseif (strlen($arg)) {
-		// la verification que c'est bien un zip sera faite apres
-		$zip = $arg;
-	}
-	else {
-		// indetermine : c'est un zip ou une liste
-		$arg = 'charger_liste_ou_zip';
-		$zip = _request('url_zip_plugin2');
-	}
-
-	# si premiere lecture, destination temporaire des fichiers
-	$tmp = sous_repertoire(_DIR_CACHE, 'chargeur');
-	# on ne se contenten pas du basename qui peut etre un simple v1
-	# exemple de l'url http://nodeload.github.com/kbjr/Git.php/zipball/v0.1.1-rc
-
-	$fichier = (_request('fichier')?
-		_request('fichier')
-		:"h".substr(md5($zip),0,8)."-".basename($zip)
-		);
-	# basename par securite notamment dans le cas ou $fichier viens de l'exterieur
-	$fichier = $tmp.basename($fichier);
-	$extension = ""; // a verifier
-
-	# au second tour, le zip designe directement le fichier au lieu de l'url
-	# initiale
-	if (!file_exists($fichier)) {
-		# si on ne dispose pas encore du fichier
-		# verifier que le zip en est bien un (sans se fier a son extension)
-		#	en chargeant son entete car l'url initiale peut etre une simple
-		# redirection et ne pas comporter d'extension .zip
-		include_spip('inc/distant');
-		$head = recuperer_page($zip, false, true, 0);
-
-		if (preg_match(",^Content-Type:\s*application/zip$,Uims",$head))
-			$extension = "zip";
-		elseif (preg_match(",^Content-Disposition:\s*attachment;\s*filename=(.*)$,Uims",$head,$m)){
-			$f = $m[1];
-			if (pathinfo($f, PATHINFO_EXTENSION)=="zip"){
-				$fichier = (_request('fichier')?
-					_request('fichier')
-					:"h".substr(md5($zip),0,8)."-".basename($f)
-					);
-				$fichier = $tmp.basename($fichier);
-				$extension = "zip";
-			}
-		}
-		// au cas ou, si le content-type n'est pas la
-		// mais que l'extension est explicite
-		elseif(pathinfo($zip, PATHINFO_EXTENSION)=="zip")
-			$extension = "zip";
-
-		# si ce n'est pas un zip dans un format connu,
-		# c'est sans doute une liste de plugins
-		# si on est dans le bon scenario
-		if (!$extension) {
-			if ($arg == 'charger_liste_ou_zip') {
-				essaie_ajouter_liste_plugins($zip);
-			}
-		}
-	}
-	else {
-		$extension = pathinfo($fichier, PATHINFO_EXTENSION);
-		if (!$extension)
-			$extension = pathinfo($zip, PATHINFO_EXTENSION);
-	}
-	# format de fichier inconnu
-	if (!$extension) {
-		spip_log("Extension inconnue pour le paquet $fichier venant de $zip");
-		include_spip('inc/headers');
-		redirige_url_ecrire('charger_plugin');
-	}
-
-	# Si definie a '', le chargeur est interdit ; mais on n'aurait de toutes
-	# facons jamais pu venir ici avec toutes les securisations faites :^)
-	if (!_DIR_PLUGINS_AUTO) die('jamais');
-
-	# dispose-t-on du fichier ?
-	$status = null;
-	# forcer l'extension du fichier par securite
-	$fichier = $tmp.basename($fichier,".$extension").".$extension";
-	if (!@file_exists($fichier)) {
-		include_spip('inc/distant');
-		$contenu = recuperer_page($zip, $fichier, false,_COPIE_LOCALE_MAX_SIZE);
-		if (!$contenu) {
-			spip_log('charger_decompresser impossible de charger '.$zip);
-			$status = -1;
-		}
-	}
-
-	if ($status === null) {
-		$status = chargeur_charger_zip(
-			array(
-				'zip' => $zip,
-				'arg' => $arg,
-				'fichier' => $fichier,
-				'tmp' => $tmp,
-				'extract' => _request('extract')
-			)
-		);
-		if (_request('extract')) {
-			spip_unlink($fichier);
-		}
-	}
-
-	// Vers quoi pointe le bouton "suite"
-	$suite = '';
-
-	// le fichier .zip est la et bien forme
-	if (is_array($status)) {
-
-		// Reconnaitre un plugin par son fichier xml
-		$get_infos = charger_fonction('get_infos','plugins');
-		$infos = $get_infos($status['tmpname'], true, '');
-		$nom = $description = $type = "";
-		if ($infos) {
-			$nom = $infos['nom'];
-			$image = $infos['icon'];
-			$description = $infos['description'];
-			$type = 'plugin';
-			$dest = _DIR_PLUGINS_AUTO;
-		} else {
-			$type = 'lib';
-			$dest = _DIR_RACINE.'lib/';
-		}
-
-		// Fixer son emplacement final
-		$status['dirname'] = $dest
-			. basename($status['tmpname']) . '/';
-
-		// repertoire parent accessible en ecriture ?
-		if (!@is_dir($dest)
-		OR !@is_writeable($dest)) {
-			$retour = _T("erreur");
-			$texte = "<p>"._T('plugin_erreur_droit1',array('dest'=>$dest))."</p>"
-			  . "<p>"._T('plugin_erreur_droit2').aide('install0')."</p>";
-		}
-		else
-
-		// C'est un plugin ?
-		if ($type == 'plugin') {
-
-			$retour = typo($nom);
-
-			// l'icone ne peut pas etre dans tmp/ (lecture http oblige)
-			// on la copie donc dans local/chargeur/
-			if (isset($image) AND $image) {
-				$dir = sous_repertoire(_DIR_VAR,'chargeur');
-				@copy($status['tmpname'].'/'.$image, $image2 = $dir.basename($image));
-				$retour = "<img src='".$image2."' style='float:right;' />"
-					. $retour;
-			} else 
-				$retour = "<img src='".chemin_image('plugin-24.png')."' style='float:right;' />"
-					. $retour;
-
-			if (_request('extract')) {
-				charger_fonction('afficher_plugin','plugins'); // pour plugin_propre
-				$texte = plugin_propre($description)
-				. '<p>'._T('plugin_zip_installe_finie',array('zip'=>$zip)).'</p>'
-				. "<h2 style='text-align:center;'>"._T('plugin_zip_active')."</h2>";
-			} else {
-                $texte = '<p>'._T('plugin_zip_telecharge',array('zip'=>$zip)).'</p>';
-				$texte .= liste_fichiers_pclzip($status);
-				$texte .= "<h2 style='text-align:center;'>"._T('plugin_zip_installer')."</h2>";
-				$suite = 'plugins';
-			}
-		}
-
-		// C'est un paquet quelconque
-		else {
-		  $retour = _T('plugin_charge_paquet',array('name' => basename($status['tmpname'])));
-
-			if (_request('extract')) {
-			  $texte = '<p>'._T('plugin_zip_installe_rep_finie', array('zip'=>$zip, 'rep'=>$status['dirname'])).'</p>';
-			} else {
-                $texte = "<p>"._T('plugin_zip_telecharge',array('zip'=>$zip))."</p>\n";
-				$texte .= liste_fichiers_pclzip($status);
-				$suite = 'lib';
-			}
-		}
-	}
-
-	// fichier absent
-	else if ($status == -1) {
-		$retour = _T('erreur');
-		$texte = _T('plugin_erreur_charger', array('zip'=>$zip));
-	}
-
-	// fichier la mais pas bien dezippe
-	else {
-		$retour = _T('erreur');
-		$texte = _T('plugin_erreur_zip',array('status'=>$status));
-	}
-
-
-	include_spip('inc/install'); // pour bouton_suivant()
-
-	$texte = "<div style='text-align:".$spip_lang_left.";'>$texte</div>\n";
-
-	$redirect = rawurldecode(_request('redirect'));
-	// par defaut on revient sur la page admin_plugin
-	if($redirect == _DIR_RESTREINT OR $redirect == "./"){
-		$redirect_annul = generer_url_ecrire('admin_plugin');
-		$redirect_form = 'admin_plugin&voir=recents&'.$type.'='.preg_replace(',^[^/]+/|/$,', '', $status['dirname']);
-		$redirect_action = '';
-	}
-	else{
-		$redirect_annul = $redirect;
-		$redirect_form = preg_replace(',^.*exec\=,', '', $redirect);
-		if (!$suite)
-			$texte .= form_hidden(parametre_url(generer_url_ecrire($redirect_form), $type,preg_replace(',^[^/]+/|/$,', '', $status['dirname'])));
-		$redirect_action = $redirect_form;
-	}
-	echo minipres($retour." ",
-		$suite
-			? redirige_action_post(_request('action'),
-				$suite,
-				$redirect_action,
-				'',
-					form_hidden('?url_zip_plugin='.urlencode($zip).'&extract=oui&fichier='.urlencode($fichier))
-					.$texte
-					."<a class='suivant' href='"
-						.$redirect_annul
-					."'>"._T('bouton_annuler')."</a>"
-				.bouton_suivant())
-			: generer_form_ecrire($redirect_form, $texte . bouton_suivant())
-	);
-	exit;
-
-	// 0 = rien, pas charge
-	// liste de fichiers = retour gagnant
-	// < 0 = erreur pclzip 
-	// ----- Error codes
-	//   -1 : Unable to open file in binary write mode
-	//   -2 : Unable to open file in binary read mode
-	//   -3 : Invalid parameters
-	//   -4 : File does not exist
-	//   -5 : Filename is too long (max. 255)
-	//   -6 : Not a valid zip file
-	//   -7 : Invalid extracted file size
-	//   -8 : Unable to create directory
-	//   -9 : Invalid archive extension
-	//  -10 : Invalid archive format
-	//  -11 : Unable to delete file (unlink)
-	//  -12 : Unable to rename file (rename)
-	//  -13 : Invalid header checksum
-	//  -14 : Invalid archive size
-
-#	redirige_par_entete($url_retour);
-}
-
-?>
diff --git a/ecrire/exec/charger_plugin.php b/ecrire/exec/charger_plugin.php
deleted file mode 100644
index 6226359deb..0000000000
--- a/ecrire/exec/charger_plugin.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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;
-
-include_spip('inc/config');
-include_spip('inc/plugin');
-include_spip('inc/presentation');
-include_spip('inc/layer');
-include_spip('inc/actions');
-include_spip('inc/securiser_action');
-
-// http://doc.spip.org/@exec_admin_plugin_dist
-function exec_charger_plugin_dist($retour='') {
-
-	if (!autoriser('configurer', 'plugins')) {
-		include_spip('inc/minipres');
-		echo minipres();
-	} else {
-
-		$commencer_page = charger_fonction('commencer_page', 'inc');
-		echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin");
-
-		echo debut_gauche('plugin',true);
-		echo debut_boite_info(true);
-		$s = "";
-		$s .= _T('info_gauche_admin_tech');
-		echo $s;
-		echo fin_boite_info(true);
-
-		echo pipeline('affiche_gauche',
-			array(
-			'args'=>array('exec'=>'charger_plugin'),
-			'data'=>''
-			)
-		);
-
-		echo debut_droite('plugin', true);
-		echo gros_titre(_T('icone_admin_plugin'),'',false);
-		echo barre_onglets("plugins", "charger_plugin");
-		// voire si on peut creer le repertoure auto/ sans rien demander
-		sous_repertoire(_DIR_PLUGINS_AUTO, '', true, true);
-		
-		echo "<div class='liste-plugins formulaire_spip'>";
-		include_spip('inc/charger_plugin');
-		echo formulaire_charger_plugin($retour);
-		echo "</div>";
-
-		echo pipeline('affiche_milieu',
-			array(
-			'args'=>array('exec'=>'charger_plugin'),
-			'data'=>''
-			)
-		);
-
-		echo fin_gauche(), fin_page();
-	}
-}
-
-?>
diff --git a/ecrire/exec/charger_plugin_descr.php b/ecrire/exec/charger_plugin_descr.php
deleted file mode 100644
index 66f5786709..0000000000
--- a/ecrire/exec/charger_plugin_descr.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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;
-
-include_spip('inc/plugin');
-
-// Un morceau d'ajax qui affiche le descriptif d'un plugin a partir
-// des listes de plugins a telecharger, dans exec=admin_plugin
-// http://doc.spip.org/@exec_charger_plugin_descr_dist
-
-// http://doc.spip.org/@exec_charger_plugin_descr_dist
-function exec_charger_plugin_descr_dist() {
-	exec_charger_plugin_descr_args( _request('url'));
-}
-
-// http://doc.spip.org/@exec_charger_plugin_descr_args
-function exec_charger_plugin_descr_args($url_plugin) {
-
-	if (!autoriser('configurer', 'plugins') OR !$url_plugin) {
-		include_spip('inc/minipres');
-		echo minipres();
-	} else {
-		include_spip('inc/charger_plugin');
-		include_spip('inc/texte');
-		$liste = liste_plugins_distants($url_plugin);
-		$item = $liste[$url_plugin][2];
-		// les <multi> sont perdus par le lecteur de rss ou le rss lui meme
-		// on les reinsere ici, en attendant mieux
-		
-		$item['titre'] = "<multi>".$item['titre']."</multi>";
-		$item['descriptif'] = "<multi>".$item['descriptif']."</multi>";
-
-		include_spip('inc/presentation');
-		$res = debut_cadre_relief('', true)
-		. recuperer_fond('prive/objets/contenu/plugin_item_rss',$item)
-		. fin_cadre_relief(true);
-		
-		include_spip('inc/actions');
-		ajax_retour($res);
-		/*
-		echo debut_cadre_relief('', true);
-		echo propre('<h3><multi>'
-			.sinon($item['titre'], $liste[$url_plugin][0]).'</multi></h3>'
-			.'<multi>'.$item['descriptif'].'</multi>'
-			.'<p>'.$item['lesauteurs']. '</p> '
-			. ($item['tags']
-				? "<p>".join(' &mdash; ',$item['tags'])."</p>\n"
-				:'')
-			. propre('[->'.$liste[$url_plugin][1].']')
-			);
-		echo fin_cadre_relief(true);*/
-	}
-}
-
-?>
diff --git a/ecrire/exec/info_plugin_distant.php b/ecrire/exec/info_plugin_distant.php
deleted file mode 100644
index 39c66b79ef..0000000000
--- a/ecrire/exec/info_plugin_distant.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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;
-
-include_spip('inc/plugin');
-
-include_spip('inc/actions');
-// http://doc.spip.org/@exec_info_plugin_dist
-function exec_info_plugin_distant_dist() {
-	if (!autoriser('configurer', 'plugins')) {
-		include_spip('inc/minipres');
-		echo minipres();
-	} else {
-		$plug = _request('plugin');
-		include_spip('inc/charger_plugin');
-		include_spip('inc/texte');
-		$liste = liste_plugins_distants($plug);
-		$item = $liste[$plug][2];
-		$afficher_plugin_distant = charger_fonction("afficher_plugin_distant","plugins");
-		ajax_retour(affiche_bloc_plugin_distant($plug, $liste[$plug][2]));
-	}
-}
-
-?>
diff --git a/ecrire/inc/charger_plugin.php b/ecrire/inc/charger_plugin.php
deleted file mode 100644
index bdfa86416f..0000000000
--- a/ecrire/inc/charger_plugin.php
+++ /dev/null
@@ -1,555 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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.   *
-\***************************************************************************/
-
-
-/*
- * Ce fichier est extrait du plugin charge : action charger decompresser
- *
- * Auteur : bertrand@toggg.com
- * © 2007 - Distribue sous licence LGPL
- *
- */
-
-if (!defined('_ECRIRE_INC_VERSION')) return;
-
-include_spip('inc/plugin');
-include_spip('inc/actions');
-
-
-// http://doc.spip.org/@formulaire_charger_plugin
-function formulaire_charger_plugin($retour='') {
-	global $spip_lang_left, $spip_lang_right;
-
-	include_spip('inc/filtres');
-	include_spip('inc/actions');
-	include_spip('inc/presentation');
-
-	// Si defini comme non-existant
-	if (!_DIR_PLUGINS)
-		return '';
-
-	$auto = '';
-	if (_DIR_PLUGINS_AUTO) {
-		if (!@is_dir(_DIR_PLUGINS_AUTO)
-		OR !is_writeable(_DIR_PLUGINS_AUTO)) {
-		  $auto = _T('plugin_info_automatique1')."\n"
-			.'<ol class="spip"><li>'._T('plugin_info_automatique2',array('rep'=>joli_repertoire(_DIR_PLUGINS_AUTO))).'</li>'
-			.'<li>'._T('plugin_info_automatique3').aide("install0")."</li></ol>"
-		  ."\n<p>"._T('plugin_info_automatique_lib')."</p>";
-		}
-
-		if (!$auto)
-			$auto = interface_plugins_auto($retour);
-
-	}
-
-	$message = _T('plugin_info_automatique_ftp',array('rep'=>joli_repertoire(_DIR_PLUGINS)));
-	if (!@is_dir(_DIR_PLUGINS))
-		$message .= " &mdash; "._T('plugin_info_automatique_creer');
-
-	return debut_cadre_trait_couleur("spip-pack-24.png", true, "", _T('plugin_titre_automatique_ajouter'))
-		. "<h3>"._T('plugin_titre_automatique')."</h3>"
-		. "<p>".$message."</p>\n"
-		. $auto
-		. fin_cadre_trait_couleur(true);
-
-}
-
-
-// http://doc.spip.org/@interface_plugins_auto
-function interface_plugins_auto($retour) {
-
-	$res = "<div class='verdana2'>";
-
-	if ($retour) {
-		$res .= "<div>$retour</div>\n";
-	}
-
-	$liste = liste_plugins_distants();
-
-	$message .= '<div class="explication">'._T('plugin_zip_adresse')
-  . '<br />'._T('plugin_info_automatique_exemples').'<ul class="spip">';
-	
-	$les_urls = array('http://plugins.spip.net/paquets-spip3.0');
-	if (isset($GLOBALS['chargeur_urls_rss']) AND is_array($GLOBALS['chargeur_urls_rss']))
-		$les_urls = array_merge($les_urls,$GLOBALS['chargeur_urls_rss']);
-	foreach($les_urls as $url)
-		$message .= "<li><a href='$url' onclick=\"jQuery('#url_zip_plugin2').attr('value',jQuery(this).html()).focus();return false;\">"
-		.$url
-		."</a></li>";
-	$message .= "</ul></div>";
-	
-	$form = "";
-	$form .= "<ul><li class='editer_url_zip_plugin2 obligatoire'>";
-
-	$form .= "<label for='url_zip_plugin2'>"._T('plugin_zip_adresse_champ')."</label>";
-	$form .= $message;
-	$form .= "
-	<input type='text' class='text' id='url_zip_plugin2' name='url_zip_plugin2' value='' size='40' />";
-	$form .= "</li></ul>";
-	$form .=	"<div class='boutons' id='loadrss'><input type='submit' value='"
-		. _T('bouton_valider')
-		.  "'/>\n"
-		.  "</div>\n";
-	$form = redirige_action_post('charger_plugin',
-				'', // arg = 'plugins' / 'lib', a priori
-				'',
-				'',
-				$form);
-	
-	$res .= "<div class='formulaire_spip formulaire_editer'>";
-
-	$res .= $form;
-	$res .= "</div>\n";
-	
-
-	$res .= "</div>\n";
-
-	$res .= afficher_liste_listes_plugins();
-	
-	if ($liste) {
-		$res .= afficher_liste_plugins_distants($liste);
-
-		$menu = array();
-		$compte = 0;
-
-		$res .=
-		http_script("
-	jQuery(function(){
-		jQuery('.plugins li.item a[rel=info]').click(function(){
-			var li = jQuery(this).parents('li').eq(0);
-			if (!jQuery('div.details',li).html()) {
-				jQuery('div.details',li).prepend(ajax_image_searching).load(
-					jQuery(this).attr('href').replace(/admin_plugin|plugins|charger_plugin/, 'info_plugin_distant'), {}, function(){
-						li.addClass('on');
-					}
-				);
-			}
-			else {
-				if (jQuery('div.details',li).toggle().is(':visible'))
-					li.addClass('on');
-				else
-					li.removeClass('on');
-			}
-			return false;
-		});
-	});
-	");
-			
-	}
-	return $res;
-}
-
-function afficher_liste_plugins_distants($liste){
-	$res = "";
-	if (!$liste) return "";
-	
-	$menu = array();
-	$compte = 0;
-
-	$afficher_plugin_distant = charger_fonction('afficher_plugin_distant','plugins');
-	$url_page = self();
-	foreach ($liste as $url => $info) {
-		$titre = $info[0];
-		$titre = strtoupper(trim(typo(translitteration(unicode2charset(html2unicode($titre))))));
-		$menu[$titre] = $afficher_plugin_distant($url_page, $url, $info, _request('plugin')==$url);
-	}
-	ksort($menu);
-
-	$res .=
-		"<h3>"._T('plugins_compte',array('count' => count($menu)))."</h3>"
-	  . '<p>'._T('plugin_info_automatique_select',array('rep'=>joli_repertoire(_DIR_PLUGINS_AUTO))).'</p>'
-		. "<ul class='liste-items plugins distants'>".join("\n",$menu)."</ul>";
-
-	return $res;
-}
-
-// http://doc.spip.org/@chargeur_charger_zip
-function chargeur_charger_zip($quoi = array())
-{
-	if (!$quoi) {
-		return true;
-	}
-	if (is_scalar($quoi)) {
-		$quoi = array('zip' => $quoi);
-	}
-	if (isset($quoi['depot']) || isset($quoi['nom'])) {
-		$quoi['zip'] = $quoi['depot'] . $quoi['nom'] . '.zip';
-	}
-	foreach (array(	'remove' => 'spip',
-					'arg' => 'lib',
-					'plugin' => null,
-					'cache_cache' => null,
-					'rename' => array(),
-					'edit' => array(),
-					'root_extract' => false, # extraire a la racine de dest ?
-					'tmp' => sous_repertoire(_DIR_CACHE, 'chargeur')
-				)
-				as $opt=>$def) {
-		isset($quoi[$opt]) || ($quoi[$opt] = $def);
-	}
-
-
-	# destination finale des fichiers
-	switch($quoi['arg']) {
-		case 'lib':
-			$quoi['dest'] = _DIR_RACINE.'lib/';
-			break;
-		case 'plugins':
-			$quoi['dest'] = _DIR_PLUGINS_AUTO;
-			break;
-		default:
-			$quoi['dest'] = '';
-			break;
-	}
-
-
-	if (!@file_exists($fichier = $quoi['fichier']))
-		return 0;
-
-	include_spip('inc/pclzip');
-	$zip = new PclZip($fichier);
-	$list = $zip->listContent();
-
-	// on cherche la plus longue racine commune a tous les fichiers
-	$max_n = 999999;
-	foreach($list as $n) {
-		$p = array();
-		foreach(explode('/', $n['filename']) as $n => $x) {
-			if ($n>$max_n)
-				continue;
-			$sofar = join('/',$p);
-			$paths[$n][$sofar]++;
-			$p[] = $x;
-		}
-		$max_n = min($n,$max_n);
-	}
-
-	$total = $paths[0][''];
-	$i = 0;
-	while (isset($paths[$i])
-	AND count($paths[$i]) <= 1
-	AND array_values($paths[$i]) == array($total))
-		$i++;
-
-	$racine = $i
-		? array_pop(array_keys($paths[$i-1])).'/'
-		: '';
-
-	$quoi['remove'] = $racine;
-
-	// si pas de racine commune, reprendre le nom du fichier zip
-	// en lui enlevant la racine h+md5 qui le prefixe eventuellement
-	// cf action/charger_plugin L74
-	if (!strlen($nom = basename($racine)))
-		$nom = preg_replace(",^h[0-9a-f]{8}-,i","",basename($fichier, '.zip'));
-
-	$dir_export = $quoi['root_extract']
-		? $quoi['dest']
-		: $quoi['dest'] . $nom.'/';
-
-	$tmpname = $quoi['tmp'].$nom.'/';
-
-	// choisir la cible selon si on veut vraiment extraire ou pas
-	$target = $quoi['extract'] ? $dir_export : $tmpname;
-	// ici, il faut vider le rep cible si il existe deja, non ?
-	if (is_dir($target)){
-		include_spip('inc/invalideur');
-		purger_repertoire($target,array('subdir'=>true));
-	}
-
-	// et enfin on extrait
-	$ok = $zip->extract(
-		PCLZIP_OPT_PATH,
-			$target
-		,
-		PCLZIP_OPT_SET_CHMOD, _SPIP_CHMOD,
-		PCLZIP_OPT_REPLACE_NEWER,
-		PCLZIP_OPT_REMOVE_PATH, $quoi['remove']
-	);
-	if ($zip->error_code < 0) {
-		spip_log('charger_decompresser erreur zip ' . $zip->error_code .
-			' pour paquet: ' . $quoi['zip']);
-		return //$zip->error_code
-			$zip->errorName(true);
-	}
-
-/*
- * desactive pour l'instant
- *
- *
-		if (!$quoi['cache_cache']) {
-			chargeur_montre_tout($quoi);
-		}
-		if ($quoi['rename']) {
-			chargeur_rename($quoi);
-		}
-		if ($quoi['edit']) {
-			chargeur_edit($dir_export, $quoi['edit']);
-		}
-
-		if ($quoi['plugin']) {
-			chargeur_activer_plugin($quoi['plugin']);
-		}
-*/
-
-	spip_log('charger_decompresser OK pour paquet: ' . $quoi['zip']);
-
-
-
-	$size = $compressed_size = 0;
-	$removex = ',^'.preg_quote($quoi['remove'], ',').',';
-	foreach ($list as $a => $f) {
-		$size += $f['size'];
-		$compressed_size += $f['compressed_size'];
-		$list[$a] = preg_replace($removex,'',$f['filename']);
-	}
-
-	// Indiquer par un fichier install.log
-	// a la racine que c'est chargeur qui a installe ce plugin
-	ecrire_fichier($tmpname.'/install.log',
-		"installation: charger_plugin\n"
-		."date: ".gmdate('Y-m-d\TH:i:s\Z', time())."\n"
-		."source: ".$quoi['zip']."\n"
-	);
-
-
-
-	return array(
-		'files' => $list,
-		'size' => $size,
-		'compressed_size' => $compressed_size,
-		'dirname' => $dir_export,
-		'tmpname' => $tmpname
-	);
-}
-
-// pas de fichiers caches et preg_files() les ignore (*sigh*)
-// http://doc.spip.org/@chargeur_montre_tout
-function chargeur_montre_tout($quoi)
-{
-	# echo($quoi['dest']);
-	if (!($d = @opendir($quoi['dest']))) {
-		return;
-	}
-	while (($f = readdir($d)) !== false) {
-		if ($f == '.' || $f == '..' || $f[0] != '.') {
-			continue;
-		}
-		rename($quoi['dest'] . '/' . $f, $quoi['dest'] . '/'. substr($f, 1));
-	}
-}
-
-// renommer des morceaux
-// http://doc.spip.org/@chargeur_edit
-function chargeur_edit($dir, $edit)
-{
-	if (!($d = @opendir($dir))) {
-		return;
-	}
-	while (($f = readdir($d)) !== false) {
-		if ($f == '.' || $f == '..') {
-			continue;
-		}
-		if (is_dir($f = $dir . '/' . $f)) {
-			chargeur_edit($f, $edit);
-		}
-		$contenu = 	file_get_contents($f);
-		if (($change = preg_replace(
-				array_keys($edit), array_values($edit), $contenu)) == $contenu) {
-			continue;
-		}
-		$fw = fopen($f, 'w');
-		fwrite($fw, $change);
-		fclose($fw);
-	}
-}
-
-// renommer des morceaux
-// http://doc.spip.org/@chargeur_rename
-function chargeur_rename($quoi)
-{
-/*
- preg_files() est deficiante pour les fichiers caches, ca aurait pu etre bien pourtant ...
-*/
-	spip_log($quoi);
-	foreach ($quoi['rename'] as $old => $new) {
-		!is_writable($file = $quoi['dest'] . '/' . $old) ||
-			rename($file, $quoi['dest'] . '/'. $new);
-	}
-}
-
-// juste activer le plugin du repertoire $plugin
-// http://doc.spip.org/@chargeur_activer_plugin
-function chargeur_activer_plugin($plugin)
-{
-	spip_log('charger_decompresser activer plugin: ' . $plugin);
-	include_spip('inc/plugin');
-	ecrire_plugin_actifs(array($plugin), false, 'ajoute');
-}
-
-
-// http://doc.spip.org/@liste_fichiers_pclzip
-function liste_fichiers_pclzip($status) {
-	$list = $status['files'];
-
-	$ret = '<b>'._T('plugin_zip_content',array('taille'=>taille_en_octets($status['size']), 'rep'=>$status['dirname'])).'</b>';
-
-	$l .= "<ul style='font-size:x-small;'>\n";
-	foreach ($list as $f) {
-		if (basename($f) == 'svn.revision')
-			lire_fichier($status['tmpname'].'/'.$f,$svn);
-		if ($joli = preg_replace(',^(.*/)([^/]+/?)$,', '<span style="visibility:hidden">\1</span>\2', $f)) {
-			if (!$vu[dirname($f.'x')]++)
-				$l .= "<li>".$f."</li>\n";
-			else
-				$l .= "<li>".$joli."</li>\n";
-		}
-	}
-	$l .= "</ul>\n";
-
-	include_spip('inc/filtres');
-	if (preg_match(',<revision>([^<]+)<,', $svn, $t))
-		$rev = '<div>revision '.$t[1].'</div>';
-	if (preg_match(',<commit>([^<]+),', $svn, $t))
-		$date = '<div>' . affdate($t[1]) .'</div>';
-
-	return $ret . $rev . $date . $l;
-}
-
-// Attention on ne sait pas ce que vaut cette URL
-// http://doc.spip.org/@essaie_ajouter_liste_plugins
-function essaie_ajouter_liste_plugins($url) {
-	if (!preg_match(',^https?://[^.]+\.[^.]+.*/.*[^/]$,', $url))
-		return;
-
-	include_spip('inc/distant');
-	if (!$rss = recuperer_page($url)
-	OR !preg_match(',<item,i', $rss))
-		return;
-
-	$liste = chercher_enclosures_zip($rss,true);
-	if (!$liste)
-		return;
-
-	// Ici c'est bon, on conserve l'url dans spip_meta
-	// et une copie du flux analise dans tmp/
-	ecrire_fichier(_DIR_TMP.'syndic_plug_'.md5($url).'.txt', serialize($liste));
-	$syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']);
-	$syndic_plug[$url] = count($liste);
-	ecrire_meta('syndic_plug', serialize($syndic_plug));
-}
-
-// Recherche les enclosures de type zip dans un flux rss ou atom
-// les renvoie sous forme de tableau url => titre
-// si $desc on ramene aussi le descriptif du paquet desc
-// http://doc.spip.org/@chercher_enclosures_zip
-function chercher_enclosures_zip($rss, $desc = '') {
-	$liste = array();
-	include_spip('inc/syndic');
-	foreach(analyser_backend($rss) as $item){
-		if ($item['enclosures']
-		AND $zips = extraire_balises($item['enclosures'], 'a')){
-			if ($img = extraire_balise($item['descriptif'], 'img')
-			  AND $src = extraire_attribut($img, 'src')) {
-				$item['icon'] = $src;
-			}
-			foreach ($zips as $zip)
-				if (extraire_attribut($zip, 'type') == 'application/zip') {
-					if ($url = extraire_attribut($zip, 'href')) {
-						$liste[$url] = array($item['titre'], $item['url']);
-						if ($desc===true OR $desc == $url)
-							$liste[$url][] = $item;
-					}
-				}
-		}
-	}
-	spip_log(count($liste).' enclosures au format zip');
-	return $liste;
-}
-
-
-// Renvoie la liste des plugins distants (accessibles a travers
-// l'une des listes de plugins)
-// Si on passe desc = un url, ramener le descriptif de ce paquet
-// http://doc.spip.org/@liste_plugins_distants
-function liste_plugins_distants($desc = false) {
-	// TODO une liste multilingue a telecharger
-	$liste = array();
-
-	if (is_array($flux = @unserialize($GLOBALS['meta']['syndic_plug']))) {
-	
-		foreach ($flux as $url => $c) {
-			if (file_exists($cache=_DIR_TMP.'syndic_plug_'.md5($url).'.txt')
-			AND lire_fichier($cache, $rss))
-				$liste = array_merge(unserialize($rss),$liste);
-		}
-	}
-
-	return $liste;
-}
-
-// http://doc.spip.org/@afficher_liste_listes_plugins
-function afficher_liste_listes_plugins() {
-	if (!is_array($flux = @unserialize($GLOBALS['meta']['syndic_plug'])))
-		return '';
-
-	if (count($flux)){
-		$ret = '<h3>'._T('plugin_info_automatique_liste').'</h3><ul class="liste-items">';
-			//$ret .= '<li>'._T('plugin_info_automatique_liste_officielle').'</li>';
-		foreach ($flux as $url => $c) {
-			$a = '<div class="actions">[<a href="'.parametre_url(
-				generer_action_auteur('charger_plugin', 'supprimer_flux'),'supprimer_flux', $url).'">'._T('lien_supprimer').'</a>]</div>';
-			$time = @filemtime(_DIR_TMP.'syndic_plug_'.md5($url).'.txt');
-			$ret .= '<li class="item">'.inserer_attribut(PtoBR(propre("[->$url]")),'title',$url).' ('._T('plugins_compte',array('count' => $c)).') '
-							.($time?"<div class='small'>" . _T('sites:info_derniere_syndication').' '.affdate(date('Y-m-d H:i:s',$time)) ."</div>":'')
-							. $a .'</li>';
-		}
-		$ret .= '</ul>';
-	
-		$ret .= '<div style="text-align:'.$GLOBALS['spip_lang_right'].'"><a href="'.parametre_url(
-										  generer_action_auteur('charger_plugin', 'update_flux'),'update_flux', 'oui').'">'._T('plugin_info_automatique_liste_update').'</a></div>';
-	}
-
-	return $ret;
-}
-
-// Si le chargement auto est autorise, un bouton
-// sinon on donne l'url du zip
-// http://doc.spip.org/@bouton_telechargement_plugin
-function bouton_telechargement_plugin($url, $rep) {
-	// essayer de creer le repertoire lib/ si on en a le droit
-	if (($rep == 'lib') AND !is_dir(_DIR_RACINE . 'lib'))
-		sous_repertoire(_DIR_RACINE . 'lib','',false,true);
-
-	if (($rep == 'lib')?
-			(_DIR_PLUGINS_AUTO AND is_dir(_DIR_RACINE . 'lib')):
-			(_DIR_PLUGINS_AUTO AND @is_dir(_DIR_PLUGINS_AUTO))
-		)
-		$bouton = redirige_action_post('charger_plugin',
-			$rep, // arg = 'lib' ou 'plugins'
-			'',
-			'',
-			"<input type='hidden' name='url_zip_plugin' value='$url' />"
-			."<input type='submit' name='ok' value='"._T('bouton_download')."' />",
-			'class="noajax"');
-	else if ($rep == 'lib'){
-		$bouton = "<div class='info_todo'>"._T('plugin_info_automatique1_lib')."\n"
-		.'<ol><li>'._T('plugin_info_automatique2',array('rep'=>joli_repertoire(_DIR_RACINE . 'lib/'))).'</li>'
-		.'<li>'._T('plugin_info_automatique3').aide("install0")."</li></ol></div>";
-	}
-
-	return _T('plugin_info_telecharger',array('url'=>$url,'rep'=>$rep.'/')).$bouton;
-
-}
-
-?>
diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index 7af6de6d46..6c670acb0a 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -365,10 +365,11 @@ function plugin_controler_necessite($liste, $nom, $version)
 
 function plugin_controler_lib($lib, $url)
 {
-	if ($url) {
+	/* Feature sortie du core, voir STP
+	 * if ($url) {
 		include_spip('inc/charger_plugin');
 		$url = '<br />'	. bouton_telechargement_plugin($url, 'lib');
-	}
+	}*/
 	return _T('plugin_necessite_lib', array('lib'=>$lib)) . $url;
 }
 
diff --git a/ecrire/plugin.xml b/ecrire/plugin.xml
index 6fadd61bf8..7c32e3a50a 100644
--- a/ecrire/plugin.xml
+++ b/ecrire/plugin.xml
@@ -190,19 +190,6 @@ Le programme est n&eacute; en 2001 d'une initiative du minir&eacute;zo, un colle
 		<titre>plugin_titre_modifier</titre>
 		<url>admin_plugin</url>
 	</onglet>
-<!-- 
-	<onglet id='admin_plugin' parent="plugins">
-		<icone>images/plugin-24.png</icone>
-		<titre>plugins_liste</titre>
-		<url>admin_plugin</url>
-		<args>voir=tous</args>
-	</onglet>
- -->
-	<onglet id='charger_plugin' parent="plugins">
-		<icone>images/spip-pack-24.png</icone>
-		<titre>plugin_titre_automatique_ajouter</titre>
-		<url>charger_plugin</url>
-	</onglet>
 
 	<pipeline><nom>accueil_encours</nom><action></action></pipeline>
 	<pipeline><nom>accueil_informations</nom><action></action></pipeline>
diff --git a/ecrire/plugins/afficher_plugin_distant.php b/ecrire/plugins/afficher_plugin_distant.php
deleted file mode 100644
index ed42e651c0..0000000000
--- a/ecrire/plugins/afficher_plugin_distant.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2011                                                *
- *  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;
-include_spip('inc/charsets');
-include_spip('inc/texte');
-
-// http://doc.spip.org/@ligne_plug
-function plugins_afficher_plugin_distant_dist($url_page, $zip_file, $info, $expose=false, $class_li="item"){
-	static $id_input=0;
-	static $versions = array();
-	static $charger_plugin = null;
-
-	$erreur = false;
-	$s = "";
-
-	$titre = $info[0];
-	$url_doc = $info[1];
-	$info = $info[2]; // recuperer le tableau
-
-	$titre = typo('<multi>'.$titre.'</multi>'); // recuperer les blocs multi du flux de la zone (temporaire?)
-	$nick = strtolower(basename($zip_file, '.zip'));
-	$info['prefix'] = $nick;
-	$plug_file = $zip_file;
-	
-	// numerotons les occurences d'un meme prefix
-	$versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : '';
-	$id = $info['prefix'] . $versions[$info['prefix']];
-	
-	$class = $class_li;
-	$class .= $actif?" actif":"";
-	$class .= $expose?" on":"";
-	$erreur = isset($info['erreur']);
-	if ($erreur)
-		$class .= " erreur";
-	$s .= "<li id='$id' class='$class'>";
-
-
-	// checkbox pour activer ou desactiver
-	// si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension)
-	/*
-	if (!$erreur AND $actif>=0){
-		$id_input++;
-		$check = "\n<input type='radio' name='url_zip_plugin' id='label_$id_input' value='O'";
-		$check .= $actif?" checked='checked'":"";
-		$check .= " class='checkbox' />";
-		$check .= "<label for='label_$id_input'>".$titre."</label>";
-		$s .= "<div class='check'>$check</div>";
-	}*/
-
-	if (!$erreur){
-		// bouton de telechargement
-		if (!$charger_plugin)
-			$charger_plugin = generer_action_auteur('charger_plugin',"charger_zip","./");
-		$balise_img = chercher_filtre('balise_img');
-		$action = parametre_url($charger_plugin,'url_zip_plugin',$plug_file);
-		$s .= "<div class='download'>".
-		"<a href='$action' title='"._T('plugin_charger')."'>"
-		. $balise_img(find_in_theme("images/telecharger-16.png"),_T('plugin_charger'))
-		."</a></div>"
-		;
-	}
-
-	// Cartouche Resume
-	$s .= "<div class='resume'>";
-
-	$desc = $info['descriptif'];
-	$url_stat = parametre_url($url_page, "plugin",$plug_file);
-
-	$s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".$titre."</a></h3>";
-	$s .= "<div class='short'>".couper($desc,60)."</div>";
-	if (isset($info['icon']) and $info['icon']) {
-		include_spip("inc/filtres_images_mini");
-		$s.= "<div class='icon'><a href='$url_stat' rel='info'><img src='".$info['icon']."' width='32' height='auto' /></a></div>";
-	}
-	$s .= "</div>";
-
-	if ($erreur){
-		$s .=  "<div class='erreur'>";
-		foreach($info['erreur'] as $err)
-			$s .= "$err <br/>";
-		$s .=  "</div>";
-	}
-
-	// afficher les details d'un plug en secours ; la div sert pour l'ajax
-	$s .= "<div class='details'>";
-	if ($expose)
-		$s .= affiche_bloc_plugin_distant($plug_file, $info);
-	$s .= "</div>";
-
-	$s .= "</li>";
-	return $s;
-}
-
-// http://doc.spip.org/@affiche_bloc_plugin
-function affiche_bloc_plugin_distant($plug_file, $info) {
-	//recuperer_fond('prive/contenu/item_rss_plugin',$item)
-
-	$s = "";
-	if (isset($info['descriptif']))
-		$s .= "<div class='desc'>".$info['descriptif']. "</div>";
-
-	if (isset($info['lesauteurs']) AND trim($info['lesauteurs']))
-		$s .= "<div class='auteurs'>" . _T('public:par_auteur') .' '. $info['lesauteurs'] . "</div>";
-	if (isset($info['licence']))
-		$s .= "<div class='licence'>" . _T('intitule_licence') .' '. $info['licence'] . "</div>";
-
-	if (trim($info['url'])) {
-		$lien = $info['url'];
-		if (!preg_match(',^https?://,iS', $lien))
-			$lien = extraire_attribut(extraire_balise($lien,'a'),'href');
-		$s .= "<div class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') .'</a></div>';
-	}
-
-	//
-	// Ajouter les infos techniques
-	//
-	$infotech = array();
-
-	// source zip le cas echeant
-	$source = _T('plugin_source').' '.trim($plug_file);
-
-	$s .= "<div class='tech'>"
-		. $source
-		."</div>";
-
-
-	return $s;
-}
-?>
-- 
GitLab