Valider 7963c486 rédigé par patfr@ifrance.com's avatar patfr@ifrance.com
Parcourir les fichiers

Fichiers distants : prise en compte du préfixe

Installation et MAJ du Couteau Suisse : plus bavarde sous SPIP3 et possibilités de mises à jour forcée des fichiers distants d'un outil
Mises à jour automatiques : liste des plugins vérouillés (ex-extensions)
+ en attendant d'utiliser SVP, retour de la méthode SPIP2 de mise à jour
parent 8aaa4797
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+9 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1325,17 +1325,18 @@ add_outil( array(
	'code:jq_init' => 'jclock_init.apply(this);',
));

add_outil(defined('_SPIP20100')?array(
	'id' => 'maj_auto',
	'categorie' => 'securite',
	'contrib' => 3223,
):array(
	'id' => 'maj_auto',
	'categorie' => 'securite',
$cs_temp = defined('_SPIP30000')?array(
	'distant_action' => 'http://core.spip.org/projects/spip/repository/raw/branches/spip-2.1/ecrire/action/charger_plugin.php',
	'distant_inc' => 'http://core.spip.org/projects/spip/repository/raw/branches/spip-2.1/ecrire/inc/charger_plugin.php',
):(defined('_SPIP20100')?array():array(
	'version-min' => '1.9300',
	'contrib' => 3223,
	'distant' => 'http://core.spip.org/projects/spip/repository/raw/branches/spip-2.1/ecrire/genie/mise_a_jour.php',
));
add_outil(array_merge(array(
	'id' => 'maj_auto',
	'categorie' => 'securite',
	'contrib' => 3223,
), $cs_temp));

// reglage des differents selecteurs en partie privee
add_outil( array(
+12 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -85,7 +85,7 @@ if($log) cs_log($rand.($forcer?"\$forcer = true":"cs_initialisation($forcer) : S
		if(isset($o['actif']) && $o['actif'] && !isset($outils[$nom])) 
			unset($metas_outils[$nom]);
	ecrire_meta('tweaks_actifs', serialize($metas_outils));
	ecrire_metas();
	ecrire_metas(); # Pour SPIP 1.92
	// stocker les types de variables declarees
	global $cs_variables;
	$metas_vars['_chaines'] = $cs_variables['_chaines'];
@@ -109,14 +109,23 @@ if($log) cs_log("$rand -- cs_initialise_includes()... couteau_suisse_fonctions.p
	cs_verif_FILE_OPTIONS($metas_outils['cs_comportement']['actif'] && $metas_vars['spip_options_on'], true);
	// sauver la configuration
	cs_sauve_configuration();
	// en metas : outils actifs
if($log) cs_log("$rand -- ecriture metas");
	// en metas : outils actifs
	ecrire_meta('tweaks_actifs', serialize($metas_outils));
	// en metas : variables d'outils
	ecrire_meta('tweaks_variables', serialize($metas_vars));
	// en metas : code inline pour les pipelines, mes_options et mes_fonctions;
	ecrire_meta('tweaks_pipelines', serialize($cs_metas_pipelines));
	ecrire_metas();
	// maj forcee des fichiers distants ?
	$test = 0;
 	foreach($metas_outils as $nom=>$o) 
		if(isset($o['actif']) && $o['actif'] && isset($o['maj_distant']) && $o['maj_distant']) {
			cs_action_fichiers_distants($outils[$nom], true, true);
			$metas_outils[$nom]['maj_distant'] = 0;
			$test = 1;
		}
	if($test) ecrire_meta('tweaks_actifs', serialize($metas_outils));
	ecrire_metas(); # Pour SPIP 1.92
	$GLOBALS['cs_init'] = 0;
if($log) cs_log("{$rand}cs_initialisation($forcer) : Sortie");
}
+12 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -207,6 +207,12 @@ if(defined('_LOG_CS')) cs_log("$nb pipeline(s) actif(s) : strlen=".strlen($contr
		'<'."?php\n// Code de controle pour le plugin 'Couteau Suisse' : $nb pipeline(s) actif(s)\n{$controle}?".'>');
}

// basename sans argument
function cs_basename($file, $suffix=null) {
	preg_match('/[^?]*/', $file, $reg); 
	return basename($reg[0], $suffix);
}

// est-ce que $pipe est un pipeline ?
function is_pipeline_outil($pipe, &$set_pipe) {
	if($ok=(strncmp('pipeline:', $pipe, 9)==0)) $set_pipe = trim(substr($pipe, 9));
@@ -375,8 +381,9 @@ function cs_initialise_includes($count_metas_outils) {
					// module a inclure
					if(find_in_path("outils/$inc.php"))
						$infos_pipelines[$pipe2]['inclure'][] = "outils/$inc";
					if(isset($outil['distant_pipelines']) && find_in_path("lib/$inc/distant_".basename($outil['distant_pipelines'])))
						$infos_pipelines[$pipe2]['inclure'][] = "lib/$inc/distant_".basename($outil['distant_pipelines'],'.php');
					// inclusion du fichier des pipelines distants. TODO : inclusion mieux ciblee
					if(isset($outil['distant_pipelines']))
						$infos_pipelines[$pipe2]['inclure'][] = "lib/$inc/distant_pipelines_".cs_basename($outil['distant_pipelines'], '.php');
					// fonction a appeler
					$infos_pipelines[$pipe2]['fonction'][] = $fonc;
				} elseif(is_pipeline_outil_inline($pipe, $pipe2)) {
@@ -393,7 +400,7 @@ function cs_initialise_includes($count_metas_outils) {
				// le code est mis de cote. il sera compile plus tard au moment du pipeline grace a cs_compile_header()
				if($file=find_in_path("outils/$inc.$f.html")) { lire_fichier($file, $ff); ${'temp_'.$f.'_html'}[] = $ff; }
				// TODO : librairies distantes placees dans lib/
/*				if(isset($outil['distant_'.$type]) && ($file=find_in_path("lib/$inc/distant_{$f}_".basename($outil["distant_$f"])))) etc. */
/*				if(isset($outil['distant_'.$f]) && ($file=find_in_path("lib/$inc/distant_{$f}_".cs_basename($outil["distant_$f"])))) etc. */
			}
			// recherche d'un code inline eventuellement propose
			if(isset($outil['code:spip_options'])) $infos_fichiers['code_spip_options'][] = $outil['code:spip_options'];
@@ -407,7 +414,7 @@ function cs_initialise_includes($count_metas_outils) {
			// TODO : librairies distantes placees dans lib/
			foreach(array('options', 'fonctions') as $f) {
				if($temp=cs_lire_fichier_php("outils/{$inc}_{$f}.php")) $infos_fichiers['code_'.$f][] = $temp;
/*				if(isset($outil['distant_'.$f]) && find_in_path("lib/$inc/distant_{$f}_".basename($outil["distant_$f"])))
/*				if(isset($outil['distant_'.$f]) && find_in_path("lib/$inc/distant_{$f}_".cs_basename($outil["distant_$f"])))
					if($temp=cs_lire_fichier_php("lib/$inc/distant_{$f}_$outil[distant_$f].php")) 
						$infos_fichiers['code_'.$f][] = $temp;
*/			}
+9 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -56,7 +56,7 @@ function couteau_suisse_vider_tables($nom_meta_base_version) {

// installation des tables du plugin et mises a jour
function couteau_suisse_upgrade($nom_meta_base_version, $version_cible){
if(defined('_LOG_CS')) cs_log("cout_upgrade($nom_meta_base_version, $version_cible)");
if(defined('_LOG_CS')) cs_log("cout_upgrade : $nom_meta_base_version => $version_cible");
	$current_version = 0.0;
	if(	(!isset($GLOBALS['meta'][$nom_meta_base_version]))
			|| (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
@@ -89,12 +89,18 @@ if(defined('_LOG_CS')) cs_log("cout_upgrade($nom_meta_base_version, $version_cib
				effacer_meta($meta);
			ecrire_meta($nom_meta_base_version, $current_version=$tmp);
		}
		if (version_compare($current_version, $tmp='1.1','<')){
		if (version_compare($current_version, $tmp='1.2','<')){
			echo '<h4>',_T('couteau:titre'),' - Upgrade ',$tmp,'</h4>';
			effacer_meta('tweaks_contribs');
			// MAJ forcee de certains fichiers distants
			$outils = isset($GLOBALS['meta']['tweaks_actifs'])?unserialize($GLOBALS['meta']['tweaks_actifs']):array();
			$outils['previsualisation']['maj_distant'] = 1;
			$outils['masquer']['maj_distant'] = 1;
			$outils['maj_auto']['maj_distant'] = 1;
			ecrire_meta('tweaks_actifs', serialize($outils));
			ecrire_meta($nom_meta_base_version, $current_version=$tmp);
		}
		ecrire_metas();
		ecrire_metas(); # Pour SPIP 1.92
	}
}

+11 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -284,4 +284,15 @@ function cs_nettoie(&$flux) {
	return preg_replace(',<pp>\s*</p>,', '', preg_replace(','._CS_HTMLX.',', '', $flux));
}

if(defined('_SPIP30000')) {
// Compatibilite temporaire, methode SPIP2 pour SPIP3
function action_charger_plugin() {
//	include_spip('inc/minipres'); die(minipres('Partie en développement.<br/>Mettre &agrave; jour votre plugin prochainement.'));
	// extraction automatique
	//$_POST['extract'] = 'oui';
	// lancement de la maj
	if(include_spip('lib/maj_auto/distant_action_charger_plugin') && include_spip('lib/maj_auto/distant_inc_charger_plugin'))
		action_charger_plugin_dist();
}}

?>
 No newline at end of file
Chargement en cours