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"); } /* * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' : * Squelette par rubrique squelette-XX.html ou squelette=XX.html */ function 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 { // fond-10 fond- do { $f = "$squelette-$id_rubrique"; if (@file_exists("$f.$ext")) { $squelette = $f; break; } } while ($id_rubrique = quete_parent($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 */ function 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; } // Calcul de la rubrique associee a la requete // (selection de squelette specifique par id_rubrique & lang) // http://doc.spip.org/@quete_rubrique_fond function quete_rubrique_fond($contexte) { if (isset($contexte['id_rubrique']) AND $id = intval($contexte['id_rubrique']) AND $row = quete_parent_lang('spip_rubriques',$id)) { $lang = isset($row['lang']) ? $row['lang'] : ''; return array ($id, $lang); } if (isset($contexte['id_breve']) AND $id = intval($contexte['id_breve']) AND $row = quete_parent_lang('spip_breves',$id) AND $id_rubrique_fond = $row['id_rubrique']) { $lang = isset($row['lang']) ? $row['lang'] : ''; return array($id_rubrique_fond, $lang); } if (isset($contexte['id_syndic']) AND $id = intval($contexte['id_syndic']) AND $row = quete_parent_lang('spip_syndic',$id) AND $id_rubrique_fond = $row['id_rubrique'] AND $row = quete_parent_lang('spip_rubriques',$id_rubrique_fond)) { $lang = isset($row['lang']) ? $row['lang'] : ''; return array($id_rubrique_fond, $lang); } if (isset($contexte['id_article']) AND $id = intval($contexte['id_article']) AND $row = quete_parent_lang('spip_articles',$id) AND $id_rubrique_fond = $row['id_rubrique']) { $lang = isset($row['lang']) ? $row['lang'] : ''; return array($id_rubrique_fond, $lang); } } ?>