Skip to content
Extraits de code Groupes Projets
Valider b6f7db61 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Ticket #3860 : Lors du calcul du fichier de caches des pipelines,

notamment et particulièrement lorsqu'on utilise la balise `<genie>` dans un paquet.xml,
bien faire en sorte d'avoir les chemins des plugins actifs (ou à activer) chargés pour
tester la présence de la fonction demandée dans la balise `<genie>`.

Sinon, si on vide le cache (depuis l'admin, ou brutalement tmp/cache/*), les crons déclarés dans 
les balises `<genie>` ne sont plus activés tant qu'on ne repasse pas sur la page d'administration
des plugins. 

Du coup, on déplace le chargement des chemins de plugins et options un peu au dessus, pour que
la précompilation des pipelines ait accès aux fichiers des plugins activés.

Le petit hic, c'est un léger changement de comportement :  les fichiers 
d'options des plugins n'ont plus accès, dans la globale 'spip_pipeline', 
aux fonctions ajoutés par les balises `<pipeline>` des paquet.xml et plugin.xml, 
(infos complétées après le chargement des fichiers d'options donc). 
Je ne pense pas que ce changement soit gênant.
parent 1d6f22ff
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -779,7 +779,7 @@ function ecrire_plugin_actifs($plugin, $pipe_recherche = false, $operation = 'ra ...@@ -779,7 +779,7 @@ function ecrire_plugin_actifs($plugin, $pipe_recherche = false, $operation = 'ra
} }
// recharger le xml des plugins a activer // recharger le xml des plugins a activer
// on forcer le reload ici, meme si le fichier xml n'a pas change // on force le reload ici, meme si le fichier xml n'a pas change
// pour ne pas rater l'ajout ou la suppression d'un fichier fonctions/options/administrations // pour ne pas rater l'ajout ou la suppression d'un fichier fonctions/options/administrations
// pourra etre evite quand on ne supportera plus les plugin.xml // pourra etre evite quand on ne supportera plus les plugin.xml
// en deplacant la detection de ces fichiers dans la compilation ci dessous // en deplacant la detection de ces fichiers dans la compilation ci dessous
...@@ -825,10 +825,12 @@ function ecrire_plugin_actifs($plugin, $pipe_recherche = false, $operation = 'ra ...@@ -825,10 +825,12 @@ function ecrire_plugin_actifs($plugin, $pipe_recherche = false, $operation = 'ra
// generer charger_plugins_chemin.php // generer charger_plugins_chemin.php
plugins_precompile_chemin($plugin_valides, $ordre); plugins_precompile_chemin($plugin_valides, $ordre);
// generer les fichiers // generer les fichiers
// charger_plugins_options.php // - charger_plugins_options.php
// charger_plugins_fonctions.php // - charger_plugins_fonctions.php
// et retourner les fichiers a verifier
plugins_precompile_xxxtions($plugin_valides, $ordre); plugins_precompile_xxxtions($plugin_valides, $ordre);
// charger les chemins des plugins et les fichiers d'options
// (qui peuvent déclarer / utiliser des pipelines, ajouter d'autres chemins)
plugins_amorcer_plugins_actifs();
// mise a jour de la matrice des pipelines // mise a jour de la matrice des pipelines
$prepend_code = pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche); $prepend_code = pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche);
// generer le fichier _CACHE_PIPELINE // generer le fichier _CACHE_PIPELINE
...@@ -1023,6 +1025,29 @@ function plugin_ongletbouton($nom, $val) { ...@@ -1023,6 +1025,29 @@ function plugin_ongletbouton($nom, $val) {
. "}\n"; . "}\n";
} }
/**
* Chargement des plugins actifs dans le path de SPIP
* et exécution de fichiers d'options des plugins
*
* Les fichiers d'options peuvent déclarer des pipelines ou de
* nouveaux chemins.
*
* La connaissance chemins peut être nécessaire pour la construction
* du fichier d'exécution des pipelines.
**/
function plugins_amorcer_plugins_actifs() {
if (@is_readable(_CACHE_PLUGINS_PATH)) {
include_once(_CACHE_PLUGINS_PATH);
}
if (@is_readable(_CACHE_PLUGINS_OPT)) {
include_once(_CACHE_PLUGINS_OPT);
} else {
spip_log("pipelines desactives: impossible de produire " . _CACHE_PLUGINS_OPT);
}
}
/** /**
* Crée la liste des filtres à traverser pour chaque pipeline * Crée la liste des filtres à traverser pour chaque pipeline
* *
...@@ -1165,18 +1190,6 @@ function pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche) { ...@@ -1165,18 +1190,6 @@ function pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche) {
. "\$val = minipipe('f_jQuery_prive', \$val);\n" . "\$val = minipipe('f_jQuery_prive', \$val);\n"
. $prepend_code['header_prive']; . $prepend_code['header_prive'];
// on charge les fichiers d'options qui peuvent completer
// la globale spip_pipeline egalement
if (@is_readable(_CACHE_PLUGINS_PATH)) {
include_once(_CACHE_PLUGINS_PATH);
} // securite : a priori n'a pu etre fait plus tot
if (@is_readable(_CACHE_PLUGINS_OPT)) {
include_once(_CACHE_PLUGINS_OPT);
} else {
spip_log("pipelines desactives: impossible de produire " . _CACHE_PLUGINS_OPT);
}
// on ajoute les pipe qui ont ete recenses manquants // on ajoute les pipe qui ont ete recenses manquants
foreach ($liste_pipe_manquants as $add_pipe) { foreach ($liste_pipe_manquants as $add_pipe) {
if (!isset($GLOBALS['spip_pipeline'][$add_pipe])) { if (!isset($GLOBALS['spip_pipeline'][$add_pipe])) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter