Valider 82bc5631 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

SPIP est un plugin presque comme les autres : navigation.xml devient core.xml,...

SPIP est un plugin presque comme les autres : navigation.xml devient core.xml, qui pourra aussi contenir des declarations de pipeline.
On supprime le traitement derogatoire de ce fichier pour la construction du bandeau d'icones, en le compilant avec les autres plugin.xml
On pourrait aussi y definir la version de SPIP, mais pour l'instant on garde l'info dans inc_version, et on la reinjecte juste apres lecture de core.xml pour eviter de devoir l'ecrire dans deux fichiers.
parent a6a5b5fe
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -439,6 +439,7 @@ prive/contenu/item_rss_plugin.html -text
prive/contenu/rubrique.html -text
prive/contenu/site.html -text
prive/contenu/syndic_article.html -text
prive/core.xml -text
prive/editer/article.html -text
prive/editer/auteur.html -text
prive/editer/breve.html -text
@@ -765,7 +766,6 @@ prive/modeles/paginationitem.html -text
prive/modeles/text.html -text
prive/modeles/typo.html -text
prive/modeles/video.html -text
prive/navigation.xml -text
prive/puce_prive.gif -text
prive/puce_prive_rtl.gif -text
prive/rss.html -text
+2 −23
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -30,27 +30,6 @@ function definir_barre_contexte(){
	return $contexte;
}

/**
 * Construire le tableau qui correspond aux boutons du core
 * decrits dans prive/navigation.xml
 *
 */
function boutons_core($type='bouton'){
	static $ret=null;
	if (!in_array($type,array('bouton','onglet')))
		return array();
	if (
		!is_array($ret)
		/*OR $GLOBALS['var_mode']='recalcul'*/){
		$extraire_boutons = charger_fonction('extraire_boutons','plugins');
		include_spip('inc/xml');
		$xml = spip_xml_load(find_in_path("prive/navigation.xml"));
		$ret = $extraire_boutons($xml);
	}

	return $ret[$type];
	}

/**
 * definir la liste des boutons du haut et de ses sous-menus
 * On defini les boutons a metrtre selon les droits de l'utilisateur
@@ -67,12 +46,12 @@ function definir_barre_boutons($contexte=array(),$icones = true, $autorise = tru
	$boutons_admin=array();

	// les boutons du core, issus de prive/navigation.xml
	$liste_boutons = boutons_core();
	$liste_boutons = array();

	// ajouter les boutons issus des plugin via plugin.xml
	if (function_exists('boutons_plugins')
	  AND is_array($liste_boutons_plugins = boutons_plugins()))
		$liste_boutons = $liste_boutons + $liste_boutons_plugins;
		$liste_boutons = &$liste_boutons_plugins;

	foreach($liste_boutons as $id => $infos){
		// les boutons principaux ne sont pas soumis a autorisation
+4 −7
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -98,15 +98,12 @@ function definir_barre_onglets($script) {
		$onglets = $f();
	else  $onglets=array();

	// les onglets du core, issus de prive/navigation.xml
	include_spip('inc/bandeau');
	$liste_onglets = boutons_core('onglet');
	$liste_onglets = array();

	// ajouter les onglets issus des plugin via plugin.xml
	if (function_exists('onglets_plugins')){
		$liste_onglets_plugins = onglets_plugins();
		$liste_onglets = $liste_onglets + $liste_onglets_plugins;
	}
	if (function_exists('onglets_plugins'))
		$liste_onglets = onglets_plugins();


	foreach($liste_onglets as $id => $infos){
		if (($parent = $infos['parent'])
+30 −28
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -129,18 +129,8 @@ function erreur_necessite($n, $liste) {
	foreach($n as $need){
		$id = strtoupper($need['id']);

		// Necessite SPIP version x ?
		if ($id=='SPIP') {
			if (!plugin_version_compatible($need['version'],
			$GLOBALS['spip_version_branche'])) {
				$msg[] = _T('plugin_necessite_spip', array(
					'version' => $need['version']
				));
			}
		}

		// Necessite une librairie ?
		else if (preg_match(',^(lib):(.*),i', $need['id'], $r)) {
		if (preg_match(',^(lib):(.*),i', $need['id'], $r)) {
			$lib = trim($r[2]);
			if (!find_in_path('lib/'.$lib)) {
				$lien_download = '';
@@ -158,9 +148,11 @@ function erreur_necessite($n, $liste) {
		else if (!isset($liste[$id])
		OR !plugin_version_compatible($need['version'],$liste[$id]['version'])
		) {
			$msg[] =  _T('plugin_necessite_plugin', array(
			$msg[] =  ($id=='SPIP'?_T('plugin_necessite_spip', array(
					'version' => $need['version']))
							:_T('plugin_necessite_plugin', array(
				'plugin' => $id,
				'version' => $need['version']));
				'version' => $need['version'])));
		}
	}

@@ -183,11 +175,21 @@ function liste_plugin_valides($liste_plug, $force = false){
		'_DIR_EXTENSIONS'=>$liste_extensions,
		'_DIR_PLUGINS'=>$liste_plug
	);

	// creer une premiere liste non ordonnee mais qui ne retient
	// que les plugins valides, et dans leur derniere version en cas de doublon
	$liste_non_classee = array();

	$get_infos = charger_fonction('get_infos','plugins');
	$infos['_DIR_RESTREINT'][''] = $get_infos($plug,$force,_DIR_RACINE.'prive/','core.xml');
	$infos['_DIR_RESTREINT']['SPIP']['version'] = $GLOBALS['spip_version_branche'];
	$infos['_DIR_RESTREINT']['SPIP']['path'] = array();
	$liste_non_classee = array('SPIP'=>array(
		'nom' => 'SPIP',
		'etat' => 'stable',
		'version' => $GLOBALS['spip_version_branche'],
		'dir_type' => '_DIR_RESTREINT',
		'dir'=> '',
	)
	);

	foreach($listes as $dir_type=>$l){
		foreach($l as $k=>$plug) {
@@ -382,10 +384,9 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
		}

		// ajouter les boutons automatiques de configuration
		include_spip('inc/bandeau');
		include_spip('inc/config');
		// on passe la liste des boutons existants pour eviter double entree
		$liste_boutons = $liste_boutons+lister_configurer(boutons_core('bouton')+boutons_core('onglet')+$liste_boutons);
		$liste_boutons = $liste_boutons+lister_configurer($liste_boutons+$liste_onglets);
	}

	// generer les fichier
@@ -409,6 +410,7 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
				if ($charge=='chemins'){
					$prefix = strtoupper(preg_replace(',\W,','_',$info['prefix']));
					$splugs .= "define('_DIR_PLUGIN_$prefix',$dir);\n";
					if (count($info['path']))
						foreach($info['path'] as $chemin){
							if (!isset($chemin['version']) OR plugin_version_compatible($chemin['version'],$GLOBALS['spip_version_branche'])){
								$dir = $chemin['dir'];
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -52,7 +52,7 @@ function plugins_get_infos_dist($plug, $force_reload=false, $dir_plugins = _DIR_
	include_spip('inc/xml');
	$arbre = ($time < 0) ? false : spip_xml_load($desc);
	$verifie_conformite = charger_fonction('verifie_conformite','plugins');
	$verifie_conformite($plug, $arbre, $dir_plugins);
	$verifie_conformite($plug, $arbre, $dir_plugins, $filename);

	include_spip('inc/charsets');

Chargement en cours