[SPIP Zone] [Spip-zone-commit] r23007 - in /_plugins_/_stable_/couteau_suisse: config_outils.php cout_lancement.php cout_options.php cout_utils.php fonds/en_travaux.html fonds/en_travaux2.html inc/cs_outils.php

Dangereux et contraire à l'esprit même des plugins :
si c'est pour intervenir à la main dans mes_options et mes_fonctions, autant publier une contrib ...

Ca cassera des sites à l'activation et à la desactivation du plugin etc...

Cette version est à bannir de vos besaces ou a tout le moins utilisez la en connaissance de cause et ne venez pas vous plaindre apres !

Cédric

Le 7 oct. 08 à 18:40, patfr@ifrance.com a écrit :

Author: patfr@ifrance.com
Date: Tue Oct 7 18:40:10 2008
New Revision: 23007

Log:
Attention : dépôt peu anodin.

On ajoute ici un 3ème fichier précompilé : tmp/couteau-suisse/config_mes_options.php
Ce fichier est un morceau de code (uniquement des définitions de globales ou de constantes) permettant de piloter SPIP au plus haut dans le déroulement des choses.
-> règle le bug (terme à confirmer ?) des urls qui ne sont désormais plus pilotables par les plugins - Ex : define('_SPIP_SCRIPT', "");
-> sécurise la compilation des traitements de balise en amont ($GLOBALS['table_des_traitements'])
-> peut stabiliser la configuration du plugin, alors que des courts-circuits volatils ont lieu régulièrement (avec les appels aux fonds par exemple, ou peut-être aux chaînes de langues, aux générations d'urls, etc.), pouvant entraîner alors un appel des fonctions avant la fin des options et créer des erreurs bloquantes.

En résumé :
  - config_mes_options.php s'insère dans config/mes_options et gère les paramètres SPIP et les hautes variables du plugin
  - mes_options.php gère les paramètres usuels des outils du couteau suisse, respectant la hiérarchie des plugins
  - mes_fonctions.php contient tout le matériel nécessaire à la compilation des pages de squelette.

Fonctionnement :

Le Couteau Suisse tente de placer un include dans le fichier config/mes_options.php
S'il n'y arrive pas, le fichier config_mes_options.php est alors simplement appelé par mes_options (fonctionnement antérieur)
Un avertissement pourra à l'avenir avertir l'utilisateur de cette procédure, l'invitant éventuellement à placer à la main le code d'inclusion permettant au Couteau Suisse de fonctionner de façon optimale.

Testé sous SPIP 2.0 avec succès.

J'ouvre une porte. A suivre donc.

Added:
    _plugins_/_stable_/couteau_suisse/fonds/en_travaux2.html (contents, props changed)
      - copied, changed from r21791, _plugins_/_stable_/couteau_suisse/fonds/en_travaux.html
Modified:
    _plugins_/_stable_/couteau_suisse/config_outils.php
    _plugins_/_stable_/couteau_suisse/cout_lancement.php
    _plugins_/_stable_/couteau_suisse/cout_options.php
    _plugins_/_stable_/couteau_suisse/cout_utils.php
    _plugins_/_stable_/couteau_suisse/fonds/en_travaux.html
    _plugins_/_stable_/couteau_suisse/inc/cs_outils.php

Modified: _plugins_/_stable_/couteau_suisse/config_outils.php

--- _plugins_/_stable_/couteau_suisse/config_outils.php (original)
+++ _plugins_/_stable_/couteau_suisse/config_outils.php Tue Oct 7 18:40:10 2008
@@ -62,7 +62,7 @@

add_outil( array(
   'id' => 'spip_cache',
- 'code:options' => "%%radio_desactive_cache3%%%%duree_cache%%%%duree_cache_mutu%%%%quota_cache%%%%exceptions_cache%%",
+ 'code:config_options' => "%%radio_desactive_cache3%%%%duree_cache%%%%duree_cache_mutu%%%%quota_cache%%%%exceptions_cache%%",
   'categorie' => 'admin',
   'pipelinecode:insert_head' => 'if(defined(\'_cache_PERSO\')) cs_fixe_cache($GLOBALS[\'delais\']);'
));
@@ -77,7 +77,7 @@
));
add_outil( array(
   'id' => 'dossier_squelettes',
- 'code:options' => '%%dossier_squelettes%%',
+ 'code:config_options' => '%%dossier_squelettes%%',
   'categorie' => 'admin',
));

@@ -113,13 +113,13 @@
));
add_outil( array(
   'id' => 'paragrapher2',
- 'code:options' => '%%paragrapher%%',
+ 'code:config_options' => '%%paragrapher%%',
   'categorie' => 'admin',
));

