diff --git a/inc-admin.php3 b/inc-admin.php3 index 3857a275455acbea7fcf067c7dfe0c92a6a7fd81..721da34819ccbd710da3532f4f91f4d61925e63b 100644 --- a/inc-admin.php3 +++ b/inc-admin.php3 @@ -105,4 +105,26 @@ function admin_dyn($id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur, $d } +// Inserer la feuille de style selon les normes, dans le <head> +// Feuilles de style admin : d'abord la CSS officielle, puis la perso, +function perso_admin($texte) { + $css = "<link rel='stylesheet' href='spip_admin.css' type='text/css' />\n"; + if (@file_exists('spip_admin_perso.css')) + $css2 = "<link rel='stylesheet' href='spip_admin_perso.css' type='text/css' />\n"; + else $css2 = ''; + $x = strpos($texte,$css); + if ($x !== false) { + if ($css2) { + $x+=strlen($css); + return substr($texte,0,$x) . $css2 . substr($texte,$x+1); + } else return $texte; + } else { + if (eregi('<(/head|body)', $texte, $regs)) { + $texte = explode($regs[0], $texte, 2); + return $texte[0] . $css. $css2 . $regs[0] . $texte[1]; + } else + return $css . $css2 . $texte; + } +} + ?> diff --git a/inc-public-global.php3 b/inc-public-global.php3 index f62c680bbd5ec7f823b634fd90b23bc70a0bb5a0..0d5779333db12236e03ee4da06351804e7d0536f 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -248,41 +248,19 @@ function inclure_page($fond, $delais_inclus, $contexte_inclus, $cache_incluant=' // Retourner le contenu... return $page; - } function inclure_formulaire($r) { if (is_string($r)) - echo $r; + echo $r; # ??? c'est du debug ou quoi ? else { list($fond, $delais, $contexte_inclus) = $r; if ((!$contexte_inclus['lang']) AND - ($GLOBALS['spip_lang'] != lire_meta('langue_site'))) + ($GLOBALS['spip_lang'] != lire_meta('langue_site'))) $contexte_inclus['lang'] = $GLOBALS['spip_lang']; include('inc-public.php3'); } } -// Inserer la feuille de style selon les normes, dans le <head> -// Feuilles de style admin : d'abord la CSS officielle, puis la perso, -function perso_admin($texte) { - $css = "<link rel='stylesheet' href='spip_admin.css' type='text/css' />"; - if (@file_exists('spip_admin_perso.css')) - $css2 = "<link rel='stylesheet' href='spip_admin_perso.css' type='text/css' />\n"; - else $css2 = ''; - $x = strpos($texte,$css); - if ($x !== false) { - if ($css2) { - $x+=strlen($css); - return substr($texte,0,$x) . $css2 . substr($texte,$x+1); - } else return $texte; - } else { - if (eregi('<(/head|body)', $texte, $regs)) { - $texte = explode($regs[0], $texte, 2); - return $texte[0].$css."\n" . $css2.$regs[0].$texte[1]; - } else return $texte . $css . "\n" . $css2; - } -} - ?> diff --git a/inc-public.php3 b/inc-public.php3 index 8839e36180ef8f7796dcdd88a98819a82daba88f..5bcd5a07c53b222651e6ef60a69497dc70535fab 100644 --- a/inc-public.php3 +++ b/inc-public.php3 @@ -60,101 +60,103 @@ else { } include_local ('inc-public-global.php3'); - include_local('inc-admin.php3'); // refus du debug si pas dans les options generales ni admin connecte if ($var_mode=='debug') { - if (($code_activation_debug == 'oui') - OR $auteur_session['statut'] == '0minirezo') - spip_log('debug !'); - else - $var_mode = false; + if (($code_activation_debug == 'oui') + OR $auteur_session['statut'] == '0minirezo') + spip_log('debug !'); + else + $var_mode = false; } // est-on admin ? - $affiche_boutons_admin = (!$flag_preserver - AND ($HTTP_COOKIE_VARS['spip_admin'] - OR $HTTP_COOKIE_VARS['spip_debug'])); + if ($affiche_boutons_admin = (!$flag_preserver + AND ($HTTP_COOKIE_VARS['spip_admin'] + OR $HTTP_COOKIE_VARS['spip_debug']))) + include_local('inc-admin.php3'); $tableau_des_erreurs = array(); $page = afficher_page_globale ($fond, $delais, $use_cache); // Interdire au client de cacher un login, un admin ou un recalcul - if ($flag_dynamique OR $var_mode - OR $HTTP_COOKIE_VARS['spip_admin']) { - @header("Cache-Control: no-cache,must-revalidate"); - @header("Pragma: no-cache"); - // Pour les autres donner l'heure de modif + if ($flag_dynamique OR $var_mode + OR $HTTP_COOKIE_VARS['spip_admin']) { + @header("Cache-Control: no-cache,must-revalidate"); + @header("Pragma: no-cache"); + // Pour les autres donner l'heure de modif } else if ($lastmodified) - @Header ("Last-Modified: ".http_gmoddate($lastmodified)." GMT"); + @Header ("Last-Modified: ".http_gmoddate($lastmodified)." GMT"); // si le squelette est nul se rabattre sur l'entete standard if ($page['texte']) @header("Content-Type: text/html; charset=".lire_meta('charset')); - else echo debut_entete($fond); - // Faudra-t-il post-traiter la page ? + else + echo debut_entete($fond); define('spip_active_ob', $flag_ob AND ($var_mode == 'debug' OR $var_recherche OR $affiche_boutons_admin)); - // Cas d'une page contenant uniquement du HTML : - + // Cas d'une page contenant uniquement du HTML : if ($page['process_ins'] == 'html') { - if (!spip_active_ob) { - echo $page['texte']; - $contenu = ''; - } else - $contenu = $page['texte']; - } + if (!spip_active_ob) { + echo $page['texte']; + $contenu = ''; + } else + $contenu = $page['texte']; + } - // Cas d'une page contenant du PHP : + // Cas d'une page contenant du PHP : else { - // Evaluer la page - - if (!spip_active_ob) { - eval('?' . '>' . $page['texte']); - $contenu = ''; - } else { - ob_start(); - $res = eval('?' . '>' . $page['texte']); - $contenu = ob_get_contents(); - ob_end_clean(); - - // en cas d'erreur lors du eval, afficher un message - // et forcer les boutons de debug - if ($res === false AND $affiche_boutons_admin - AND $auteur_session['statut'] == '0minirezo') { - include_ecrire('inc_debug_sql.php3'); - erreur_squelette(_L('erreur d\'execution de la page')); - } + // Evaluer la page + if (!spip_active_ob) { + eval('?' . '>' . $page['texte']); + $contenu = ''; + } else { + ob_start(); + $res = eval('?' . '>' . $page['texte']); + $contenu = ob_get_contents(); + ob_end_clean(); + + // en cas d'erreur lors du eval, afficher un message + // et forcer les boutons de debug + if ($res === false AND $affiche_boutons_admin + AND $auteur_session['statut'] == '0minirezo') { + include_ecrire('inc_debug_sql.php3'); + erreur_squelette(_L('erreur d\'execution de la page')); } } + } - if ($affiche_boutons_admin) $contenu = perso_admin($contenu); - - // Passer la main au debuggueur le cas echeant - if ($var_mode == 'debug') { - include_ecrire("inc_debug_sql.php3"); - debug_dumpfile('',$var_mode_objet,$var_mode_affiche); - exit; - } else if (count($tableau_des_erreurs) > 0 - AND $affiche_boutons_admin) - affiche_erreurs_page ($tableau_des_erreurs); - - // Traiter var_recherche pour surligner les mots - if ($var_recherche) { - include_ecrire("inc_surligne.php3"); - $contenu = surligner_mots($contenu, $var_recherche); - } + // Passer la main au debuggueur le cas echeant + if ($var_mode == 'debug') { + include_ecrire("inc_debug_sql.php3"); + debug_dumpfile('',$var_mode_objet,$var_mode_affiche); + exit; + } else if (count($tableau_des_erreurs) > 0 + AND $affiche_boutons_admin) + affiche_erreurs_page ($tableau_des_erreurs); + + // Traiter var_recherche pour surligner les mots + if ($var_recherche) { + include_ecrire("inc_surligne.php3"); + $contenu = surligner_mots($contenu, $var_recherche); + } + + // Ajouter au besoin la CSS des boutons admins + if ($affiche_boutons_admin) + $contenu = perso_admin($contenu); + + // Afficher le resultat final + echo $contenu; - echo $contenu; + // Afficher les boutons admin + if ($affiche_boutons_admin) + inclure_formulaire( + admin_dyn($id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur)); - // Ajouter les boutons admins (les normaux) si absents - // (ce sera apres la balise /html mais tant pis) - if ($affiche_boutons_admin) { - echo inclure_formulaire(admin_dyn($id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur)); - } - terminer_public_global(); + // Taches de fin + terminer_public_global(); } ?>