📄 ikon.lib
字号:
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face=$font color=$fontcolormisc> <a href="javascript:history.go(-1)"> << 返回上一页</a>
</td></tr>
</table></td></tr></table>
~;
&printmessanger(
-Title => "$boardname - 短消息",
-ToPrint => $output,
-Version => $versionnumber
);
}
sub output {
my %args = (
-Title => "",
-ToPrint => "",
-Version => "",
@_,
);
my $title = $args{-Title};
my $output = $args{-ToPrint};
my $versionnumber = $args{-Version};
my $filetoopen = "$ikondir" . "data/template.dat";
$filetoopen = &stripMETA($filetoopen);
open(FILE,"$filetoopen") or die "没有找到 template.dat 文件!";
my @templatedata = <FILE>;
close(FILE);
$boardcopyright = qq(©\; $copyrightinfo) if $copyrightinfo;
### 请保留版权信息
### Removing this invalidates your license. Please keep intact.
my $copyright = qq~
<BR><center><hr width=330 size=1>
<table width=80% align=center cellpadding=0 cellspacing=0>
<tr><td align=center valign=middle>
<font face=宋体 color=$fontcolormisc>
中文版权所有: <a href="http://www.cgier.com/" target=_blank>CGI 编程者之家</a> 版本: <a href="http://www.joydown.com/ib2000/download.htm">$versionnumber</a>
</font></td></tr></table>
</center>
~;
# $boardcopyright<BR><BR>
### Keep this program free, and leave that code intact.
foreach my $line (@templatedata) {
$line =~ s/\$page_title/$title/sg;
$line =~ s/\$ikonboard_main/$output\n\n$copyright\n/sg;
print $line;
}
exit;
}
sub helpfiles {
my $helptype = shift;
my $helpurl = qq~<a href="javascript:openScript('help.cgi?helpon=$helptype',500,400)">~;
return $helpurl;
}
sub signikoncode {
my $signature = shift;
$signature =~ s/\<p>/<br><br>/isg;
$signature =~ s|\[\[|\{\{|g;
$signature =~ s|\]\]|\}\}|g;
$signature =~ s|\n\[|\[|g;
$signature =~ s|\]\n|\]|g;
$signature =~ s|<br>| <br>|g;
$signature =~ s|\[hr\]\n| |g;
$signature =~ s|\[hr\]| |g;
$signature =~ s/\[quote\](.*)\[quote\](.*)\[\/quote](.*)\[\/quote\]/$1<br>$2<br>$3<br>/isg;
$signature =~ s/\[quote\]\s*(.*?)\s*\[\/quote\]/$1/isg;
$signature =~ s/\[url\](\[\S+\])(\S+?)(\[\S+\])\[\/url\]/<a href=\"$2\"\ target=\"_blank\">$1$2$3<\/a>/isg;
$signature =~ s/\[url=(http|https|ftp):\/\/(\S+?)\]/<a href=\"$1:\/\/$2\"\ target=\"_blank\">/isg;
$signature =~ s/\[url=(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
$signature =~ s/\[url=\s*(.*?)\s*\]\s*(.*?)\s*\[\/url\]/<a href=\"$1\" target=\"_blank\">$2<\/a>/isg;
$signature =~ s/\[url\]\s*(http|https|ftp):\/\/(.*?)\s*\[\/url\]/<a href=\"$1:\/\/$2\" target=\"_blank\">$1:\/\/$2<\/a>/isg;
$signature =~ s/\[url\]\s*(.*?)\s*\[\/url\]/<a href=\"http:\/\/$1\" target=\"_blank\">$1<\/a>/isg;
$signature =~ s/\[\/url\]/<\/a>/isg;
$signature =~ s/(\[email\])(\S+\@\S+?)(\[\/email\])/<A HREF="mailto:$2">$2<\/A>/isg;
$signature =~ s/\ (http|https|ftp):\/\/(\S+?)\ / <a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$signature =~ s/<br>(http|https|ftp):\/\/(\S+?)\ /<br><a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$signature =~ s/^(http|https|ftp):\/\/(\S+?)\ /<a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$signature =~ s/\ www.(\S+?)\ / <a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$signature =~ s/<br>www.(\S+?)\ /<br><a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$signature =~ s/^www.(\S+?)\ /<a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$signature =~ s/\[b\]/<b>/isg;
$signature =~ s/\[\/b\]/<\/b>/isg;
$signature =~ s/\[i\]/<i>/isg;
$signature =~ s/\[\/i\]/<\/i>/isg;
$signature =~ s/\[font=\s*(.*?)\s*\]\s*(.*?)\s*\[\/font\]/<font face=\"$1\">$2<\/font>/isg;
$signature =~ s/\[u\]/<u>/isg;
$signature =~ s/\[br\]/<br>/isg;
$signature =~ s/\[\/u\]/<\/u>/isg;
$signature =~ s/\[color=(\S+?)\]/<font color=\"$1\">/isg;
$signature =~ s/\[\/color\]/<\/font>/isg;
$signature =~ s/\\(http|https|ftp):\/\/(\S+)/<a href=\"$1:\/\/$2\"\ target=\"_blank\">$1:\/\/$2<\/a>/isg;
$signature =~ s/\[code\](.+?)\[\/code\]/$1/isg;
$signature =~ s/\\(\S+?)\@(\S+)/<a href=\"mailto:$1\@$2\"\>$1\@$2<\/a>/ig;
$signature =~ s/\[email=(\S+?)\]/<a href=\"mailto:$1\">/isg;
$signature =~ s/\[\/email\]/<\/a>/isg;
$signature=~ s/<br>(\w+\@\w+\.\w+)/<br><A HREF="mailto:$1">$1<\/A>/isg;
$signature =~ s/^(\w+\@\w+\.\w+)/<A HREF="mailto:$1">$1<\/A>/isg;
$signature =~ s/\\(\w+\@\w+\.\w+)/<A HREF="mailto:$1">$1<\/A>/isg;
$signature =~ s/(\[fly\])(.+?)(\[\/fly\])/<marquee width=90% behavior=alternate scrollamount=3>$2<\/marquee>/isg;
$signature =~ s/(\[s\])(.+?)(\[\/s\])/<s>$2<\/s>/isg;
$signature =~ s/(\[sup\])(.+?)(\[\/sup\])/<sup>$2<\/sup>/isg;
$signature =~ s/(\[sub\])(.+?)(\[\/sub\])/<sub>$2<\/sub>/isg;
$signature =~ s/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/<DIV Align=$2>$4<\/DIV>/isg;
$signature =~ s/(\[SHADOW=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/SHADOW\])/<table width=$2 style="filter:shadow\(color=$4\, direction=$6)">$8<\/table>/isg;
$signature =~ s/(\[GLOW=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/GLOW\])/<table width=$2 style="filter:glow\(color=$4\, strength=$6)">$8<\/table>/isg;
$signature =~ s/(\[MOVE\])(.+?)(\[\/Move\])/<MARQUEE>$2<\/MARQUEE>/isg;
if ($arrawsignpic eq "on") {
$signature =~ s/(\[swf\])\s*(\S+?\.swf)\s*(\[\/swf\])/<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src="$2" quality=high pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>/isg;
$signature =~ s/\[img\]\s*(\S+?)\s*\[\/img\]/<img src=\"$1\" border=0>/isg;
}
if ($arrawsignfontsize eq "on") {
$signature =~ s/\[size=\s*(.*?)\s*\]\s*(.*?)\s*\[\/size\]/<font size=\"$1\">$2<\/font>/isg;
}
if ($arrawsignsound eq "on") {
$signature =~ s/(\[sound\])\s*(\S+?\.wav)\s*(\[\/sound\])/<bgsound src=\"$2\" border=0><img src=\"$imagesurl\/images\/mid.gif\" width=16 height=16 alt=MIDI音乐>/isg;
$signature =~ s/(\[sound\])\s*(\S+?\.mid)\s*(\[\/sound\])/<bgsound src=\"$2\" border=0><img src=\"$imagesurl\/images\/wave.gif\" width=16 height=16 alt=WAVE音乐>/isg;
}
$signature =~ s|\{\{|\[|g;
$signature =~ s|\}\}|\]|g;
$signature =~ s/\&/\&/isg;
$signature =~ s/"\;/\"/g;
return $signature;
} # end routine
sub ikoncode {
my $post = shift;
$post =~ s/\<p>/<br><br>/isg;
$post =~ s|\[\[|\{\{|g;
$post =~ s|\]\]|\}\}|g;
$post =~ s|\n\[|\[|g;
$post =~ s|\]\n|\]|g;
$post =~ s|<br>| <br>|g;
$post =~ s|\[hr\]\n|\<hr width=40\% align=left>|g;
$post =~ s|\[hr\]|\<hr width=40\% align=left>|g;
$post =~ s/\[quote\](.*)\[quote\](.*)\[\/quote](.*)\[\/quote\]/<blockquote><hr><font face=\"宋体, helvetica\">$1<\/font><blockquote><hr><font face=\"宋体, helvetica\">$2<\/font><hr><\/blockquote><font face=\"宋体, helvetica\">$3<\/font><hr><\/blockquote>/isg;
$post =~ s/\[quote\]\s*(.*?)\s*\[\/quote\]/<font face=宋体><blockquote><hr noshade>$1<hr noshade><\/blockquote><\/font>/isg;
$post =~ s/\[url\](\[\S+\])(\S+?)(\[\S+\])\[\/url\]/<a href=\"$2\"\ target=\"_blank\">$1$2$3<\/a>/isg;
$post =~ s/\[url=(http|https|ftp):\/\/(\S+?)\]/<a href=\"$1:\/\/$2\"\ target=\"_blank\">/isg;
$post =~ s/\[url=(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
$post =~ s/\[url=\s*(.*?)\s*\]\s*(.*?)\s*\[\/url\]/<a href=\"$1\" target=\"_blank\">$2<\/a>/isg;
$post =~ s/\[url\]\s*(http|https|ftp):\/\/(.*?)\s*\[\/url\]/<a href=\"$1:\/\/$2\" target=\"_blank\">$1:\/\/$2<\/a>/isg;
$post =~ s/\[url\]\s*(.*?)\s*\[\/url\]/<a href=\"http:\/\/$1\" target=\"_blank\">$1<\/a>/isg;
$post =~ s/\[\/url\]/<\/a>/isg;
$post =~ s/(\[email\])(\S+\@\S+?)(\[\/email\])/<A HREF="mailto:$2">$2<\/A>/isg;
$post =~ s/\ (http|https|ftp):\/\/(\S+?)\ / <a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$post =~ s/<br>(http|https|ftp):\/\/(\S+?)\ /<br><a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$post =~ s/^(http|https|ftp):\/\/(\S+?)\ /<a href=\"$1:\/\/$2\"\ target=\"_blank\">$1\:\/\/$2<\/a> /isg;
$post =~ s/\ www.(\S+?)\ / <a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$post =~ s/<br>www.(\S+?)\ /<br><a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$post =~ s/^www.(\S+?)\ /<a href=\"http:\/\/www.$1\"\ target=\"_blank\">http\:\/\/www.$1<\/a> /isg;
$post =~ s/\[b\]/<b>/isg;
$post =~ s/\[\/b\]/<\/b>/isg;
$post =~ s/\[i\]/<i>/isg;
$post =~ s/\[\/i\]/<\/i>/isg;
$post =~ s/\[font=\s*(.*?)\s*\]\s*(.*?)\s*\[\/font\]/<font face=\"$1\">$2<\/font>/isg;
$post =~ s/\[u\]/<u>/isg;
$post =~ s/\[br\]/<br>/isg;
$post =~ s/\[\/u\]/<\/u>/isg;
$post =~ s/\[color=(\S+?)\]/<font color=\"$1\">/isg;
$post =~ s/\[\/color\]/<\/font>/isg;
$post =~ s/\\(http|https|ftp):\/\/(\S+)/<a href=\"$1:\/\/$2\"\ target=\"_blank\">$1:\/\/$2<\/a>/isg;
$post =~ s/(\[list\])(.+?)(\[\/list\])/<ul>$2<\/ul>/isg;
$post =~ s/(\[list=s\])(.+?)(\[\/list\])/<ol type="square">$2<\/ol>/isg;
$post =~ s/(\[list=)(A|1|I)(\])(.+?)(\[\/list\])/<OL TYPE=$2>$4<\/OL>/isg;
$post =~ s/(\[list=)(\S+?)(])(.+?)(\[\/list\])/ <ol start="$2">$4<\/ol>/isg;
$post =~ s/\[\*\]/<li>/isg;
$post =~ s/\[code\](.+?)\[\/code\]/<blockquote><font face=\"宋体\">代码:<\/font><hr><font face=\"宋体\"><pre>$1<\/pre><\/font><hr><\/blockquote>/isg;
$post =~ s/\\(\S+?)\@(\S+)/<a href=\"mailto:$1\@$2\"\>$1\@$2<\/a>/ig;
$post =~ s/\[email=(\S+?)\]/<a href=\"mailto:$1\">/isg;
$post =~ s/\[\/email\]/<\/a>/isg;
$post =~ s/<br>(\w+\@\w+\.\w+)/<br><A HREF="mailto:$1">$1<\/A>/isg;
$post =~ s/^(\w+\@\w+\.\w+)/<A HREF="mailto:$1">$1<\/A>/isg;
$post =~ s/\\(\w+\@\w+\.\w+)/<A HREF="mailto:$1">$1<\/A>/isg;
$post =~ s/(\[fly\])(.+?)(\[\/fly\])/<marquee width=90% behavior=alternate scrollamount=3>$2<\/marquee>/isg;
$post =~ s/(\[s\])(.+?)(\[\/s\])/<s>$2<\/s>/isg;
$post =~ s/(\[sup\])(.+?)(\[\/sup\])/<sup>$2<\/sup>/isg;
$post =~ s/(\[sub\])(.+?)(\[\/sub\])/<sub>$2<\/sub>/isg;
$post =~ s/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/<DIV Align=$2>$4<\/DIV>/isg;
$post =~ s/(\[SHADOW=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/SHADOW\])/<table width=$2 style="filter:shadow\(color=$4\, direction=$6)">$8<\/table>/isg;
$post =~ s/(\[GLOW=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/GLOW\])/<table width=$2 style="filter:glow\(color=$4\, strength=$6)">$8<\/table>/isg;
$post =~ s/(\[MOVE\])(.+?)(\[\/Move\])/<MARQUEE scrollamount=3>$2<\/MARQUEE>/isg;
$post =~ s/(\[FLASH=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/FLASH\])/<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH=$2 HEIGHT=$4><PARAM NAME=MOVIE VALUE=$6><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><EMBED SRC=$6 WIDTH=$2 HEIGHT=$4 PLAY=TRUE LOOP=TRUE QUALITY=HIGH><\/EMBED><\/OBJECT>/isg;
if ($arrawpostpic eq "on") {
$post =~ s/(\[swf\])\s*(\S+?\.swf)\s*(\[\/swf\])/<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src="$2" quality=high pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>/isg;
$post =~ s/\[img\]\s*(\S+?)\s*\[\/img\]/<img src=\"$1\" border=0>/isg;
}
if ($arrawpostfontsize eq "on") {
$post =~ s/\[size=\s*(.*?)\s*\]\s*(.*?)\s*\[\/size\]/<font size=\"$1\">$2<\/font>/isg;
}
if ($arrawpostsound eq "on") {
$post =~ s/(\[sound\])\s*(\S+?\.wav)\s*(\[\/sound\])/<bgsound src=\"$2\" border=0><img src=\"$imagesurl\/images\/mid.gif\" width=16 height=16 alt=MIDI音乐>/isg;
$post =~ s/(\[sound\])\s*(\S+?\.mid)\s*(\[\/sound\])/<bgsound src=\"$2\" border=0><img src=\"$imagesurl\/images\/wave.gif\" width=16 height=16 alt=WAVE音乐>/isg;
}
$post =~ s|\{\{|\[|g;
$post =~ s|\}\}|\]|g;
return $post;
} # end routine
##########################
# Parsing form/queries
sub parseform {
# Added security
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\|/¦\;/g;
$value =~ s/\"/"\;/g;
$value =~ s/\</<\;/g;
$value =~ s/\>/>\;/g;
$value =~ s/<!--(.|\n)*-->//g;
$FORM{$name} = $value;
}
} ### end route
sub setcookie {
local($tempsetcookieinfo) = @_;
($cookiename,$cookievalue,$cookieexp) = split(/\,/,$tempsetcookieinfo);
print "Set-Cookie: $cookiename=$cookievalue\;";
if ($cookieexp eq "") { $cookieexp = "-1"; print " expires=$cookieexpdate\;"; }
if ($cookieexp eq "perm") {
$cookieexpdate = "Sun, 11-Nov-2032 00:00:00 GMT"; print " expires=$cookieexpdate\;";
}
else {
$currenttime = time;
$expstamp = $cookieexp * 86400 + $currenttime;
@daysofweek = ('Sun','Mon','Tue','Wed','Thr','Fri','Sat');
@months = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($expstamp);
if ($mday < 10) { $mday = "0$mday"; }
$year = $year + 1900;
$cookieexpdate = "$daysofweek[$wday], $mday-$months[$mon]-$year 00:00:00 GMT";
print " expires=$cookieexpdate\;";
}
$domain = $ENV{'SERVER_NAME'};
$path = "/";
print "path\=$path\;";
print "domain=$domain\;";
print "\n";
}
###########################
# Preview
sub preview {
$postbackcolor = "$postcolorone";
$postfontcolor = "$postfontcolorone";
$inpost =~ s/<\;br>\;<\;br>\;//g;
$post = $inpost;
$post =~ s/\n\n/\<p\>/g;
$post =~ s/\n/\<br\>/g;
$post = &ikoncode("$post");
if ($emoticons eq "on") {
$post = &doemoticons("$post");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -