Re: Un pipeline avant calcul pour modifier le contexte
RastaPopoulos <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Et donc voilà cette fois le patch complet avec le XML et les deux appels, une pour les squelettes racines et une pour les inclusions. J'ai mis "contexte_pre_calcul" (ça pourrait être "pre_calcul_contexte" aussi, mais plus confus car ça peut se comprendre en "avant le calcul du contexte" ce qui est faux) -- RastaPopoulos
contexte_pre_calcul.patch
(text/x-patch, 2.1 KB)
Index: ecrire/paquet.xml
===================================================================
--- ecrire/paquet.xml (révision 23993)
+++ ecrire/paquet.xml (copie de travail)
@@ -101,6 +101,7 @@
<pipeline nom="optimiser_base_disparus" action="" />
<pipeline nom="page_indisponible" action="" />
<pipeline nom="prepare_recherche" action="" />
+ <pipeline nom="contexte_pre_calcul" action="" />
<pipeline nom="pre_boucle" action="" />
<pipeline nom="post_boucle" action="" />
<pipeline nom="post_image_filtrer" action="" />
Index: ecrire/public/assembler.php
===================================================================
--- ecrire/public/assembler.php (révision 23993)
+++ ecrire/public/assembler.php (copie de travail)
@@ -38,6 +38,19 @@
$page = array('contexte_implicite' => calculer_contexte_implicite());
$page['contexte_implicite']['cache'] = $fond . preg_replace(',\.[a-zA-Z0-9]*$,', '',
preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']));
+
+ // On passe le contexte dans un pipeline permettant de le modifier avant calcul et avant définition du nom du cache
+ $GLOBALS['contexte'] = pipeline(
+ 'contexte_pre_calcul',
+ array(
+ 'args' => array(
+ 'fond' => $fond,
+ 'page' => $page,
+ ),
+ 'data' => $GLOBALS['contexte'],
+ )
+ );
+
// Cette fonction est utilisee deux fois
$cacher = charger_fonction('cacher', 'public', true);
// Les quatre derniers parametres sont modifies par la fonction:
@@ -253,9 +266,23 @@
unset($contexte['fond']);
$page = array('contexte_implicite' => calculer_contexte_implicite());
$page['contexte_implicite']['cache'] = $fond;
+
+ // On passe le contexte dans un pipeline permettant de le modifier avant calcul et avant définition du nom du cache
+ $contexte = pipeline(
+ 'contexte_pre_calcul',
+ array(
+ 'args' => array(
+ 'fond' => $fond,
+ 'page' => $page,
+ ),
+ 'data' => $contexte,
+ )
+ );
+
if (is_null($cacher)) {
$cacher = charger_fonction('cacher', 'public', true);
}
+
// Les quatre derniers parametres sont modifies par la fonction:
// emplacement, validite, et, s'il est valide, contenu & age
if ($cacher) {