#! /usr/bin/perl

print "Content-type: text/html\n\n";

use DBI;
push(@INC,"e:\\html\\test\\cgi-bin");
require "myvars.pl";


$Daten = $ENV{'QUERY_STRING'};
@Felder = split(/&/, $Daten);

foreach $Feld (@Felder)
{
  ($name, $value) = split(/=/, $Feld);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s/<!--(.|\n)*-->//g;

  if ($name eq "number")
  {
    $number = $value;
  }
  if ($name eq "threadRoot")
  {
    $threadRoot = $value;
  }
}

my $dbh = DBI->connect( $dbName, $dbUser, $dbPw) ||
     die "Kann keine Verbindung zum MySQL-Server aufbauen: $DBI::errstr\n";

my $sth = $dbh->prepare("select title, user, date, text, c, thread, mail, www from forum where c = $number");
my $results = $sth->execute() or die "Kann Abfrage nich ausführen: $DBI::errstr\n";

open(FH, "<msgtemplate_1.html") or die "Template nicht gefunden";
while (<FH>)
{
  print $_;
}
close (FH);

if (my @result = $sth->fetchrow_array )
{

  $result[3] =~ s/[<].*?([>|\n]|$)//g;
  $result[3] =~ s/(http:\/\/)(.*?)([ |\n|\)|\!|\?])/<a href = "http:\/\/$2" target = _blank>$1$2<\/a>$3/g;
  $result[3] =~ s/[\n]/<br>/g;


  print "<table width = \"100%\" class = \"rahmen\"><tr><td bgcolor = \"#602c28\">";

  print "<table width = \"100%\" class = \"forumentry\"><tr><th>$result[0]</th><th>by $result[1]</th><th>$result[2]</th></tr>\n";
  print "<tr><td colspan = 3>$result[3]</td></tr>\n";
  print "</table>\n";

  print "<table width = \"100%\">";
  print "<tr><th width = \"27%\"><font size = 1>$result[1]'s eMail:<th width = \"30%\"><font size = 1><a href = \"mailto:$result[6]\">$result[6]</a></th><TD></TD></tr>";
  print "<tr><th><font size = 1>$result[1]'s Homepage:<th><font size = 1><a href = \"$result[7]\" target = \"_blank\">$result[7]</a></th><TD></TD></tr>";
  print "</table>\n";

  print "</table><br>";

  print "<table width = \"50%\"><tr><th><a href = \"addforumentryform.pl?parent=$result[4]&thread=$result[5]&title=$result[0]\">Add Reply</a></th>";
  print "<th><a href = \"forum.pl?thread=0\">View Forum</a></th></tr>";
  print "</td></tr></table><br>\n";

  $thread = $result[5];
}
$sth->finish();







print "<table border = 0 width = \"100%\" class = \"rahmen\">\n<tr>\n<td bgcolor = \"#602c28\">\n";
print "<table border = 0 width = \"100%\">\n";
print "<tr><th>Thread:</th></tr>\n";
print "<tr><td bgcolor = \"#602c28\">\n";


# Thread anzeigen

my $sth = $dbh->prepare("select title, user, date, c, reftype, ref from forum  where thread = $thread and parent = 0 order by c desc");
my $results = $sth->execute() or die "Kann Abfrage nich ausführen: $DBI::errstr\n";

if (@result = $sth->fetchrow_array )
{
  $reftype = $result[4];
  $ref = $result[5];
  my $level = 0;
  # bei Responses vorher noch den original Beitrag anzeigen
  if ($ref != 0)
  {
    print "<table  border = 0 cellspacing = 0 cellpadding = 2 class = \"list\">\n";
    print "<tr><td><a href = \"/cgi-bin/showarticle.pl?reftype=$reftype&ref=$ref\">View Article ($reftype)</a> (this thread is a response to an article)</td></tr>";
    print "</table>";
    $level += 10;
  }

  print "<table  border = 0  cellspacing = 0 cellpadding = 2 class = \"list\">";
  if ($result[3] == $number)
  {
    print "  <tr bgcolor = \"#a24012\">\n";
    print "    <td width = $level></td>\n    <td><b>$result[0] ($result[1], $result[2])</b></td>\n";
    print "    <td></td>\n";
  }
  else
  {
    print "  <tr>\n";
    print "    <td width = $level></td>\n    <td><a href = \"showforumentry.pl?number=$result[3]\">$result[0] ($result[1], $result[2])</a></td>\n";
    print "    <td></td>\n";
  }
  print "</tr></table>\n";
  ListReplies($result[3], $level + 10);
}

print "</td></tr></table>";
print "</td></tr></table>\n";


$sth->finish();
$dbh->disconnect();




open(FH, "<msgtemplate_2.html") or die "Template nicht gefunden";
while (<FH>)
{
  print $_;
}
close (FH);



sub ListReplies
{
  $parent = $_[0];
  my $level = $_[1];
  my $sth = $dbh->prepare("select title, user, date, c from forum where parent = $parent order by c desc");
  my $results = $sth->execute() or die "Kann Abfrage nich ausführen: $DBI::errstr\n";
  if ($results != 0)
  {
    while (my @result = $sth->fetchrow_array )
    {
      print "<table border = 0 cellspacing = 0 cellpadding = 2  class = \"list\">\n";
      if ($result[3] == $number)
      {
        print "  <tr bgcolor = \"#a24012\">\n";
        print "    <td width = $level></td>\n    <td><b>$result[0] ($result[1], $result[2])</b></td>\n";
        print "    <td></td>\n";
      }
      else
      {
        print "  <tr>";
        print "    <td width = $level></td>\n    <td><a href = \"showforumentry.pl?number=$result[3]\">$result[0] ($result[1], $result[2])</a></td>\n";
        print "    <td></td>\n";
      }
      print "  </tr>\n";
      print "</table>\n";
      ListReplies($result[3], $level + 10);
    }
  }
}