add_outil( array(
   'id' => 'forcer_langue',
- 'code:options' => "\$GLOBALS['forcer_lang']=true;",
+ 'code:config_options' => "\$GLOBALS['forcer_lang']=true;",
   'categorie' => 'public',
));

@@ -177,7 +177,7 @@

add_outil( array(
   'id' => 'simpl_interface',
- 'code:options' => "@define('_ACTIVER_PUCE_RAPIDE', false);",
+ 'code:config_options' => "@define('_ACTIVER_PUCE_RAPIDE', false);",
   'categorie' => 'interface',
   'version-min' => '1.9300',
));
@@ -264,7 +264,7 @@
));
add_outil( array(
   'id' => 'type_urls',
- 'code:options' => "%%radio_type_urls3%%%%spip_script%%%%url_arbo_minuscules%%%%url_arbo_sep_id%%%%urls_arbo_sans_type%%%%terminaison_urls_arbo%%",
+ 'code:config_options' => "%%radio_type_urls3%%%%spip_script%%%%url_arbo_minuscules%%%%url_arbo_sep_id%%%%urls_arbo_sans_type%%%%terminaison_urls_arbo%%",
   'categorie' => 'admin',
));

@@ -294,7 +294,7 @@
));
add_outil( array(
   'id' => 'forum_lgrmaxi',
- 'code:options' => "%%forum_lgrmaxi%%",
+ 'code:config_options' => "%%forum_lgrmaxi%%",
   'categorie' => 'admin',
   'version-min' => '1.9200',
));
@@ -340,13 +340,13 @@

add_outil( array(
   'id' => 'no_IP',
- 'code:options' => '$ip = substr(md5($ip),0,16);',
+ 'code:config_options' => '$ip = substr(md5($ip),0,16);',
   'categorie' => 'admin',
));

add_outil( array(
   'id' => 'flock',
- 'code:options' => "@define('_SPIP_FLOCK',false);",
+ 'code:config_options' => "@define('_SPIP_FLOCK',false);",
   'categorie' => 'admin',
   'version-min' => '1.9300',
));

Modified: _plugins_/_stable_/couteau_suisse/cout_lancement.php

--- _plugins_/_stable_/couteau_suisse/cout_lancement.php (original)
+++ _plugins_/_stable_/couteau_suisse/cout_lancement.php Tue Oct 7 18:40:10 2008
@@ -95,8 +95,10 @@
   // installer $cs_metas_pipelines
   $cs_metas_pipelines = array();
cs_log("$rand -- cs_initialise_includes()... cout_fonctions.php sera probablement inclus.");
- // creer les includes (mes_options et mes_fonctions) et le fichier de controle pipelines.php
+ // creer les includes (config/mes_options, mes_options et mes_fonctions) et le fichier de controle pipelines.php
   cs_initialise_includes(count($metas_outils));
+ // verifier le fichier d'options _FILE_OPTIONS (ecrire/mes_options.php ou config/mes_options.php)
+ cs_verif_FILE_OPTIONS(true);
   // sauver la configuration
   cs_sauve_configuration();
   // en metas : outils actifs

Modified: _plugins_/_stable_/couteau_suisse/cout_options.php

--- _plugins_/_stable_/couteau_suisse/cout_options.php (original)
+++ _plugins_/_stable_/couteau_suisse/cout_options.php Tue Oct 7 18:40:10 2008
@@ -1,5 +1,6 @@
<?php
// Ce fichier est charge a chaque hit //
+echo "cout_options CS !:", _SPIP_SCRIPT, ' - ';

// Compatibilites
if (version_compare($GLOBALS['spip_version_code'],'1.9300','>=')) @define('_SPIP19300', 1);
@@ -85,32 +86,43 @@
      ) define('_CS_PRINT', 1);

   // test sur le fichier a inclure ici
- $cs_exists = file_exists($f_cs = _DIR_CS_TMP.'mes_options.php');
+ $cs_exists = file_exists($f_mo = _DIR_CS_TMP.'mes_options.php');
+ if(!$GLOBALS['cs_config_options']) $cs_exists |= file_exists($f_mco = _DIR_CS_TMP.'mes_config_options.php');

   // fonctions indispensables a l'execution
   include_spip('cout_lancement');
   // lancer l'initialisation du plugin. on force la compilation si cs=calcul
