diff --git a/dist/login.html b/dist/login.html index 2284de275e9b5abbd5be0fe6767bed53a77cce0c..f0f1d852e2d6372ca042e70ef4f3a318153799e5 100644 --- a/dist/login.html +++ b/dist/login.html @@ -3,9 +3,6 @@ conserver cette page en memoire ] #CACHE{24 * 3600} -#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"} -#HTTP_HEADER{Pragma: no-cache} - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html dir="#LANG_DIR" lang="#LANG"> <head> diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 7f8eabb2cd3dafb7ad9bdaa2d6e3cb415bae83ed..8c6c8c4a39a689df47e66963f05ddefcab4a7858 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -352,6 +352,9 @@ function self($root = false) { // eviter les hacks $url = htmlspecialchars($url); + // Si c'est vide, donner './' + $url = preg_replace(',^$,', './', $url); + return $url; } diff --git a/ecrire/public/compilo-index.php b/ecrire/public/compilo-index.php index dfe8c409c5cb970c1b3dd8f310db0c8ca2a7cb4a..e9755ac1d3f60e466696dad5f16002b35d9a9177 100644 --- a/ecrire/public/compilo-index.php +++ b/ecrire/public/compilo-index.php @@ -168,6 +168,11 @@ function calculer_balise($nom, $p) { $f = $GLOBALS['balise_' . $nom . '_collecte']; if (is_array($f)) { $res = calculer_balise_dynamique($p, $nom, $f); + + // ajouter un code particulier ? + if (function_exists('balise_' . $nom . '_traitement')) + $res = call_user_func('balise_' . $nom . '_traitement', $res); + if ($res !== NULL) return $res; } @@ -241,10 +246,6 @@ function calculer_balise_dynamique($p, $nom, $l) { $p->fonctions = array(); $p->param = array(); - // Cas particulier de #FORMULAIRE_FORUM : inserer l'invalideur - if ($nom == 'FORMULAIRE_FORUM') - $p->code = code_invalideur_forums($p, $p->code); - return $p; } diff --git a/formulaires/inc-formulaire_forum.php b/formulaires/inc-formulaire_forum.php index 59dafec5ee88a12f8c9478117ec1db2e0fc9ab2b..5ae85b55f8f5c8184549f0b36ec02b03b4e5e58f 100644 --- a/formulaires/inc-formulaire_forum.php +++ b/formulaires/inc-formulaire_forum.php @@ -37,6 +37,11 @@ charger_generer_url(); global $balise_FORMULAIRE_FORUM_collecte; $balise_FORMULAIRE_FORUM_collecte = array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte'); +// Ajouter l'invalideur forums sur les pages contenant ce formulaire +function balise_FORMULAIRE_FORUM_traitement($p) { + $p->code = code_invalideur_forums($p, $p->code); + return $p; +} // verification des droits a faire du forum function balise_FORMULAIRE_FORUM_stat($args, $filtres) { diff --git a/formulaires/inc-login_prive.php b/formulaires/inc-login_prive.php index 83ad9b141ce3ed605df57b61b55a55be686a15e5..c45e7e4b08fd5ca46b6c796a7a64661ba2f4d8b8 100644 --- a/formulaires/inc-login_prive.php +++ b/formulaires/inc-login_prive.php @@ -24,13 +24,16 @@ $balise_LOGIN_PRIVE_collecte = array('url'); # programme une <boucle(AUTEURS)>[(#LOGIN_PRIVE{#LOGIN})] function balise_LOGIN_PRIVE_stat ($args, $filtres) { - - return array($args[1], ($filtres[0] ? $filtres[0] : $args[0])); + return array($args[1], ($filtres[0] ? $filtres[0] : $args[0])); } function balise_LOGIN_PRIVE_dyn($login, $cible) { + return login_explicite($login, $cible); +} - return login_explicite($login, $cible); +function balise_LOGIN_PRIVE_traitement($p) { + return balise_LOGIN_PUBLIC_traitement($p); } + ?> diff --git a/formulaires/inc-login_public.php b/formulaires/inc-login_public.php index daaefa2844715edaa5d1eaec73f974ca18955824..18a75737315c07fbb1f098e0b59be9dae1ba11f4 100644 --- a/formulaires/inc-login_public.php +++ b/formulaires/inc-login_public.php @@ -12,12 +12,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite -include_spip('inc/meta'); -include_spip('inc/session'); -include_spip('inc/filtres'); -include_spip('inc/logos'); -spip_connect(); - global $balise_LOGIN_PUBLIC_collecte; $balise_LOGIN_PUBLIC_collecte = array('url'); @@ -31,6 +25,17 @@ function balise_LOGIN_PUBLIC_stat ($args, $filtres) { return array($filtres[0] ? $filtres[0] : $args[0], $args[1], $args[2]); } +// Cette balise necessite les entetes "flag_dynamique" +// (attention, ne fonctionnera pas en INCLURE) +function balise_LOGIN_PUBLIC_traitement($p) { + $p->code = '\'<' + .'?php header("Cache-Control: no-store, no-cache, must-revalidate"); ?' + .'><' + .'?php header("Pragma: no-cache"); ?' + .'>\'.' . $p->code; + return $p; +} + function balise_LOGIN_PUBLIC_dyn($url, $login) { if (!$url # pas d'url passee en filtre ou dans le contexte @@ -58,14 +63,20 @@ function login_explicite($login, $cible) { include_spip('inc/session'); verifier_visiteur(); - if ($auteur_session AND + // Si on est connecte, envoyer vers la destination + // sauf si on y est deja + if ($auteur_session AND ($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) { - if (($cible != $action) && !headers_sent() - AND !$_GET['var_mode']) - redirige_par_entete($cible); - include_spip('inc/minipres'); - return http_href($cible, _T('login_par_ici')); + if ($cible != $action) { + if (!headers_sent() AND !$_GET['var_mode']) + redirige_par_entete($cible); + else { + include_spip('inc/minipres'); + return http_href($cible, _T('login_par_ici')); + } + } else + return ''; # on est arrive on bon endroit, et logue'... } return login_pour_tous($login ? $login : _request('var_login'), $cible, $action); } @@ -137,11 +148,15 @@ function login_pour_tous($login, $cible, $action) { if (_request('var_erreur') == 'pass') $erreur = _T('login_erreur_pass'); + // le formulaire utilise le filtre |chercher_logo si un id_auteur est la... + include_spip('inc/logos'); + + // Appeler le squelette formulaire_login return array('formulaire_login', $GLOBALS['delais'], array_merge( array_map('texte_script', $row), array( - 'action2' => ($login ? $pose_cookie: $action), + 'action2' => ($login ? $pose_cookie: $action), 'erreur' => $erreur, 'action' => $action, 'url' => $cible,