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 @@ ...@@ -3,9 +3,6 @@
conserver cette page en memoire conserver cette page en memoire
] ]
#CACHE{24 * 3600} #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"> <!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"> <html dir="#LANG_DIR" lang="#LANG">
<head> <head>
......
...@@ -352,6 +352,9 @@ function self($root = false) { ...@@ -352,6 +352,9 @@ function self($root = false) {
// eviter les hacks // eviter les hacks
$url = htmlspecialchars($url); $url = htmlspecialchars($url);
// Si c'est vide, donner './'
$url = preg_replace(',^$,', './', $url);
return $url; return $url;
} }
......
...@@ -168,6 +168,11 @@ function calculer_balise($nom, $p) { ...@@ -168,6 +168,11 @@ function calculer_balise($nom, $p) {
$f = $GLOBALS['balise_' . $nom . '_collecte']; $f = $GLOBALS['balise_' . $nom . '_collecte'];
if (is_array($f)) { if (is_array($f)) {
$res = calculer_balise_dynamique($p, $nom, $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) if ($res !== NULL)
return $res; return $res;
} }
...@@ -241,10 +246,6 @@ function calculer_balise_dynamique($p, $nom, $l) { ...@@ -241,10 +246,6 @@ function calculer_balise_dynamique($p, $nom, $l) {
$p->fonctions = array(); $p->fonctions = array();
$p->param = 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; return $p;
} }
......
...@@ -37,6 +37,11 @@ charger_generer_url(); ...@@ -37,6 +37,11 @@ charger_generer_url();
global $balise_FORMULAIRE_FORUM_collecte; 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'); $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 // verification des droits a faire du forum
function balise_FORMULAIRE_FORUM_stat($args, $filtres) { function balise_FORMULAIRE_FORUM_stat($args, $filtres) {
......
...@@ -24,13 +24,16 @@ $balise_LOGIN_PRIVE_collecte = array('url'); ...@@ -24,13 +24,16 @@ $balise_LOGIN_PRIVE_collecte = array('url');
# programme une <boucle(AUTEURS)>[(#LOGIN_PRIVE{#LOGIN})] # programme une <boucle(AUTEURS)>[(#LOGIN_PRIVE{#LOGIN})]
function balise_LOGIN_PRIVE_stat ($args, $filtres) { 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) { 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 @@ ...@@ -12,12 +12,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite 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; global $balise_LOGIN_PUBLIC_collecte;
$balise_LOGIN_PUBLIC_collecte = array('url'); $balise_LOGIN_PUBLIC_collecte = array('url');
...@@ -31,6 +25,17 @@ function balise_LOGIN_PUBLIC_stat ($args, $filtres) { ...@@ -31,6 +25,17 @@ function balise_LOGIN_PUBLIC_stat ($args, $filtres) {
return array($filtres[0] ? $filtres[0] : $args[0], $args[1], $args[2]); 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) { function balise_LOGIN_PUBLIC_dyn($url, $login) {
if (!$url # pas d'url passee en filtre ou dans le contexte if (!$url # pas d'url passee en filtre ou dans le contexte
...@@ -58,14 +63,20 @@ function login_explicite($login, $cible) { ...@@ -58,14 +63,20 @@ function login_explicite($login, $cible) {
include_spip('inc/session'); include_spip('inc/session');
verifier_visiteur(); 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' ($auteur_session['statut']=='0minirezo'
OR $auteur_session['statut']=='1comite')) { OR $auteur_session['statut']=='1comite')) {
if (($cible != $action) && !headers_sent() if ($cible != $action) {
AND !$_GET['var_mode']) if (!headers_sent() AND !$_GET['var_mode'])
redirige_par_entete($cible); redirige_par_entete($cible);
include_spip('inc/minipres'); else {
return http_href($cible, _T('login_par_ici')); 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); return login_pour_tous($login ? $login : _request('var_login'), $cible, $action);
} }
...@@ -137,11 +148,15 @@ function login_pour_tous($login, $cible, $action) { ...@@ -137,11 +148,15 @@ function login_pour_tous($login, $cible, $action) {
if (_request('var_erreur') == 'pass') if (_request('var_erreur') == 'pass')
$erreur = _T('login_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'], return array('formulaire_login', $GLOBALS['delais'],
array_merge( array_merge(
array_map('texte_script', $row), array_map('texte_script', $row),
array( array(
'action2' => ($login ? $pose_cookie: $action), 'action2' => ($login ? $pose_cookie: $action),
'erreur' => $erreur, 'erreur' => $erreur,
'action' => $action, 'action' => $action,
'url' => $cible, 'url' => $cible,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter