#!/usr/bin/perl # # REF: resoobbsconf.pl # ResooSite v.0.9.5.3 -(p)Resoo 2002-2004 # (c)2004 - pascal blain / GNU GPL - General Public License # http://www.resoo.com/resoosite # pascal@resoo.org # require "resoobbscnf.pl"; ########################################################################### # Configurer les options #### options établies dans resoobbscnf.pl (fichier utilisateur): #$show_faq = 1; # 1 = OUI; 0 = NON #$allow_html = 0; # 1 = OUI; 0 = NON #$allow_links = 0; # 1 = OUI; 0 = NON #$allow_img = 0; # 1 = OUI; 0 = NON #$quote_text = 0; # 1 = OUI; 0 = NON #$subject_line = 2; # 2 = Reprendre l'objet (champ editable) # 1 = Reprendre l'objet (champ non-editable) # 0 = Ne pas reprendre l'objet (champ editable) #$use_time = 0; # 1 = OUI; 0 = NON #$show_mesg = 0; # 0 = par sujet; 1 = par date #$defautnumtopic = 12; # nb de sujets par page #$defautnummesg = 20; # nb de messages par page #$use_upass = "1"; # 2 = OUI; 1 = NON #$decroche = 4; #$moderation = 0; # 0 = non; 1 = oui #$bbsfontface = ""; #$bbsfontsize = ""; #$bbsfontcolor = ""; #$coul_bbslien = ""; #$coul_bbslien_vu = ""; #$coul_bbslien_actif = ""; #$use_cadre = "1"; # 1 = OUI; 0 = NON #$use_head = "1"; # 2 = OUI; 1 = NON (use_headbbs) #$couleur_bbs1 = ""; #$couleur_bbs2 = ""; #$email_mod = "$email"; #$bbsname_mod = "Modérateur"; #$bbssubject_eff = "message supprimé"; #$bbsbodymess_eff = "Ce message a été supprimé du forum, vous pouvez obtenir plus de renseignements sur le fonctionnement et les règles de ce forum en adressant un email au(x) modérateur(s) du forum"; #### options établies dans resooconf.pl (fichier conf): #$dir_bbs = "../bbs"; #$mesgdir = "../bbs/message"; #$mesgdirtmp = "../bbs/mess"; #$ext1 = "txt"; #$ext2 = "top"; #$datafile = "data.txt"; #$datafiletmp = "data2.txt"; #$faqfile = "faq"; # &get_date # &get_comp # &incr_comp #### options établies dans resoopao.pl (fichier conf): # &foot # &head #### options établies dans resoocnf.pl (fichier utilisateur): #$title = "..."; #$email = "..."; #+ les options "par défaut" #### les options par défaut: $titre = "$forumtitre $title"; $resooboard = "resooboardadmin.pl"; if (!$moderation) { $resooboardtmp = $resooboard; } else { $resooboardtmp = "resooboard.pl"; } if (!$email_mod) {$email_mod = $email;} $couleurtab_bbs1 = " bgcolor=\"$couleur_bbs1\""; $couleurtab_bbs2 = " bgcolor=\"$couleur_bbs2\""; if (!$couleur_bbs1) { $couleurtab_bbs1 = ""; } if (!$couleur_bbs2) { $couleurtab_bbs2 = ""; } if (!$bbsfontface) {$bbsfontface = $police2;} if (!$bbsfontsize) {$bbsfontsize = $taille_standard;} if (!$bbsfontcolor) {$bbsfontcolor = $couleur;} #if (!$coul_bbslien) {$coul_bbslien = $coul_lien;} #if (!$coul_bbslien_vu) {$coul_bbslien_vu = $coul_lien_vu;} #if (!$coul_bbslien_actif) {$coul_bbslien_actif = $coul_lien_actif;} $fontbbs = ""; $finfontbbs = "<\/FONT>"; ## tag body spécifique forum: #$body_bbs = ""; # Fin des options ########################################################################### # Codes action: # 0 Appel de la page index resoobbs # 0 Appel de la page modération (resooboardadmin) # 1 #### mode création # 1 Création à partir de resooboard (topic et reponses) (modération) # 1 Création à partir de resooboard (topic et reponses) (sans modération) # 10 Création à partir de resooboardadmin (topic) # 2 #### mode modération (liste) # 21 Validation (sans modif) d'un fichier tmp # 29 Suppression (sans visu) d'un fichier tmp # 3 #### mode modération (interface) # 30 Affichage de l'interface d'édition (fichier tmp) # 31 Validation (après modif) d'un fichier tmp # 39 Suppression d'un fichier tmp # 4 #### mode édition # 40 Affichage de l'interface d'édition (message) # 41 Modification d'un fichier message # 42 Suppression des données d'un fichier message (efface) # 48 Suppression d'un message/topic et recréation des liens # 49 Suppression d'un fil de discussion complet # 50 Vue liste log # 52 Vue liste complete (mode suppression/edition) # 59 Vue liste des topics (mode suppression multiple) ########################################################################### # Retourner un message d'erreur HTML a l'utilisateur - Subroutine sub error { $error = $_[0]; print "Content-type: text/html\; charset=ISO-8859-1\n\n"; &head_bbs; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$font\n"; if ($error eq 'no_name') { print "

