#!/usr/bin/perl use lib "./lib"; use CGI; use strict; use CGI::Carp qw(fatalsToBrowser); use sitevariables; use common; use lang; if($svb::use_imagemagick eq "yes"){ require "imagemagick.pl"; } package dft; our $cur = CGI::new(); print "Content-type:text/html\n\n"; our $mode = $cur->param('mode'); our $onpage = $cur->param('page'); our $content; if ($mode eq "single"){ $content .= viewsingle(); }elsif($mode eq "viewone"){ $content .= viewone(); }else{ $content .= viewall(); } print cmn::printpage($svb::templatefile,$content); sub viewall{ my ($return,$filetype,$temp,$printfiles,@lines,$num); $num = 1; $return .= "\n
$svb::fontheader$svb::title
\n"; open (INFILE, "./$svb::post_template")||cmn::dienice("$lang::read_file_error - ./$svb::post_template\: $!!"); while (){ $temp .= $_; } close INFILE; $temp =~ s///; open (INFILE, "./data.blog")||cmn::dienice("$lang::read_file_error - ./data.blog\: $!!"); @lines = ; close INFILE; my $total = @lines; my $countpages = 1; if ($total > $svb::page){ if($onpage != 1){ $return .= "

$svb::fontsmall$lang::page 1 "; }else{ $return .= "

$svb::fontsmall$lang::page 1 "; } while ($total-($svb::page*$countpages) > 0){ $countpages++; if($onpage != $countpages){ $return .= "$countpages "; }else{ $return .= "$countpages "; } } $return .= "

