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

bug environnement du #FORMULAIRE_FORUM (Linstit)

parent 109c0f6e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<form action="[(#ENV{url})]" method="post" name="formulaire">[ <form action="[(#ENV{url})]" method="post" name="formulaire">[
<input type="hidden" name="alea" value="(#ENV{alea})" />][ <input type="hidden" name="alea" value="(#ENV{alea})" />][
<input type="hidden" name="hash" value="(#ENV{hash})" />][ <input type="hidden" name="hash" value="(#ENV{hash})" />][
<input type="hidden" name="forum_id_article" value="(#ENV{id_article})" />][
<input type="hidden" name="forum_id_breve" value="(#ENV{id_breve})" />][
<input type="hidden" name="forum_id_syndic" value="(#ENV{id_syndic})" />][
<input type="hidden" name="forum_id_rubrique" value="(#ENV{id_rubrique})" />][
<input type="hidden" name="forum_id_forum" value="(#ENV{id_forum})" />][
<input type="hidden" name="retour_forum" value="(#ENV{retour_forum})" /> <input type="hidden" name="retour_forum" value="(#ENV{retour_forum})" />
][<p>(#ENV*{modere})</p> ][<p>(#ENV*{modere})</p>
][(#ENV*{afficher_texte_hidden}) ][(#ENV*{afficher_texte_hidden})
......
...@@ -40,7 +40,11 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) { ...@@ -40,7 +40,11 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) {
if (!$r = sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids)) if (!$r = sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids))
return ''; return '';
list($titre, $table, $forums_publics) = $r; list ($titre, $table, $forums_publics) = $r;
// Attention id_rubrique est passe pour les articles => on n'en veut pas
if ($idr > 0 AND ($ida OR $idb OR $ids))
$idr = 0;
return return
array($titre, $table, $forums_publics, $idr, $idf, $ida, $idb, $ids, array($titre, $table, $forums_publics, $idr, $idf, $ida, $idb, $ids,
...@@ -48,8 +52,15 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) { ...@@ -48,8 +52,15 @@ function balise_FORMULAIRE_FORUM_stat($args, $filtres) {
} }
function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic, $url) { function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic, $url) {
global $REMOTE_ADDR, $afficher_texte, $_COOKIE, $_POST;
global $REMOTE_ADDR, $afficher_texte, $_COOKIE; // Recuperer les donnees postees du formulaire ou, a defaut, du contexte
foreach (array('id_article', 'id_breve', 'id_syndic',
'id_rubrique', 'id_forum') as $id)
if (isset($_POST['forum_'.$id]))
$$id = intval($_POST['forum_'.$id]);
else
$$id = intval($$id);
// url de reference // url de reference
if (!$url) { if (!$url) {
...@@ -76,12 +87,6 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq ...@@ -76,12 +87,6 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
return array('formulaire_login_forum', 0, array()); return array('formulaire_login_forum', 0, array());
} }
$id_rubrique = intval($id_rubrique);
$id_forum = intval($id_forum);
$id_article = intval($id_article);
$id_breve = intval($id_breve);
$id_syndic = intval($id_syndic);
// ne pas mettre '', sinon le squelette n'affichera rien. // ne pas mettre '', sinon le squelette n'affichera rien.
$previsu = ' '; $previsu = ' ';
...@@ -225,6 +230,13 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq ...@@ -225,6 +230,13 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
'url' => $url, 'url' => $url,
'url_site' => ($url_site ? $url_site : "http://"), 'url_site' => ($url_site ? $url_site : "http://"),
# id de reference
'id_article' => $id_article,
'id_breve' => $id_breve,
'id_syndic' => $id_syndic,
'id_rubrique' => $id_rubrique,
'id_forum' => $id_forum,
## gestion des la variable de personnalisation $afficher_texte ## gestion des la variable de personnalisation $afficher_texte
# mode normal : afficher le texte en < input text >, cf. squelette # mode normal : afficher le texte en < input text >, cf. squelette
'afficher_texte_input' => (($afficher_texte <> 'non') ? '&nbsp;' : ''), 'afficher_texte_input' => (($afficher_texte <> 'non') ? '&nbsp;' : ''),
...@@ -347,10 +359,7 @@ function afficher_petits_logos_mots($id_mot) { ...@@ -347,10 +359,7 @@ function afficher_petits_logos_mots($id_mot) {
function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) { function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) {
// changer la table de reference s'il y a lieu (pour afficher_groupes[] !!) // changer la table de reference s'il y a lieu (pour afficher_groupes[] !!)
if ($idr) { if ($ida) {
$r = "SELECT titre FROM spip_rubriques WHERE id_rubrique = $idr";
$table = "rubriques";
} else if ($ida) {
$r = "SELECT titre FROM spip_articles WHERE id_article = $ida"; $r = "SELECT titre FROM spip_articles WHERE id_article = $ida";
$table = "articles"; $table = "articles";
} else if ($idb) { } else if ($idb) {
...@@ -359,6 +368,9 @@ function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) { ...@@ -359,6 +368,9 @@ function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) {
} else if ($ids) { } else if ($ids) {
$r = "SELECT nom_site AS titre FROM spip_syndic WHERE id_syndic = $ids"; $r = "SELECT nom_site AS titre FROM spip_syndic WHERE id_syndic = $ids";
$table = "syndic"; $table = "syndic";
} else if ($idr) {
$r = "SELECT titre FROM spip_rubriques WHERE id_rubrique = $idr";
$table = "rubriques";
} }
if ($idf) if ($idf)
......
...@@ -104,34 +104,36 @@ function mots_du_forum($ajouter_mot, $id_message) ...@@ -104,34 +104,36 @@ function mots_du_forum($ajouter_mot, $id_message)
function enregistre_forum() { function enregistre_forum() {
global $REMOTE_ADDR, $auteur_session, global $REMOTE_ADDR, $auteur_session,
$afficher_texte, $ajouter_mot, $alea, $hash, $afficher_texte, $ajouter_mot, $alea, $hash,
$auteur, $confirmer_forum, $email_auteur, $auteur, $confirmer_forum, $email_auteur, $id_auteur,
$id_article, $id_auteur, $id_breve, $id_forum, $id_rubrique, $id_syndic,
$nom_site_forum, $retour_forum, $texte, $titre, $url_site; $nom_site_forum, $retour_forum, $texte, $titre, $url_site;
$retour_forum = rawurldecode($retour_forum); $retour_forum = rawurldecode($retour_forum);
$id_article = intval($id_article);
$id_rubrique = intval($id_rubrique);
$id_forum = intval($id_forum);
$id_breve = intval($id_breve);
$id_syndic = intval($id_syndic);
// initialisation de l'eventuel visiteur connecte // Recuperer les donnees postees du formulaire ou stocker '0'
foreach (array('id_article', 'id_breve', 'id_syndic',
'id_rubrique', 'id_forum') as $id)
if (isset($_POST['forum_'.$id]))
$$id = intval($_POST['forum_'.$id]);
else
$$id = 0;
// initialisation de l'eventuel visiteur connecte
if (!$id_auteur) if (!$id_auteur)
$id_auteur = intval($auteur_session['id_auteur']); $id_auteur = intval($auteur_session['id_auteur']);
$statut = controler_forum($id_article, $retour_forum); $statut = controler_forum($id_article, $retour_forum);
// Ne pas autoriser de changement de nom si forum sur abonnement // Ne pas autoriser de changement de nom si forum sur abonnement
if ($statut == 'abo') { if ($statut == 'abo') {
$auteur = $auteur_session['nom']; $auteur = $auteur_session['nom'];
$email_auteur = $auteur_session['email']; $email_auteur = $auteur_session['email'];
} }
// trop court ? // trop court ?
if ((strlen($texte) + strlen($titre) + strlen($nom_site_forum) + strlen($url_site) + strlen($auteur) + strlen($email_auteur)) > 20 * 1024) { if ((strlen($texte) + strlen($titre) + strlen($nom_site_forum) +
strlen($url_site) + strlen($auteur) + strlen($email_auteur)) > 20 * 1024) {
ask_php_auth(_T('forum_message_trop_long'), ask_php_auth(_T('forum_message_trop_long'),
_T('forum_cliquer_retour', _T('forum_cliquer_retour',
array('retour_forum' => $retour_forum))); array('retour_forum' => $retour_forum)));
exit; exit;
} }
...@@ -140,8 +142,10 @@ function enregistre_forum() { ...@@ -140,8 +142,10 @@ function enregistre_forum() {
include_ecrire("inc_admin.php3"); include_ecrire("inc_admin.php3");
if (!verifier_action_auteur("ajout_forum $id_rubrique". if (!verifier_action_auteur("ajout_forum $id_rubrique".
" $id_forum $id_article $id_breve". " $id_forum $id_article $id_breve".
" $id_syndic $alea", $hash)) " $id_syndic $alea", $hash)) {
exit; # echec silencieux du POST spip_log('erreur hash forum');
die (_T('forum_titre_erreur')); # echec du POST
}
// verifier fichier lock // verifier fichier lock
$alea = preg_replace('/[^0-9]/', '', $alea); $alea = preg_replace('/[^0-9]/', '', $alea);
......
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