- if(!$cs_exists) spip_log(" -- '$f_cs' introuvable !");
+ if(!$cs_exists) spip_log(" -- '$f_mo' ou '$f_mco' introuvable !");
   cs_initialisation(!$cs_exists || in_array('calcul', $GLOBALS['cs_params']));
   cs_log("PUIS : cout_options, initialisation terminee");

   // inclusion des options pre-compilees, si l'on n'est jamais passe par ici...
   if (!$GLOBALS['cs_options']) {
-
- if(file_exists($f_cs)) {
- cs_log(" -- inclusion de '$f_cs'");
- include_once($f_cs);
+ // inclusion des options de config si elles n'ont pas deja ete inclues par config/mes_options.php
+ if (!$GLOBALS['cs_config_options']) {
+ if(file_exists($f_mco)) {
+ cs_log(" -- inclusion de '$f_mco'");
+ include_once($f_mco);
+ } else {
+ $GLOBALS['cs_utils'] = 0;
+ cs_log(" -- fichier '$f_mco' toujours introuvable !!");
+ }
+ } else
+ cs_log(" -- fichier '$f_mco' deja inclu par config/mes_options.php");
+ if(file_exists($f_mo)) {
+ cs_log(" -- inclusion de '$f_mo'");
+ include_once($f_mo);
       // verification des metas : reinitialisation si une erreur est detectee
       if (count($metas_outils)<>$GLOBALS['cs_verif']) {
         cs_log("ERREUR : metas incorrects - verif = $GLOBALS[cs_verif]");
         cs_initialisation(true);
- if (!$GLOBALS['cs_verif']) include_once($f_cs);
+ if (!$GLOBALS['cs_verif']) include_once($f_mo);
       }
     } else {
       $GLOBALS['cs_utils'] = 0;
- cs_log(" -- fichier '$f_cs' toujours introuvable !!");
+ cs_log(" -- fichier '$f_mo' toujours introuvable !!");
     }
- } else cs_log(" -- pas d'inclusion de '$f_cs' ; on est deja passe par ici !?");
+ } else cs_log(" -- pas d'inclusion de '$f_mo' ; on est deja passe par ici !?");

   // si une recompilation a eu lieu avec succes...
   if ($GLOBALS['cs_utils']) {

Modified: _plugins_/_stable_/couteau_suisse/cout_utils.php

--- _plugins_/_stable_/couteau_suisse/cout_utils.php (original)
+++ _plugins_/_stable_/couteau_suisse/cout_utils.php Tue Oct 7 18:40:10 2008
@@ -120,7 +120,7 @@
   return $defaut2;
}

-// $type ici est egal a 'options' ou 'fonctions'
+// $type ici est egal a 'config_options', 'options' ou 'fonctions'
function ecrire_fichier_en_tmp($infos_pipelines, $type) {
   global $cs_metas_pipelines;
   $code = '';
@@ -311,6 +311,7 @@
         $temp_css = $f['texte'];
       }
       // recherche d'un code inline eventuellement propose
+ if (isset($outil['code:config_options'])) $infos_pipelines['code_config_options'] = $outil['code:config_options'];
       if (isset($outil['code:options'])) $infos_pipelines['code_options'] = $outil['code:options'];
       if (isset($outil['code:fonctions'])) $infos_pipelines['code_fonctions'] = $outil['code:fonctions'];
       if (isset($outil['code:css'])) $temp_css = cs_optimise_if(cs_parse_code_js($outil['code:css']));
@@ -362,7 +363,7 @@

[... 157 lines stripped ...]
_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit

cedric.morin@yterium.com a écrit :

Dangereux et contraire à l'esprit même des plugins :
si c'est pour intervenir à la main dans mes_options et mes_fonctions, autant publier une contrib ...

fo pas exagérer, si un humain intervient à la main dans mes_options, pourquoi pas une procédure... circonscrite, évidemment.
Au fait, quel est l'esprit des plugins ?
Le MS-DOS c'est fini...

Ca cassera des sites à l'activation et à la desactivation du plugin etc...

ah bah non, justement, je viens d'y remédier en partie (la désinstallation suivra).
Evidemment, ce n'est pas le but de casser les sites, surtout si le Couteau Suisse est aussi un outil pour ceux qui débarquent niveau php et/ou SPIP.

Cette version est à bannir de vos besaces ou a tout le moins utilisez la en connaissance de cause et ne venez pas vous plaindre apres !

Je serai à l'écoute des plaintes :wink:
Le sujet est ouvert, connu, et pas forcément définitif.

Si tout ça lève des bugs, je laisse les spécialistes et leur temps précieux les corriger. Je n'ai pas cette spécialité-là, et ça me va parfaitement.

Pat