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

petit nettoyage forums

parent cb2a44c4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<form action='[(#HTTP_VARS{url})]' method='post' name='formulaire'>
<input type='hidden' name='ajout_forum' value="oui" />
<input type='hidden' name='post_forum' value="oui" />
<input type='hidden' name='alea' value="[(#HTTP_VARS{alea})]" />
<input type='hidden' name='hash' value="[(#HTTP_VARS{hash})]" />
<input type='hidden' name='retour' value="[(#HTTP_VARS{retour})]" />
......
......@@ -74,9 +74,22 @@
<br>
</BOUCLE_breve>
<BOUCLE_rubrique(RUBRIQUES) {id_rubrique}>
<:en_reponse:>
<h2 class="titre-extrait"><a href="#URL_RUBRIQUE">#TITRE</a></h2>
[<div class="texte"><div class="extrait">(#TEXTE)</div></div>]
<br>
</BOUCLE_rubrique>
<BOUCLE_syndic(SITES) {id_syndic}>
<:en_reponse:>
<h2 class="titre-extrait"><a href="#URL_SYNDIC">#TITRE</a></h2>
<br>
</BOUCLE_syndic>
<BOUCLE_forum_parent(FORUMS) {id_forum}>
<:en_reponse:>
<h2 class="titre-extrait"><a href="#URL_BREVE">#TITRE</a></h2>
<h2 class="titre-extrait"><a href="#URL_FORUM">#TITRE</a></h2>
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
</div>
......
......@@ -77,7 +77,7 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
$previsu = ' ';
// Recuperer le message a previsualiser
if ($GLOBALS['HTTP_POST_VARS']['post_forum']) {
if ($GLOBALS['HTTP_POST_VARS']['ajout_forum']) {
$titre = $GLOBALS['HTTP_POST_VARS']['titre'];
$texte = $GLOBALS['HTTP_POST_VARS']['texte'];
$auteur = $GLOBALS['HTTP_POST_VARS']['auteur'];
......@@ -99,13 +99,13 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
// Verifier mots associes au message
if (is_array($ajouter_mot))
$mots = preg_replace('/[^0-9,]/', '', join(',',$ajouter_mot));
else $mots = '';
$mots = preg_replace('/[^0-9,]/', '', join(',',$ajouter_mot));
else $mots = '0';
// affichage {par num type, type, num titre,titre}
$result_mots = spip_query("SELECT id_mot, titre, type
FROM spip_mots
WHERE id_mot IN (0, $mots)
WHERE id_mot IN ($mots)
ORDER BY 0+type,type,0+titre,titre");
if (spip_num_rows($result_mots)>0) {
$previsu .= "<p>"._T('forum_avez_selectionne')."</p><ul>";
......@@ -164,35 +164,36 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
else
$table = '';
return array(
'formulaire_forum',
0,
array(
'afficher_texte_input' => (($afficher_texte <> 'non') ? '&nbsp;' : ''),
'afficher_texte_hidden' =>
(($afficher_texte <> 'non') ? '' :
(boutonne('hidden', 'titre', htmlspecialchars($titre)) .
$table .
"\n<br /><div align='right'>" .
boutonne('submit', '', _T('forum_valider'), "class='spip_bouton'") .
"</div>")),
'alea' => $alea,
'auteur' => $auteur,
'disabled' => ($forums_publics == "abo")? " disabled='disabled'" : '',
'email_auteur' => $email_auteur,
'hash' => $hash,
'id_message' => $id_message,
'modere' => (($forums_publics != 'pri') ? '' :
_T('forum_info_modere')),
'nom_site_forum' => $nom_site_forum,
'previsu' => $previsu,
'retour' => $retour,
'table' => $table,
'texte' => $texte,
'titre' => $titre,
'url' => $url,
'url_site' => ($url_site ? $url_site : "http://")
));
return array('formulaire_forum', 0,
array(
'alea' => $alea,
'auteur' => $auteur,
'disabled' => ($forums_publics == "abo")? " disabled='disabled'" : '',
'email_auteur' => $email_auteur,
'hash' => $hash,
'modere' => (($forums_publics != 'pri') ? '' : _T('forum_info_modere')),
'nom_site_forum' => $nom_site_forum,
'previsu' => $previsu,
'retour' => $retour,
'table' => $table,
'texte' => $texte,
'titre' => $titre,
'url' => $url,
'url_site' => ($url_site ? $url_site : "http://"),
## gestion des la variable de personnalisation $afficher_texte
# mode normal : afficher le texte en < input text >, cf. squelette
'afficher_texte_input' => (($afficher_texte <> 'non') ? '&nbsp;' : ''),
# mode 'non' : afficher les elements en < input hidden >
'afficher_texte_hidden' => (($afficher_texte <> 'non') ? '' :
(boutonne('hidden', 'titre', htmlspecialchars($titre)) .
$table .
"\n<br /><div align='right'>" .
boutonne('submit', '', _T('forum_valider'),
"class='spip_bouton'") .
"</div>"))
));
}
......@@ -329,7 +330,7 @@ function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) {
if ($ida)
list($accepter_forum) = spip_fetch_array(spip_query(
"SELECT accepter_forum FROM spip_articles WHERE id_article=$ida"));
else
if (!$accepter_forum)
$accepter_forum = substr(lire_meta("forums_publics"),0,3);
// valeurs possibles : 'pos'teriori, 'pri'ori, 'abo'nnement
if ($accepter_forum == "non")
......
......@@ -8,8 +8,7 @@ include_ecrire("inc_abstract_sql.php3");
// Ce fichier inclus par inc-public a un comportement special
// Voir commentaires dans celui-ci et dans inc-formulaire_forum
function prevenir_auteurs($auteur, $email_auteur, $id_article, $texte, $titre)
{
function prevenir_auteurs($auteur, $email_auteur, $id_article, $texte, $titre) {
include_ecrire('inc_texte.php3');
include_ecrire('inc_filtres.php3');
include_ecrire('inc_mail.php3');
......@@ -45,20 +44,25 @@ function prevenir_auteurs($auteur, $email_auteur, $id_article, $texte, $titre)
if (strlen($email) < 3) continue;
envoyer_mail($email, $sujet, $courr);
}
}
}
// Recuperation des donnees
$retour_forum = rawurldecode($retour);
$forum_id_article = intval($id_article);
$forum_id_rubrique = intval($id_rubrique);
$forum_id_forum = intval($id_forum);
$forum_id_breve = intval($id_breve);
$forum_id_syndic = intval($id_syndic);
$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
if (!$id_auteur)
$id_auteur = intval($auteur_session['id_auteur']);
if ($forum_id_article) {
$r = spip_query("SELECT accepter_forum FROM spip_articles WHERE id_article=$forum_id_article");
// chercher le statut du forum
if ($id_article) {
$r = spip_query("SELECT accepter_forum FROM spip_articles WHERE id_article=$id_article");
$r = spip_fetch_array($r);
if ($r)
$forums_publics = $r['accepter_forum'];
......@@ -88,8 +92,10 @@ if ($forums_publics == "abo") {
// Ne pas autoriser de changement de nom si forum sur abonnement
$auteur = $auteur_session['nom'];
$email_auteur = $auteur_session['email'];
}
}
// trop court ?
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'),
_T('forum_cliquer_retour',
......@@ -98,16 +104,15 @@ if ((strlen($texte) + strlen($titre) + strlen($nom_site_forum) + strlen($url_sit
}
$validation_finale = (strlen($confirmer) > 0
OR ($afficher_texte=='non' AND $ajouter_mot));
if ($validation_finale) {
// validation finale du post ?
if (strlen($confirmer) > 0
OR ($afficher_texte=='non' AND $ajouter_mot)) {
// verifier droit (pour interdire de hack-poster sur des forums fermes ?)
include_ecrire("inc_admin.php3");
if (!(verifier_action_auteur("ajout_forum $forum_id_rubrique".
" $forum_id_forum $forum_id_article $forum_id_breve".
" $forum_id_syndic $alea", $hash))) {
if (!(verifier_action_auteur("ajout_forum $id_rubrique".
" $id_forum $id_article $id_breve".
" $id_syndic $alea", $hash))) {
header("Status: 404");
exit;
}
......@@ -122,16 +127,16 @@ if ($validation_finale) {
(($forums_publics == 'pri') ? 'prop' :
'publie');
if ($forum_id_forum > 0)
$id_thread = $forum_id_forum;
if ($id_forum > 0)
$id_thread = $id_forum;
else
$id_thread = $id_message; # id_thread oblige INSERT puis UPDATE.
spip_query("UPDATE spip_forum SET id_parent = $forum_id_forum,
id_rubrique =$forum_id_rubrique,
id_article = $forum_id_article,
id_breve = $forum_id_breve,
id_syndic = $forum_id_syndic,
spip_query("UPDATE spip_forum SET id_parent = $id_forum,
id_rubrique =$id_rubrique,
id_article = $id_article,
id_breve = $id_breve,
id_syndic = $id_syndic,
id_auteur = $id_auteur,
id_thread = $id_thread,
date_heure = NOW(),
......@@ -159,7 +164,7 @@ if ($validation_finale) {
// Prevenir les auteurs de l'article
if (lire_meta("prevenir_auteurs") == "oui"
AND ($afficher_texte != "non")
AND ($id_article = $forum_id_article))
AND ($id_article = $id_article))
prevenir_auteurs($auteur, $email_auteur, $id_article, $texte, $titre);
// Poser un cookie pour ne pas retaper le nom / email
......@@ -172,10 +177,10 @@ if ($validation_finale) {
include_ecrire('inc_invalideur.php3');
if ($statut == 'publie') {
suivre_invalideur ("id='id_forum/" .
calcul_index_forum($forum_id_article,
$forum_id_breve,
$forum_id_rubrique,
$forum_id_syndic) . "'");
calcul_index_forum($id_article,
$id_breve,
$id_rubrique,
$id_syndic) . "'");
}
$redirect = $retour_forum;
......
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