From e62e02f45e3d6d99aaa25e00c92b83d7a8b475ad Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Fri, 17 Mar 2006 17:22:45 +0000 Subject: [PATCH] nouvelle API de public_trouver_squelette, explicitant langage but et langage cible dans son resultat --- ecrire/public/calcul.php | 23 +++++++++++------------ ecrire/public/trouver_squelette.php | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/ecrire/public/calcul.php b/ecrire/public/calcul.php index db0a2a15b5..d9abf77a76 100644 --- a/ecrire/public/calcul.php +++ b/ecrire/public/calcul.php @@ -61,10 +61,10 @@ function squelette_obsolete($skel, $squelette) { # - des fonctions de traduction de balise, de critere et de boucle # - des declaration de tables SQL supplementaires -function charger_squelette ($squelette) { - $ext = $GLOBALS['extension_squelette']; - $nom = $ext . '_' . md5($squelette); - $sourcefile = $squelette . ".$ext"; +function charger_squelette ($squelette, $mime_type, $gram) { + + $nom = $mime_type . '_' . md5($squelette); + $sourcefile = $squelette . ".$gram"; // le squelette est-il deja en memoire (INCLURE a repetition) if (function_exists($nom)) @@ -96,7 +96,7 @@ function charger_squelette ($squelette) { if (function_exists($nom)) return $nom; - $skel_code = calculer_squelette($skel, $nom, $ext, $sourcefile); + $skel_code = calculer_squelette($skel, $nom, $gram, $sourcefile); // Tester si le compilateur renvoie une erreur if (is_array($skel_code)) @@ -145,14 +145,16 @@ function cherche_page ($cache, $contexte, $fond) { lang_select($lang); $f = include_fonction('trouver_squelette', 'public'); - $skel = $f($fond, $id_rubrique_fond,$GLOBALS['spip_lang']); + list($skel,$mime_type, $gram) = $f($fond, $id_rubrique_fond,$GLOBALS['spip_lang']); - // Charger le squelette et recuperer sa fonction principale - // (compilation automatique au besoin) et calculer + // Compiler le squelette en specifiant les langages cibles et source + // (cette compilation n'intervient qu'en cas de modif du squelette) + // et appliquer sa fonction principale sur le contexte + // Passer le nom du cache pour produire sa destruction automatique $page = array(); - if ($fonc = charger_squelette($skel)) { + if ($fonc = charger_squelette($skel, $mime_type, $gram)) { spip_timer('calcul page'); $page = $fonc(array('cache' => $cache), array($contexte)); spip_log("calcul (" @@ -163,12 +165,9 @@ function cherche_page ($cache, $contexte, $fond) { ); } - // Passer la main au debuggueur) if ($GLOBALS['var_mode'] == 'debug') { debug_dumpfile ($page['texte'], $fonc, 'resultat'); } -# spip_log("page " . strlen($page['texte']) . " $skel . $fonc"); - // Retourner la structure de la page return $page; } diff --git a/ecrire/public/trouver_squelette.php b/ecrire/public/trouver_squelette.php index 3340e2930f..578e8710c3 100644 --- a/ecrire/public/trouver_squelette.php +++ b/ecrire/public/trouver_squelette.php @@ -56,7 +56,7 @@ function public_trouver_squelette($fond, $id_rubrique, $lang) { $squelette = $f; } - return $squelette; + return array($squelette, $ext, $ext); } ?> -- GitLab