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

revision de #FORMULAIRE_FORUM{#SELF} et #PARAMTRES_FORUM{#SELF} (nicolas riquois)

parent b5731a04
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -98,7 +98,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) ...@@ -98,7 +98,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
} }
// Tableau des valeurs servant au calcul d'une signature de securite. // Tableau des valeurs servant au calcul d'une signature de securite.
// Elles seront placees en Input Hidden pour que inc/forum_insert // Elles seront placees en Input Hidden pour que inc/forum_insert
// recalcule la meme chose et verifie l'identité des resultats. // recalcule la meme chose et verifie l'identite des resultats.
// Donc ne pas changer la valeur de ce tableau entre le calcul de // Donc ne pas changer la valeur de ce tableau entre le calcul de
// la signature et la fabrication des Hidden // la signature et la fabrication des Hidden
// Faire attention aussi a 0 != '' // Faire attention aussi a 0 != ''
...@@ -116,7 +116,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) ...@@ -116,7 +116,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
$previsu = ' '; $previsu = ' ';
// au premier appel (pas de Post-var nommee "retour_forum") // au premier appel (pas de Post-var nommee "retour_forum")
// memoriser evntuellement l'URL de retour pour y revenir apres // memoriser eventuellement l'URL de retour pour y revenir apres
// envoi du message ; aux appels suivants, reconduire la valeur. // envoi du message ; aux appels suivants, reconduire la valeur.
// Initialiser aussi l'auteur // Initialiser aussi l'auteur
if (!$retour_forum = rawurldecode(_request('retour_forum'))) { if (!$retour_forum = rawurldecode(_request('retour_forum'))) {
...@@ -126,7 +126,9 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) ...@@ -126,7 +126,9 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
// par defaut, on veut prendre url_forum(), mais elle ne sera connue // par defaut, on veut prendre url_forum(), mais elle ne sera connue
// qu'en sortie, on inscrit donc une valeur absurde ("!") // qu'en sortie, on inscrit donc une valeur absurde ("!")
$retour_forum = "!"; $retour_forum = "!";
// sauf si on a passe un parametre en argument (exemple : {#SELF})
if ($url_param_retour)
$retour_forum = str_replace('&', '&', $url_param_retour);
} }
if (isset($_COOKIE['spip_forum_user']) if (isset($_COOKIE['spip_forum_user'])
AND is_array($cookie_user = unserialize($_COOKIE['spip_forum_user']))) { AND is_array($cookie_user = unserialize($_COOKIE['spip_forum_user']))) {
...@@ -156,17 +158,12 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) ...@@ -156,17 +158,12 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
include_spip('inc/actions'); include_spip('inc/actions');
$hash = calculer_action_auteur('ajout_forum'.join(' ', $ids).' '.$alea); $hash = calculer_action_auteur('ajout_forum'.join(' ', $ids).' '.$alea);
}
// Poser un cookie pour ne pas retaper les infos invariables
include_spip('inc/cookie');
spip_setcookie('spip_forum_user',
serialize(array('nom' => $auteur,
'email' => $email_auteur)));
// sauf si on a passe un parametre en argument (exemple : {#SELF}) // Poser un cookie pour ne pas retaper les infos invariables
if ($url_param_retour) { include_spip('inc/cookie');
$script = $url_param_retour; spip_setcookie('spip_forum_user',
serialize(array('nom' => $auteur,
'email' => $email_auteur)));
} }
// pour la chaine de hidden // pour la chaine de hidden
......
...@@ -252,10 +252,10 @@ function inc_forum_insert_dist() { ...@@ -252,10 +252,10 @@ function inc_forum_insert_dist() {
// Entrer les mots-cles associes // Entrer les mots-cles associes
if (is_array($ajouter_mot)) mots_du_forum($ajouter_mot, $id_message); if (is_array($ajouter_mot)) mots_du_forum($ajouter_mot, $id_message);
if ($statut == 'publie') {
// //
// INVALIDATION DES CACHES LIES AUX FORUMS // INVALIDATION DES CACHES LIES AUX FORUMS
// //
if ($statut == 'publie') {
include_spip('inc/invalideur'); include_spip('inc/invalideur');
suivre_invalideur ("id='id_forum/" . suivre_invalideur ("id='id_forum/" .
calcul_index_forum($id_article, calcul_index_forum($id_article,
...@@ -271,7 +271,12 @@ function inc_forum_insert_dist() { ...@@ -271,7 +271,12 @@ function inc_forum_insert_dist() {
prevenir_auteurs($auteur, $email_auteur, $id_message, $id_article, $texte, $titre, $statut); prevenir_auteurs($auteur, $email_auteur, $id_message, $id_article, $texte, $titre, $statut);
} }
if (!$calculer_retour) return $retour_forum; // En cas de retour sur (par exemple) {#SELF}, on ajoute quand
// meme #forum12 a la fin de l'url, sauf si un #ancre est explicite
if (!$calculer_retour)
return strstr('#', $retour_forum) ?
$retour_forum
: $retour_forum.'#forum'.$id_message;
// le retour automatique envoie sur le thread, ce qui permet // le retour automatique envoie sur le thread, ce qui permet
// de traiter elegamment le cas des forums moderes a priori. // de traiter elegamment le cas des forums moderes a priori.
......
...@@ -30,7 +30,6 @@ function public_assembler_dist($fond) { ...@@ -30,7 +30,6 @@ function public_assembler_dist($fond) {
} }
// Si envoi pour un forum, enregistrer puis rediriger // Si envoi pour un forum, enregistrer puis rediriger
if (isset($_POST['confirmer_forum']) if (isset($_POST['confirmer_forum'])
OR (isset($_POST['ajouter_mot']) AND $GLOBALS['afficher_texte']=='non')) { OR (isset($_POST['ajouter_mot']) AND $GLOBALS['afficher_texte']=='non')) {
$f = charger_fonction('forum_insert', 'inc'); $f = charger_fonction('forum_insert', 'inc');
......
...@@ -850,7 +850,7 @@ function balise_PARAMETRES_FORUM_dist($p) { ...@@ -850,7 +850,7 @@ function balise_PARAMETRES_FORUM_dist($p) {
// Attention un eventuel &retour=xxx dans l'URL est prioritaire // Attention un eventuel &retour=xxx dans l'URL est prioritaire
$c .= '. $c .= '.
(($lien = (_request("retour") ? _request("retour") : '.$retour.')) ? "&retour=".rawurlencode($lien) : "")'; (($lien = (_request("retour") ? _request("retour") : str_replace("&", "&", '.$retour.'))) ? "&retour=".rawurlencode($lien) : "")';
$p->code .= code_invalideur_forums($p, "(".$c.")"); $p->code .= code_invalideur_forums($p, "(".$c.")");
......
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