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

[new]Gestion de la compression SPIP des JS/CSS en HEAD :

Outil "SPIP et le cache..." : L’extension « Compresseur » présente dans SPIP permet de compacter les différents éléments CSS et Javascript de vos pages et de les placer dans un cache statique. Cela permet de limiter le nombre d’appels sur le serveur et la taille des fichiers à obtenir. 
Options disponibles :
- Compacter les CSS
- Compacter le Javacript
- Ne rien compacter en partie privée
- Ne rien compacter du tout (rend caduques les options précédentes)

[new]Le Couteau Suisse peut désormais gérer des variables externes, comme les métas de SPIP par exemple. Ces variables externes ne sont pas stockées par le Couteau Suisse. Deux paramètres sont nécessaires dans ce cas pour les déclarer : ’externe’ et ’action’. Ceci est un peu équivalent au schéma get/set, appliqué à du code PHP inline. Exemple (outil "SPIP et le cache…") :
1.add_variable( array(
2.        'nom' => 'compacte_js',
3.        'check' => 'Compacter le Javacript',
4.        'externe' => "\$GLOBALS['meta']['auto_compress_js']=='oui'",
5.        'action' => "ecrire_meta('auto_compress_js', %s?'oui':non);",
6.        'code' => '',
7.));
parent 72c04e2b
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+9 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -31,16 +31,21 @@ cs_log($metas_vars, 'metas_vars :');
	// besoin des outils pour l'autorisation de modifier les variables
	include_spip('cout_utils');
	include_spip('config_outils');
	global $outils;
	global $outils, $cs_variables;
	// on traite chaque variable
	foreach($variables as $var) if(autoriser('configurer', 'variable', 0, NULL, array('nom'=>$var, 'outil'=>$outils[$outil]))) {
		// on recupere dans le POST la nouvelle valeur de la variable
		$final = corriger_caracteres(_request($var));
		if (in_array($var, $metas_vars['_nombres'])) $final = intval($final);
		spip_log("Outil du Couteau Suisse ($outil). Demande de modification sur une variable par l'auteur id=$connect_id_auteur : %$var% = $final");
		// et on modifie les metas !
		$metas_vars[$var] = $final;
cs_log(" -- outil $index ($outil) : %$var% prend la valeur '$final'");
		spip_log("Outil du Couteau Suisse n°$index. Modification d'une variable par l'auteur id=$connect_id_auteur : %$var% = $final");
		if(!isset($cs_variables[$var]['externe'])) $metas_vars[$var] = $final;
		if(isset($cs_variables[$var]['action'])) {
			$action = str_replace('%s', $final, $cs_variables[$var]['action']);
			spip_log("Outil du Couteau Suisse ($outil). Demande d'action sur cette variable : ".$action);
			eval($action);
		}
			
	} else 
		spip_log("Outil du Couteau Suisse n°$index. Modification interdite de la variable %$var% par l'auteur id=$connect_id_auteur !!");
