/** * Déterminer le squelette qui sera utilisé pour rendre la page ou le bloc * à partir de `$fond` et du `$contetxe` * * Actuellement tous les squelettes se terminent par `.html` * pour des raisons historiques, ce qui est trompeur * * @param string $fond * @param array $contexte * @param string $lang * @param string $connect * @return array */ function public_styliser_dist($fond, $contexte, $lang = '', $connect = '') { static $styliser_par_z; // s'assurer que le fond est licite // car il peut etre construit a partir d'une variable d'environnement if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) { $fond = "404"; } // Choisir entre $fond-dist.html, $fond=7.html, etc? $id_rubrique = 0; // Chercher le fond qui va servir de squelette if ($r = quete_rubrique_fond($contexte)) { list($id_rubrique, $lang) = $r; } // trouver un squelette du nom demande // ne rien dire si on ne trouve pas, // c'est l'appelant qui sait comment gerer la situation // ou les plugins qui feront mieux dans le pipeline $squelette = trouver_fond($fond, "", true); $ext = $squelette['extension']; $flux = array('args' => array('id_rubrique' => $id_rubrique, 'ext' => $ext, 'fond' => $fond, 'lang' => $lang, 'contexte' => $contexte, 'connect' => $connect), 'data' => $squelette['fond']); if (test_espace_prive() or defined('_ZPIP')) { if (!$styliser_par_z) { $styliser_par_z = charger_fonction('styliser_par_z', 'public'); } $flux = $styliser_par_z($flux); } $flux = styliser_par_objets($flux); // pipeline styliser $squelette = pipeline('styliser', $flux); return array($squelette, $ext, $ext, "{$squelette}.{$ext}"); }
function public_styliser_dist($fond, $contexte, $lang='', $connect='', $ext='html') { // s'assurer que le fond et licite // car il peut etre construit a partir d'une variable d'environnement if (strpos($fond,"../")!==false OR strncmp($fond,'/',1)==0) $fond = "404"; // Choisir entre $fond-dist.html, $fond=7.html, etc? $id_rubrique = 0; // Chercher le fond qui va servir de squelette if ($r = quete_rubrique_fond($contexte)) list($id_rubrique, $lang) = $r; // trouver un squelette du nom demande // ne rien dire si on ne trouve pas, // c'est l'appelant qui sait comment gerer la situation $base = find_in_path("$fond.$ext"); // supprimer le ".html" pour pouvoir affiner par id_rubrique ou par langue $squelette = substr($base, 0, - strlen(".$ext")); // pipeline styliser $squelette = pipeline('styliser', array( 'args' => array( 'id_rubrique' => $id_rubrique, 'ext' => $ext, 'fond' => $fond, 'lang' => $lang, 'contexte' => $contexte, // le style d'un objet peut dependre de lui meme 'connect' => $connect ), 'data' => $squelette, )); return array($squelette, $ext, $ext, "$squelette.$ext"); }