$flux * @return */ function squelettes_par_rubrique_styliser_par_rubrique($flux) { // uniquement si un squelette a ete trouve if ($squelette = $flux['data']) { $ext = $flux['args']['ext']; // On selectionne, dans l'ordre : // fond=10 if ($id_rubrique = $flux['args']['id_rubrique']) { $f = "$squelette=$id_rubrique"; if (@file_exists("$f.$ext")) $squelette = $f; else { $maxiter = 10000; // on ne remonte pas au dela en profondeur // fond-10 fond- do { $f = "$squelette-$id_rubrique"; if (@file_exists("$f.$ext")) { $squelette = $f; break; } } while ( $maxiter-- AND $id_rubrique = quete_parent($id_rubrique) // se proteger des references circulaires AND $id_rubrique != $flux['args']['id_rubrique'] ); } // sauver le squelette $flux['data'] = $squelette; } } return $flux; } /** * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' : * Squelette par langue squelette.en.html * * @param array $flux * @return array */ function squelettes_par_rubrique_styliser_par_langue($flux) { // uniquement si un squelette a ete trouve if ($squelette = $flux['data']) { $ext = $flux['args']['ext']; // Affiner par lang if ($lang = $flux['args']['lang']) { $l = lang_select($lang); $f = "$squelette.".$GLOBALS['spip_lang']; if ($l) lang_select(); if (@file_exists("$f.$ext")) { // sauver le squelette $flux['data'] = $f; } } } return $flux; }