ERREUR: absence de nom

\n"; print "Vous avez oublié de servir le champ 'Nom' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error; } elsif ($error eq 'no_name_admin') { print "

ERREUR: absence de nom

\n"; print "Vous avez oublié de servir le champ 'Nom' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error_admin; } elsif ($error eq 'no_subject') { print "

ERREUR: absence de titre

\n"; print "Vous avez oublié de servir le champ 'Titre' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error; } elsif ($error eq 'no_subject_admin') { print "

ERREUR: absence de titre

\n"; print "Vous avez oublié de servir le champ 'Titre' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error_admin; } elsif ($error eq 'no_body') { print "

ERREUR: absence de message

\n"; print "Vous avez oublié de servir le champ 'Message' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error; } elsif ($error eq 'no_body_admin') { print "

ERREUR: absence de message

\n"; print "Vous avez oublié de servir le champ 'Message' de votre envoi.
Corriger le ci-dessous et envoyez-le à nouveau.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; &rest_of_form_error_admin; } elsif ($error eq 'no_pass') { print "

ERREUR: mot de passe

\n"; print "La possibilité de saisir un mot de passe est momentanément suspendu.
Merci de laisser le champs 'mot de passe' vide.
Votre message sera validé par un modérateur du site.


\n"; &rest_of_form_error; } elsif ($error eq 'bad_pass') { print "

ERREUR: mot de passe inconnu

\n"; print "Si vous ne possédez pas de mot de passe valide, laissez le champs 'mot de passe' vide.
Votre message sera validé par un modérateur du site.


\n"; &rest_of_form_error; } elsif ($error eq 'no_file') { print "

ERREUR : fichier introuvable

\n"; print "Mauvaise configuration du script.


\n"; } elsif ($error eq 'no_file_admin') { print "

ERREUR : fichier introuvable

\n"; print "Le fichier temporaire est introuvable, ce message a déjà été modéré.


\n"; &retourbbsadmin; } elsif ($error eq 'no_perm') { print "

ERREUR: impossible de créer le fichier

\n"; print "Mauvaise configuration du script.


\n"; } elsif ($error eq 'no_perm2') { print "

ERREUR: impossible d'ouvrir le fichier

\n"; print "Mauvaise requête.


\n"; } elsif ($error eq 'bad_file_admin') { print "

ERREUR : fichier introuvable

\n"; print "Le fichier demandé est introuvable...


\n"; &retourbbsadmin; } elsif ($error eq 'no_topic_admin') { print "

ERREUR : fichier non valide

\n"; print "Le fichier demandé n'est pas un fichier valide...


\n"; &retourbbsadmin; } elsif ($error eq 'no_other') { print "

ERREUR: champs incomplet

\n"; print "Vous avez oublié de servir un champs.
Les champs obligatoires sont: Nom, Titre et Message.


\n"; } else { print "

ERREUR! Indéfinie.


\n"; } print "$finfont\n"; print "

\n"; &foot_gen; exit; } ########################################################################### ########################################################################### # Formulaire de saisie utilise en fond de page ### formulaire de la page index sub rest_of_form_index { print "
\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; if (($num) and ($subject_line == 2)) { print "\n"; } elsif (($num) and ($subject_line == 1)) { print "\n"; print "\n"; } else { print "\n"; } print "\n"; if (($moderation == 1) and ($use_upass == 2)) { print "\n"; } print "\n"; print "
$font Nom: $finfont
$font E-Mail: $finfont
$font Titre: $finfont
$font Titre: $finfont Re: $bbssubject
$font Titre: $finfont
$font Message: $finfont
\n"; print "
$fontpetiteSi vous possédez un mot de passe, indiquez le ci-dessous, sinon laissez vide:$finfontpetite
\n"; print "
\n"; } ### formulaire des pages erreurs (reprise des champs du formulaire) sub rest_of_form_error { print "
\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; if (($orignum) and ($subject_line == 1)) { print "\n"; print "\n"; } else { print "\n"; } print "\n"; print "\n"; if (($moderation == 1) and ($use_upass == 2)) { print "\n"; } print "\n"; print "
$font Nom: $finfont
$font E-Mail: $finfont
$font Titre: $finfont $FORM{'bbssubject'}
$font Titre: $finfont
$font Message: $finfont
\n"; print "
$fontpetiteSi vous en possédez un, indiquez ci-dessous votre mot de passe:$finfontpetite
\n"; print "
\n"; } ### formulaire de la page admin sub rest_of_form_admin { print "
\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Nom: $finfont
$font E-Mail: $finfont
$font Titre: $finfont
$font Message: $finfont
\n"; print "
\n"; } ### formulaire admin edition/modération (reprise des champs "orig") sub rest_of_form_admin1 { print "
\n"; if ($action == 30) { print "\n"; } if ($action == 40) { print "\n"; } print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Nom: $finfont
$font E-Mail: $finfont
$font Titre: $finfont
$font Message: $finfont
\n"; $bbsbodymess =~ s/

/\n\n/g; $bbsbodymess =~ s/
/\n/g; $bbsbodymess =~ s//>/g; $bbsbodymess =~ s/\"/"/g; print "

\n"; print "
\n"; print ""; print "\n"; print "\n"; print "
\n"; if ($action == 30) { print "\n"; } if ($action == 40) { print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; } print "\n"; print "\n"; print "\n"; print "
\n"; } ### formulaire des pages erreurs (reprise des champs du formulaire) sub rest_of_form_error_admin { print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; if (($orignum) and ($subject_line == 1)) { print "\n"; print "\n"; } else { print "\n"; } print "\n"; print "\n"; print "
$font Nom: $finfont
$font E-Mail: $finfont
$font Titre: $finfont $FORM{'bbssubject'}
$font Titre: $finfont
$font Message: $finfont
\n"; print "
\n"; } ########################################################################### ########################################################################### # Récupère les données du fichier message sub get_mesg { $bbsip = @board[0]; $bbsip =~ s/\n//; $bbsname = @board[1]; $bbsname =~ s/\n//; $bbsemail = @board[2]; $bbsemail =~ s/\n//; $bbsdate = @board[3]; $bbsdate =~ s/\n//; $bbsheure = @board[4]; $bbsheure =~ s/\n//; $bbssubject = @board[5]; $bbssubject =~ s/\n//; $bbsbodymess = @board[6]; $bbsbodymess =~ s/\n//; $num = @board[7]; $num =~ s/\n//; $followup = @board[8]; $followup =~ s/\n//; $orignum = @board[9]; $orignum =~ s/\n//; $message_img = @board[10]; $message_img =~ s/\n//; $message_url = @board[11]; $message_url =~ s/\n//; $message_url_title = @board[12]; $message_url_title =~ s/\n//; $follow_up = $followup; $follow_up =~ s/^\|//; $follow_up =~ s/\|$//; $follow_up =~ s/\n//; @followups = split(/\|/,$follow_up); $num_followup = @followups; } sub get_mesg2 { $bbsip2 = @board2[0]; $bbsip2 =~ s/\n//; $bbsname2 = @board2[1]; $bbsname2 =~ s/\n//; $bbsemail2 = @board2[2]; $bbsemail2 =~ s/\n//; $bbsdate2 = @board2[3]; $bbsdate2 =~ s/\n//; $bbsheure2 = @board2[4]; $bbsheure2 =~ s/\n//; $bbssubject2 = @board2[5]; $bbssubject2 =~ s/\n//; $bbsbodymess2 = @board2[6]; $bbsbodymess2 =~ s/\n//; $num2 = @board2[7]; $num2 =~ s/\n//; $followup2 = @board2[8]; $followup2 =~ s/\n//; $orignum2 = @board2[9]; $orignum2 =~ s/\n//; $message_img2 = @board2[10]; $message_img2 =~ s/\n//; $message_url2 = @board2[11]; $message_url2 =~ s/\n//; $message_url_title2 = @board2[12]; $message_url_title2 =~ s/\n//; $follow_up2 = $followup2; $follow_up2 =~ s/^\|//; $follow_up2 =~ s/\|$//; $follow_up2 =~ s/\n//; @followups2 = split(/\|/,$follow_up2); $num_followup2 = @followups2; } sub openmesg { $m_file = $_[0]; $mfile = "$mesgdir/$m_file.$ext1"; open(FILE,"$mfile"); @board = ; close(FILE); &get_mesg; print "
  • $font$bbssubject - $bbsname - $bbsdate"; if ($use_time) { print " - $bbsheure"; } else { print ""; } if ($num_followup) { if ($num_followup == 1) { print " - (1 réponse)$finfont\n"; } else { print " - ($num_followup réponses)$finfont\n"; } } else { # print " - (pas de réponse)$finfont\n"; print "$finfont\n"; } $followup =~ s/^\|//; $followup =~ s/\|$//; $followup =~ s/\n//; if ($followup){ if ($w<$decroche) { print "
      \n"; } $w++; my @followups = split(/\|/,$followup); foreach $followupnum(reverse @followups) { &openmesg("$followupnum"); } if ($w<$decroche+1) { print "
    \n"; } $w--; } } sub openmesg2 { $m_file = $_[0]; $mfile = "$mesgdir/$m_file.$ext1"; open(FILE,"$mfile"); @board2 = ; close(FILE); &get_mesg2; print "
  • $font$bbssubject2 - $bbsname2 - $bbsdate2"; if ($use_time) { print " - $bbsheure2"; } else { print ""; } if ($num_followup2) { if ($num_followup2 == 1) { print " - (1 réponse)$finfont\n"; } else { print " - ($num_followup2 réponses)$finfont\n"; } } else { # print " - (pas de réponse)$finfont\n"; print "$finfont\n"; } $followup2 =~ s/^\|//; $followup2 =~ s/\|$//; $followup2 =~ s/\n//; if ($followup2){ if ($w<$decroche) { print "
      \n"; } $w++; my @followups2 = split(/\|/,$followup2); foreach $followupnum(reverse @followups2) { &openmesg2("$followupnum"); } if ($w<$decroche+1) { print "
    \n"; } $w--; } } sub openresp { $m_file = $_[0]; $mfile = "$mesgdir/$m_file.$ext1"; open(FILE,"$mfile"); @board2 = ; close(FILE); &get_mesg2; print "
  • $font$bbssubject2 - $bbsname2 - $bbsdate2"; if ($use_time) { print " - $bbsheure2"; } else { print ""; } if ($num_followup2) { if ($num_followup2 == 1) { print " - (1 réponse)$finfont\n"; } else { print " - ($num_followup2 réponses)$finfont\n"; } } else { # print " - (pas de réponse)$finfont\n"; print "$finfont\n"; } $followup2 =~ s/^\|//; $followup2 =~ s/\|$//; $followup2 =~ s/\n//; if ($followup2){ if ($w<$decroche) { print "
      \n"; } $w++; my @followups2 = split(/\|/,$followup2); foreach $followupnum(reverse @followups2) { &openresp("$followupnum"); } if ($w<$decroche+1) { print "
    \n"; } $w--; } } 1;