Valider 0375a321 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Support de la balise <chemin> dans paquet.xml :

- ne prenait pas en charge plusieurs balises
- ne marchait pas car l'attribut path ne correspondait pas a l'argument dir cherché ensuite

On corrige l'analyse de paquet.xml, et on aligne tout sur la syntaxe du paquet.xml, en transposant le 'dir' en 'path' dans l'analyse de plugin.xml
Par ailleurs on termine bien le path par un / et on reconnait que './' est le repertoire courant et peut etre remplacé par ''
parent 72cc38fd
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -465,8 +465,10 @@ function plugins_precompile_chemin($plugin_valides, $ordre)
				$contenu .= "define('_DIR_PLUGIN_$prefix',$dir);\n";
				foreach($info['chemin'] as $chemin){
					if (!isset($chemin['version']) OR plugin_version_compatible($chemin['version'],$GLOBALS['spip_version_branche'])){
						$dir = $chemin['dir'];
						$dir = $chemin['path'];
						if (strlen($dir) AND $dir{0}=="/") $dir = substr($dir,1);
						if (strlen($dir) AND $dir=="./") $dir = '';
						if (strlen($dir)) $dir = rtrim($dir,'/').'/';
						if (!isset($chemin['type']) OR $chemin['type']=='public')
							$chemins['public'][]="_DIR_PLUGIN_$prefix".(strlen($dir)?".'$dir'":"");
						if (!isset($chemin['type']) OR $chemin['type']=='prive')
+20 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -43,7 +43,7 @@ function plugins_infos_paquet($desc, $plug = '', $dir_plugins = _DIR_PLUGINS) {
		$tree['description'] = $tree['prefix']."_description";
		paquet_readable_files($tree, "$dir_plugins$plug/");
		if (!$tree['chemin'])
			$tree['chemin'] = array(array('dir' => '')); // initialiser par defaut
			$tree['chemin'] = array(array('path' => '')); // initialiser par defaut

		// On verifie qu'il existe des balises spip qu'il faudrait rajouter dans
		// la structure d'infos du paquet en fonction de la version spip courante
@@ -195,6 +195,25 @@ function info_paquet_licence($phraseur, $attrs, $texte) {
	$phraseur->versions[$n]['licence'][] = array('nom' => $texte, 'url' => $lien);
}

/**
 * Cas particulier de la balise chemin :
 * stocker un tableau
 *
 * @param object $phraseur
 * @param array $attrs
 * @param string $texte
 */
function info_paquet_chemin($phraseur, $attrs, $texte) {
	$n = $phraseur->contenu['compatible'];
	if (isset($attrs['path'])){
		if (isset($attrs['type']))
			$phraseur->versions[$n]['chemin'][] = array('path' => $attrs['path'], 'type' => $attrs['type']);
		else
			$phraseur->versions[$n]['chemin'][] = array('path' => $attrs['path']);
	}
}


/**
 * Cas particulier de la balise auteur
 * peupler le mail si besoin (en le protegeant, mais est-ce bien la place pour cela ?)
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -150,6 +150,7 @@ function plugins_verifie_conformite_dist($plug, &$arbre, $dir_plugins = _DIR_PLU
		if (spip_xml_match_nodes(',^chemin,',$arbre,$paths)){
			foreach(array_keys($paths) as $tag){
				list($tag,$att) = spip_xml_decompose_tag($tag);
				$att['path'] = $att['dir']; // ancienne syntaxe
				$path[] = $att;
			}
		}