"; } @lines = reverse @lines; if(!@lines){ $return .= "
$svb::fontsmall $lang::noposts" } my $count4; if($onpage > 1){ while ($count4 < $svb::page*($onpage-1)){ shift @lines; $count4++; } } foreach (@lines){ if($num <= $svb::page){ chomp ($_); my $temp2 = "\n\n $temp\n\n\n"; my ($date,$title,$text) = split(/###/,$_); $text =~ s/\n/
\n/ig; my @files = glob("$svb::htmlsystempath/$date*"); foreach (@files){ $_ =~ s/.*\/(\d+-\d+(-big)?\.[\w\d]+)/$1/ig; if($_ =~ /(\.wmv|\.mpg|\.mov|\.avi|\.rm|\.ra|\.asf|\.moov|\.movie)$/ig){ $filetype .= "$lang::movie "; }elsif($_ =~ /(\.jpg|\.gif|\.tif|\.png|\.bmp|\.jpeg)$/ig){ # begin changed by mike to allow for thumbnails my $link_text = ""; my $link_text_end = ""; my ($width,$height); if(-e "$svb::htmlsystempath/big/$_" && $svb::use_imagemagick =~ /yes/i){ ($width,$height) = IMG::get_size("$svb::htmlsystempath/big/$_"); $width += 20; $height += 20; $link_text = ""; $link_text_end = ""; } $temp2 =~ s/\[picture\]/$link_text$link_text_end/ig; # end changed by mike }elsif($_ =~ /(\.pcx|\.pict|\.pdf|\.ps|\.prn|\.eps)$/ig){ $filetype .= "$lang::image "; }elsif($_ =~ /(\.doc|\.rtf|\.wps|\.txt|\.htm|\.html|\.shtml|\.pwd|\.wks|\.wpd|\.wri|\.hed|\.lwp|\.wp|\.pp|\.sxc|\.sxi)$/ig){ $filetype .= "$lang::text_document "; }elsif($_ =~ /(\.tar|\.tar.gz\.tgz|\.bz2|\.bz|\.zip|\.cab)$/ig){ $filetype .= "$lang::archive "; }elsif($_ =~ /(\.c|\.cpp|\.cxx|\.h|\.o|\.p|\.pl|\.pm|\.cgi|\.php|\.asp|\.prg|\.sc|\.asm|\.cob |\.cpi|\.cv|\.sh|\.tsh|\.csh|\.scp)$/ig){ $filetype .= "$lang::code "; }elsif($_ =~ /(\.wdb|\.adb|\.cdx|\.dbc|\.dbf|\.dbt|\.mdb|\.ntf|\.dif|\.slk|\.syl|\.wkq|\.wkr|\.xls)$/ig){ $filetype .= "$lang::dbss "; }elsif($_ =~ /(\.au|\.mp3|\.wav|\.ogg|\.aif|\.wma|\.ra|\.ram|\.cda|\.mp2|\.snd|\.voc|\.mod|\.mid|\.midi)$/ig){ $filetype .= "$lang::audio "; }else{ $filetype .= "$lang::unknown "; } } # foreach @files my $readmore_text; if(length($text) > $svb::textmax && $svb::textmax > 0){ $text = substr($text,0,$svb::textmax); $text =~ s/\b\w+$/\.\.\./ig; $readmore_text = "$lang::readmore<\/a> | "; }else{ $readmore_text = ""; } my $pdate = cmn::mydate($date); $temp2 =~ s/\[date\]/$pdate/ig; $temp2 =~ s/\[readmore\]/$readmore_text/ig; $temp2 =~ s/\[text\]/$text/ig; $temp2 =~ s/\[title\]/$title/ig; $temp2 =~ s/\[picture\]//ig; if ($filetype){ $filetype = "

$lang::attached_file\:   $filetype
"; } $temp2 =~ s/\[attachedfiles\]/$filetype/ig; my $cstring = $lang::comments; if (-e "./comments/$date.txt"){ open(COMMENTS,"<./comments/$date.txt"); my @count = (); my $count = @count; close COMMENTS; $cstring = "
$count $cstring "; }else{ $cstring = "$lang::no_comments"; } $temp2 =~ s/\[comments\]/$cstring/ig; $return .= $temp2; undef $printfiles; undef $temp2; undef $filetype; $num++; } # if $num <= $svb::page } # foreach @lines my $countpages = 1; if ($total > $svb::page){ if($onpage != 1){ $return .= "

$svb::fontsmall$lang::page 1 "; }else{ $return .= "

$svb::fontsmall$lang::page 1 "; } while ($total-($svb::page*$countpages) > 0){ $countpages++; if($onpage != $countpages){ $return .= "$countpages "; }else{ $return .= "$countpages "; } } $return .= "

"; } $return .= "
"; return $return; } # sub viewall sub viewone{ my ($return,$filetype,$temp,$printfiles,@lines); my $blog = $cur->param('blog'); $return .= "\n
$svb::fontheader$svb::title
\n"; open (INFILE, "./$svb::post_template")||cmn::dienice("$lang::read_file_error - ./$svb::post_template\: $!!"); while (){ $temp .= $_; } close INFILE; $temp =~ s///; open (INFILE, "./data.blog")||cmn::dienice("$lang::read_file_error - ./data.blog\: $!!"); @lines = ; close INFILE; @lines = reverse @lines; foreach (@lines){ chomp ($_); my $temp2 = "\n\n

$temp
\n\n\n"; my ($date,$title,$text) = split(/###/,$_); if($date == $blog){ $text =~ s/\n/
\n/ig; my @files = glob("$svb::htmlsystempath/$date*"); foreach (@files){ $_ =~ s/.*\/(\d+-\d+\.[\w\d]+)/$1/ig; if($_ =~ /(\.wmv|\.mpg|\.mov|\.avi|\.rm|\.ra|\.asf|\.moov|\.movie)$/ig){ $filetype .= "$lang::movie "; }elsif($_ =~ /(\.jpg|\.gif|\.tif|\.png|\.bmp|\.jpeg)$/ig){ # begin changed by mike to allow for thumbnails my $base_name = $_; my $link_text = ""; my $link_text_end = ""; my ($width,$height); $base_name =~ s/\.[\w\d]+$//; if(-e "$svb::htmlsystempath/$base_name-big.jpg" && $svb::use_imagemagick =~ /yes/i){ ($width,$height) = IMG::get_size("$svb::htmlsystempath/$base_name-big.jpg"); $link_text = ""; $link_text_end = ""; } $temp2 =~ s/\[picture\]/$link_text$link_text_end/ig; # end changed by mike }elsif($_ =~ /(\.pcx|\.pict|\.pdf|\.ps|\.prn|\.eps)$/ig){ $filetype .= "$lang::image "; }elsif($_ =~ /(\.doc|\.rtf|\.wps|\.txt|\.htm|\.html|\.shtml|\.pwd|\.wks|\.wpd|\.wri|\.hed|\.lwp|\.wp|\.pp|\.sxc|\.sxi)$/ig){ $filetype .= "$lang::text_document "; }elsif($_ =~ /(\.tar|\.tar.gz\.tgz|\.bz2|\.bz|\.zip|\.cab)$/ig){ $filetype .= "$lang::archive "; }elsif($_ =~ /(\.c|\.cpp|\.cxx|\.h|\.o|\.p|\.pl|\.pm|\.cgi|\.php|\.asp|\.prg|\.sc|\.asm|\.cob |\.cpi|\.cv|\.sh|\.tsh|\.csh|\.scp)$/ig){ $filetype .= "$lang::code "; }elsif($_ =~ /(\.wdb|\.adb|\.cdx|\.dbc|\.dbf|\.dbt|\.mdb|\.ntf|\.dif|\.slk|\.syl|\.wkq|\.wkr|\.xls)$/ig){ $filetype .= "$lang::dbss "; }elsif($_ =~ /(\.au|\.mp3|\.wav|\.ogg|\.aif|\.wma|\.ra|\.ram|\.cda|\.mp2|\.snd|\.voc|\.mod|\.mid|\.midi)$/ig){ $filetype .= "$lang::audio "; }else{ $filetype .= "$lang::unknown "; } } # foreach @files my $pdate = cmn::mydate($date); $temp2 =~ s/\[date\]/$pdate/ig; $temp2 =~ s/\[readmore\]/$lang::back<\/a> |/ig; $temp2 =~ s/\[text\]/$text/ig; $temp2 =~ s/\[title\]/$title/ig; $temp2 =~ s/\[picture\]//ig; $temp2 =~ s/\[attachedfiles\]/$filetype/ig; $temp2 =~ s/\[comments\]/$lang::comments<\/a>/ig; $return .= $temp2; undef $printfiles; undef $temp2; undef $filetype; } # if date == blog } # foreach @lines $return .= "



$svb::fontheader $lang::comments
"; my @comments; if(!(-e "./comments/$blog.txt")){ $return .= "
$svb::fontsmall $lang::no_comments.

"; }else{ open(INFILE,"./comments/$blog.txt")||cmn::dienice("$lang::read_file_error\: comments file for $blog\: $!!"); @comments = ; close INFILE; $return .= ""; foreach(@comments){ my ($date,$a,$name,$email,$comments) = split(/###/,$_); $return .= ""; } # foreach comments $return .= "

$svb::fontsmall$name\:
 "; if($email =~ /^[\w\-\.]+\@[\w\-\.]+\.[\w\-\.]+$/i){ $return .= "" } $return .= "
$svb::fontsmall$comments
"; } # if the comments file exists return $return; } # sub viewone