//cs_log($metas_vars, " -- metas_vars = ");
+4 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -32,8 +32,10 @@ $metas_vars = isset($GLOBALS['meta']['tweaks_variables'])?unserialize($GLOBALS['
// pour les serveurs qui aiment les virgules...
$GLOBALS['spip_version_code'] = str_replace(',','.',$GLOBALS['spip_version_code']);
// constantes de compatibilite
// (pour info : SPIP 2.0 => 12691, SPIP 2.1 => 15133)
if ($GLOBALS['spip_version_code']>=15133) 
// (pour info : SPIP 2.0 => 12691, SPIP 2.1 => 15133, SPIP 2.2 => 15375)
if ($GLOBALS['spip_version_code']>=15375) 
	{ @define('_SPIP20200', 1); @define('_SPIP20100', 1); @define('_SPIP19300', 1); @define('_SPIP19200', 1); }
elseif ($GLOBALS['spip_version_code']>=15133) 
	{ @define('_SPIP20100', 1); @define('_SPIP19300', 1); @define('_SPIP19200', 1); }
elseif (version_compare($GLOBALS['spip_version_code'],'1.9300','>=')) 
	{ @define('_SPIP19300', 1); @define('_SPIP19200', 1); }
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -140,6 +140,7 @@ function cs_get_defaut($variable) {
		return false;
	}
	$variable = &$cs_variables[$variable];
	if(isset($variable['externe'])) $variable['defaut'] = $variable['externe'];
	$defaut = function_exists($f='initialiser_variable_'.$variable['nom'])?$f()
		:(!isset($variable['defaut'])?'':$variable['defaut']);
	if(!strlen($defaut)) $defaut = "''";
+6 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -913,6 +913,12 @@ _ • {Cache permanent} : les délais d\'invalidation du cache sont ign
_ • {Pas de cache} : désactiver temporairement le cache peut aider au développement du site. Ici, rien n\'est stocké sur le disque.

_ &bull; {Contr&ocirc;le du cache} : option identique &agrave; la pr&eacute;c&eacute;dente, avec une &eacute;criture sur le disque de tous les r&eacute;sultats afin de pouvoir &eacute;ventuellement les contr&ocirc;ler.</q1>[[%radio_desactive_cache4%]]',
'spip_cache:description3' => '@puce@ L\'extension « Compresseur » pr&eacute;sente dans SPIP permet de compacter les diff&eacute;rents &eacute;l&eacute;ments CSS et Javascript de vos pages et de les placer dans un cache statique. Cela acc&eacute;l&egrave;re l\'affichage du site, et limite le nombre d\'appels sur le serveur et la taille des fichiers &agrave; obtenir.',
	'label:compacte_css' => 'Compression du HEAD :',
	'compacte_tout' => 'Ne rien compacter du tout (rend caduques les options pr&eacute;c&eacute;dentes)',
	'compacte_prive' => 'Ne rien compacter en partie priv&eacute;e',
	'compacte_js' => 'Compacter le Javacript',
	'compacte_css' => 'Compacter les CSS',
	'spip_cache:nom' => 'SPIP et le cache&hellip;',
	'spip_ecran:description' => 'D&eacute;termine la largeur d\'&eacute;cran impos&eacute;e &agrave; tous en partie priv&eacute;e. Un &eacute;cran &eacute;troit pr&eacute;sentera deux colonnes et un &eacute;cran large en pr&eacute;sentera trois. Le r&eacute;glage par d&eacute;faut laisse l\'utilisateur choisir, son choix &eacute;tant stock&eacute; dans un cookie.[[%spip_ecran%]]',
	'spip_ecran:nom' => 'Largeur d\'&eacute;cran',
+32 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -9,10 +9,16 @@ function outils_spip_cache_config_dist() {
// Ajout de l'outil 'spip_cache'
add_outil(array(
	'id' => 'spip_cache',
	'code:spip_options' => "%%radio_desactive_cache".(defined('_SPIP19300')?'4':'3')
	'code:options' => defined('_SPIP19300')?'%%compacte_css%%%%compacte_js%%':'',
	'code:spip_options' => "%%radio_desactive_cache"
		.(defined('_SPIP19300')?'4%%%%compacte_prive%%%%compacte_tout':'3')
		."%%%%duree_cache%%%%duree_cache_mutu%%%%quota_cache%%%%derniere_modif_invalide%%",
	'categorie' => 'admin',
	'description' => (defined('_SPIP19300')?'<:spip_cache:2:>':'<:spip_cache:1:>').'<:spip_cache::>',
	'description' => 
		(defined('_SPIP19300')
			?'<:spip_cache:2:><:spip_cache::><:spip_cache:3:> [[%compacte_css%]][[->%compacte_js%]][[->%compacte_prive%]]'
				.(defined('_SPIP20200')?'[[->%compacte_tout%]]':'')
			:'<:spip_cache:1:><:spip_cache::>'),
));

// Ajout des variables utilisees ci-dessus
@@ -65,6 +71,30 @@ array(
	'radio' => array(0 => 'item_oui', 1 => 'item_non'),
	'defaut' => 0,
	'code:%s' => "\$GLOBALS['derniere_modif_invalide']=false;\n",
), array(
	'nom' => 'compacte_tout',
	'check' => 'couteauprive:compacte_tout',
	'defaut' => 0,
	'code:%s' => "define('_INTERDIRE_COMPACTE_HEAD',1);\n",
), array(
	'nom' => 'compacte_prive',
	'check' => 'couteauprive:compacte_prive',
	'defaut' => 0,
	'code:%s' => "define('_INTERDIRE_COMPACTE_HEAD_ECRIRE',1);\n",
), array(
	'nom' => 'compacte_css',
	'check' => 'couteauprive:compacte_css',
	// variable externe au Couteau Suisse
	'externe' => "\$GLOBALS['meta']['auto_compress_css']=='oui'",
	// action lors d'un changement de valeur
	'action' => "ecrire_meta('auto_compress_css', %s?'oui':non);",
	'code' => '',
), array(
	'nom' => 'compacte_js',
	'check' => 'couteauprive:compacte_js',
	'externe' => "\$GLOBALS['meta']['auto_compress_js']=='oui'",
	'action' => "ecrire_meta('auto_compress_js', %s?'oui':non);",
	'code' => '',
));

}
Chargement en cours