accepter_forum;
} else {
$forums_publics = substr(lire_meta("forums_publics"),0,3);
}
return $forums_publics;
}
function afficher_petits_logos_mots($id_mot) {
$racine = "IMG/moton$id_mot";
if (@file_exists("$racine.gif")) {
$image = "$racine.gif";
} elseif (@file_exists("$racine.jpg")) {
$image = "$racine.jpg";
} elseif (@file_exists("$racine.png")) {
$image = "$racine.png";
}
if ($image) {
$taille = getimagesize($image);
$largeur = $taille[0];
$hauteur = $taille[1];
if ($largeur < 100 AND $hauteur < 100)
return " ";
else return "";
} else {
return "";
}
}
function decoder_hash_forum($email, $hash) {
if (!$email OR !$hash) return false;
$query = "SELECT * FROM spip_auteurs WHERE email='$email'";
$result = spip_query($query);
while ($row = spip_fetch_array($result)) {
if (verifier_action_auteur("forum public $email", $hash, $row['id_auteur'])) {
$ok = true;
break;
}
}
if ($ok) return $row;
else return false;
}
function forum_abonnement($retour) {
if ($GLOBALS['auteur_session'])
return true; // autoriser le formulaire
else {
include_local("inc-login.php3");
$message_login = _T('forum_vous_enregistrer').'"
._T('forum_vous_inscrire')."
\n";
login('', false, $message_login);
return false;
}
}
//
// Afficher le formulaire d'edition de forum en fonction du contexte
//
function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_syndic, $titre='') {
global $REQUEST_URI, $HTTP_GET_VARS, $PATH_TRANSLATED, $REMOTE_ADDR, $id_message;
global $new, $redac, $afficher_groupe, $afficher_texte;
global $spip_forum_user;
$forums_publics = get_forums_publics($id_article);
if ($forums_publics == "non") return;
$lien = substr($REQUEST_URI, strrpos($REQUEST_URI, '/') + 1);
$retour = $HTTP_GET_VARS['retour'];
if (!$retour)
$retour = rawurlencode($lien);
if ($forums_publics == 'abo') {
if (!forum_abonnement($retour)) return;
}
$ret .= "\n\n";
if ($forums_publics == "pri") {
$ret.= _T('forum_info_modere')."
"; } // Recuperer le message a previsualiser if ($id_message = intval($id_message)) { $query_forum="SELECT * FROM spip_forum WHERE ip=\"$REMOTE_ADDR\" AND id_forum=$id_message"; $result_forum=spip_query($query_forum); while($row = spip_fetch_array($result_forum)) { $titre=$row['titre']; $texte=$row['texte']; $auteur=$row['auteur']; $email_auteur=$row['email_auteur']; $nom_site_forum=$row['nom_site']; $url_site=$row['url_site']; } if ($afficher_texte != 'non') { $ret .= "
"._T('forum_avez_selectionne'); while ($row = spip_fetch_array($result_mots)) { $id_mot = $row['id_mot']; $type_mot = $row['type']; $titre_mot = $row['titre']; $les_mots[$id_mot] = true; $presence_mots = true; $ret.= "
"); } } else { die ("
"); } // Ne pas autoriser de changement de nom si le forum est sur abonnement $auteur = $auteur_session['nom']; $email_auteur = $auteur_session['email']; } // Verification des donnees et gestion du cache if ($validation_finale) { if (!verifier_action_auteur("ajout_forum $forum_id_rubrique $forum_id_parent $forum_id_article $forum_id_breve $forum_id_syndic $alea", $hash)) { @header("Location: $retour_forum"); exit; } if ((strlen($texte) + strlen($titre) + strlen($nom_site_forum) + strlen($url_site) + strlen($auteur) + strlen($email_auteur)) > 20 * 1024) { die ("
"); } unset($where); if ($forum_id_article) $where[] = "id_article=$forum_id_article"; if ($forum_id_rubrique) $where[] = "id_rubrique=$forum_id_rubrique"; if ($forum_id_breve) $where[] = "id_breve=$forum_id_breve"; if ($forum_id_parent) $where[] = "id_forum=$forum_id_parent"; if ($where) { $query = "SELECT fichier FROM spip_forum_cache WHERE ".join(' OR ', $where); $result = spip_query($query); unset($fichiers); while ($row = spip_fetch_array($result)) { $fichier = $row["fichier"]; @unlink("CACHE/$fichier"); @unlink("CACHE/$fichier.NEW"); $fichiers[] = "'".$fichier."'"; } if ($fichiers) { $fichiers = join(',', $fichiers); $query = "DELETE FROM spip_forum_cache WHERE fichier IN ($fichiers)"; spip_query($query); } } } switch ($forums_publics) { case "non": $etat = "off"; break; case "pri": $etat = "prop"; break; default: $etat = "publie"; break; } if (!$id_auteur) $id_auteur = $GLOBALS['auteur_session']['id_auteur']; if ($new == "oui") { $nouveau_document = true; if ($HTTP_GET_VARS['titre']){ $titre = "> ".rawurldecode($HTTP_GET_VARS['titre']); } $query_forum = "INSERT INTO spip_forum (date_heure, titre, ip, statut) VALUES (NOW(), \"".addslashes($titre)."\", \"$REMOTE_ADDR\", \"redac\")"; $result_forum = spip_query($query_forum); $id_message = spip_insert_id(); } // Ajouter les mots-cles $query_mots = "DELETE FROM spip_mots_forum WHERE id_forum='$id_message'"; $result_mots = spip_query($query_mots); if ($ajouter_mot){ for (reset($ajouter_mot); $key = key($ajouter_mot); next($ajouter_mot)){ $les_mots .= ",".join($ajouter_mot[$key],","); } $les_mots = explode(",", $les_mots); for ($index = 0; $index < count($les_mots); $index++){ $le_mot = $les_mots[$index]; if ($le_mot > 0) spip_query("INSERT INTO spip_mots_forum (id_mot, id_forum) VALUES ('$le_mot', '$id_message')"); } } $query_forum = "UPDATE spip_forum SET id_parent = $forum_id_parent, id_rubrique =$forum_id_rubrique, id_article = $forum_id_article, id_breve = $forum_id_breve, id_syndic = \"$forum_id_syndic\", date_heure = NOW(), titre = \"$titre\", texte = \"$texte\", nom_site = \"$nom_site_forum\", url_site = \"$url_site\", auteur = \"$auteur\", email_auteur = \"$email_auteur\", ip = \"$REMOTE_ADDR\", statut = \"redac\", id_auteur = \"$id_auteur\" WHERE id_forum = '$id_message'"; $result_forum = spip_query($query_forum); if ($validation_finale) { spip_query("UPDATE spip_forum SET statut=\"$etat\" WHERE id_forum='$id_message'"); $texte = stripslashes($texte); $titre = stripslashes($titre); $auteur = stripslashes($auteur); $email_auteur = stripslashes($email_auteur); // Poser un cookie pour ne pas retaper le nom / email $cookie_user = array('nom' => $auteur, 'email' => $email_auteur); spip_setcookie('spip_forum_user', serialize($cookie_user)); // Envoi d'un mail aux auteurs $prevenir_auteurs = lire_meta("prevenir_auteurs"); if ($prevenir_auteurs == "oui" AND $afficher_texte != "non") { if ($id_article = $forum_id_article) { $url = ereg_replace('^/', '', generer_url_article($id_article)); $adresse_site = lire_meta("adresse_site"); $nom_site_spip = lire_meta("nom_site"); $url = "$adresse_site/$url"; $courr = _T('form_forum_message_auto')."\n\n"; $parauteur = ''; if (strlen($auteur) > 2) { $parauteur = " "._T('forum_par_auteur', array('auteur' => $auteur)); if ($email_auteur) $parauteur .= " <$email_auteur>"; } $courr .= _T('forum_poste_par', array('parauteur' => $parauteur))."\n"; $courr .= _T('forum_ne_repondez_pas')."\n"; $courr .= "$url\n"; $courr .= "\n\n".$titre."\n\n".textebrut(propre($texte))."\n\n$nom_site_forum\n$url_site\n"; $sujet = "[$nom_site_spip] ["._T('forum_forum')."] $titre"; $query = "SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien ". "WHERE lien.id_article='$id_article' AND auteurs.id_auteur=lien.id_auteur"; $result = spip_query($query); while ($row = spip_fetch_array($result)) { $email_auteur = trim($row["email"]); if (strlen($email_auteur) < 3) continue; envoyer_mail($email_auteur, $sujet, $courr); } } } @header("Location: $retour_forum"); exit; } } ?>