Skip to content
Extraits de code Groupes Projets
Valider 2258bcf9 rédigé par Fil's avatar Fil
Parcourir les fichiers

correction de self() qui donnait '' sur la racine du site (et donc des liens...

correction de self() qui donnait '' sur la racine du site (et donc des liens non fonctionnels, notamment pour #LOGIN_PUBLIC)

introduction d'un mecanisme de balise_XXXXXXXXX_traitement sur les balises dynamiques (qui permet à #LOGIN_PUBLIC et #LOGIN_PRIVE de dire "flag_dynamique", et à #FORMULAIRE_FORUM d'ajouter un invalideur)

parent 7b58a9a7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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>
......
......@@ -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;
}
......
......@@ -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;
}
......
......@@ -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) {
......
......@@ -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);
}
?>
......@@ -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,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter