version 1.149, 2008/11/09 20:02:36
|
version 1.151, 2008/11/29 08:51:29
|
Line 3
|
Line 3
|
use DBI; |
use DBI; |
use CGI ':all'; |
use CGI ':all'; |
#use strict; |
#use strict; |
|
use Encode; |
my @softfields=("От Олега Степанова"); |
my @softfields=("От Олега Степанова"); |
use Time::Local; |
use Time::Local; |
|
use Data::Dumper "Dumper"; |
|
use URI::Escape; |
my $proxyredirect=1; |
my $proxyredirect=1; |
use POSIX qw(locale_h); |
use POSIX qw(locale_h); |
use locale; |
use locale; |
Line 714 sub Search {
|
Line 717 sub Search {
|
my (@sar, $i, $sth,$where,$query); |
my (@sar, $i, $sth,$where,$query); |
if ($metod eq 'rus') |
if ($metod eq 'rus') |
{ |
{ |
my @tasks=russearch($dbh,$sstr,$all,$allnf); |
my @tasks; |
|
@tasks = russearch($dbh,$sstr,$all,$allnf); |
|
|
|
|
return @tasks |
return @tasks |
} |
} |
elsif ($metod eq 'proxy') |
elsif ($metod eq 'proxy') |
Line 912 sub PrintList {
|
Line 918 sub PrintList {
|
{ |
{ |
$output=~s/\b($shablon)\b/\<strong\>$1\<\/strong\>/gi; |
$output=~s/\b($shablon)\b/\<strong\>$1\<\/strong\>/gi; |
$output=~s/($shablon)/\<strong\>$1\<\/strong\>/gi; |
$output=~s/($shablon)/\<strong\>$1\<\/strong\>/gi; |
|
$output=~s/(href="[^"]*?)(?:<.*?>)+([^"]*?)(?:<\/.*?>)+([^"]*?")/!1 $1$2$3 2!/g;#!!!! |
} |
} |
|
|
$Output.= $output; |
$Output.= $output; |
} |
} |
$sth->finish; |
$sth->finish; |
Line 954 sub PrintSearch {
|
Line 962 sub PrintSearch {
|
} |
} |
while (--$ss && (!$dbh->do ("insert into lastqueries (id,sstr,questions,allnf) |
while (--$ss && (!$dbh->do ("insert into lastqueries (id,sstr,questions,allnf) |
values ($was, $qsstr,$tmp,$nf)"))); |
values ($was, $qsstr,$tmp,$nf)"))); |
$Output.= "Something is wrong...".br unless $ss; |
$Output.= "Something is wrong...".br."\n" unless $ss; |
} |
} |
} |
} |
|
|
Line 1276 sub PrintTour {
|
Line 1284 sub PrintTour {
|
|
|
$output .= h2({align=>"center"}, $Tournament{"Title"}, |
$output .= h2({align=>"center"}, $Tournament{"Title"}, |
$Tournament{'PlayedAt'}||'', |
$Tournament{'PlayedAt'}||'', |
"<br>", $Tour{"Title"} . |
"<br>\n", $Tour{"Title"} . |
" ($qnum вопрос$suffix)\n") . p; |
" ($qnum вопрос$suffix)\n") . p; |
$output .=&PrintEditor(\%Tour); |
$output .=&PrintEditor(\%Tour); |
|
|
Line 1290 sub PrintTour {
|
Line 1298 sub PrintTour {
|
$output .= hr({-'align'=>'center', -'width'=>'80%'}); |
$output .= hr({-'align'=>'center', -'width'=>'80%'}); |
|
|
if ($Tournament{'URL'}) { |
if ($Tournament{'URL'}) { |
$output .= |
$URL = $Tournament{'URL'}; |
p("Дополнительная информация об этом турнире - по адресу " . |
$URL=~s/http:\/znatoki\/boris\/reports\//$newsurl/ if $url=~/kulichki/ || $url=~/db.chgk.info/; |
a({-'href'=>$Tournament{'URL'}}, $Tournament{'URL'})); |
$URL=~s/\/znatoki\/boris\/reports\//$newsurl/ if url=~/kulichki/ || $url=~/db.chgk.info/; |
|
|
|
$output .= |
|
p("Дополнительная информация об этом турнире - по адресу " . |
|
a({-'href'=>$URL}, $URL)); |
} |
} |
|
|
if ($Tournament{'Copyright'}) { |
if ($Tournament{'Copyright'}) { |
$output .= p("Копирайт: " . $Tournament{'Copyright'}); |
$output .= p("Копирайт: " . $Tournament{'Copyright'}); |
} |
} |
|
|
if ($Tournament{'Info'}) { |
if ($Tournament{'Info'} ) { |
$output .= p($Tournament{'Info'}); |
$output .= p($Tournament{'Info'}); |
} |
} |
|
|
if ($Tour{'Info'}) { |
if ($Tour{'Info'} && ($Tournament{'Info'} ne $Tour{'Info'})) { |
$output .= p($Tour{'Info'}); |
$output .= "!!".p($Tour{'Info'}); |
} |
} |
|
|
|
|
$output.=p("<a href='/dbxml.php?tour=".param('tour')."'>XML</a>"); |
$output.=p("<a href='/dbxml.php?tour=".param('tour')."'>XML</a>"); |
|
|
my $n=$Tour{'Number'}; |
my $n=$Tour{'Number'}; |
Line 1317 sub PrintTour {
|
Line 1328 sub PrintTour {
|
|
|
$bottom .= |
$bottom .= |
"[" . a({href=>tourhref("$fname$nn",1)}, |
"[" . a({href=>tourhref("$fname$nn",1)}, |
"ответы") . "] " . br; |
"ответы") . "] " . br."\n"; |
} |
} |
if ($n>1) { |
if ($n>1) { |
$bottom .= |
$bottom .= |
Line 1325 sub PrintTour {
|
Line 1336 sub PrintTour {
|
"предыдущий тур") . "] "; |
"предыдущий тур") . "] "; |
$bottom .= |
$bottom .= |
"[" . a({href=>tourhref("$fname.".($n-1),1)}, |
"[" . a({href=>tourhref("$fname.".($n-1),1)}, |
"предыдущий тур с ответами") . "] " . br; |
"предыдущий тур с ответами") . "] " . br."\n"; |
} |
} |
if (&IsTour($dbh, $Tour{'ParentId'}, $n + 1)) { |
if (&IsTour($dbh, $Tour{'ParentId'}, $n + 1)) { |
$bottom .= |
$bottom .= |
Line 1342 sub PrintTour {
|
Line 1353 sub PrintTour {
|
return $output; |
return $output; |
} |
} |
|
|
|
|
|
sub escapeUrl { |
|
my $uri = shift; |
|
$uri=~s/<.*?>//g; |
|
$uri =~ s/([Ю-Ъю-ъ]+)/URI::Escape::uri_escape_utf8(decode("koi8-r",$1))/eg; |
|
return $uri; |
|
} |
|
|
sub PrintField { |
sub PrintField { |
my ($header, $value, $text) = @_; |
my ($header, $value, $text) = @_; |
if ($text) { |
if ($text) { |
Line 1349 sub PrintField {
|
Line 1368 sub PrintField {
|
} else { |
} else { |
if ($header=~/Комментар/) |
if ($header=~/Комментар/) |
{ |
{ |
$value=~s/^\s*$_[\.:]/p."\n".strong("$_").":"/me foreach @softfields; |
$value=~s/^\s*$_[\.:]/p."\n".strong("$_").":\n"/me foreach @softfields; |
} |
} |
|
|
$value =~ s/^\s+/<br> /mg; |
$value =~ s/^\s+/<br>\n /mg; |
$value =~ s/(\s+)-+(\s+)/$1–$2/mg; |
$value =~ s/(\s+)-+(\s+)/$1–$2/mg; |
$value =~ s/\s+\–/ \–/mg |
$value =~ s/\s+\–/ \–/mg |
if $value !~ /^\|/; |
if $value !~ /^\|/; |
$value =~ s/^\|([^\n]*)/<pre>$1<\/pre>/mg; |
$value =~ s/^\|([^\n]*)/<pre>$1<\/pre>/mg; |
$value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/<a href="$1">$1<\/a>/g if $header !~ /^Авто/; |
|
|
$value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/a({href=>escapeUrl($1)},$1)/egm if $header !~ /^Авто/;#!!! |
|
|
|
|
|
# $value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/make/eg if $header !~ /^Авто/;#!!! |
|
# $value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/<a href="$1">$1<\/a>/g if $header !~ /^Авто/; |
# $value =~ s/(http:\/\/(?:\w+.)+[\w\\\~]+(\?[^\s.]+)?)/<a href="$1">$1<\/a>/g if $header !~ /^Авто/; |
# $value =~ s/(http:\/\/(?:\w+.)+[\w\\\~]+(\?[^\s.]+)?)/<a href="$1">$1<\/a>/g if $header !~ /^Авто/; |
# $value =~ s/(\s)"/$1“/mg; |
# $value =~ s/(\s)"/$1“/mg; |
# $value =~ s/^"/“/mg; |
# $value =~ s/^"/“/mg; |
Line 1369 sub PrintField {
|
Line 1393 sub PrintField {
|
$value . p . "\n"; |
$value . p . "\n"; |
} |
} |
return $text ? "$header:\n$value\n\n" : |
return $text ? "$header:\n$value\n\n" : |
strong("$header: ") . $value . p . "\n"; |
strong("$header: ") . "\n".$value . p . "\n"; |
} |
} |
|
|
# Gets a DB handler (ofcourse) and a question Id. Prints |
# Gets a DB handler (ofcourse) and a question Id. Prints |
Line 1512 $output.="</span>"
|
Line 1536 $output.="</span>"
|
|
|
} |
} |
$output=~s/\(pic: ([^\)]*)\)/<p><img src="\/znatoki\/images\/db\/$1"><p>/g unless $text; |
$output=~s/\(pic: ([^\)]*)\)/<p><img src="\/znatoki\/images\/db\/$1"><p>/g unless $text; |
$output=~s/\(aud: ([^\)]*)\)/<p><embed src="\/znatoki\/sounds\/db\/$1"><\/embed><p>/g unless $text; |
|
|
|
$output=~s/⌡/\ï/g; |
$output=~s/⌡/\ï/g; |
$output=~s/⌠/\Ï/g; |
$output=~s/⌠/\Ï/g; |
|
|
Line 1522 $output.="</span>"
|
Line 1544 $output.="</span>"
|
$fname||=param('tour'); |
$fname||=param('tour'); |
my $qid=$fname ? ($fname.".$Question{'Number'}" ): ''; |
my $qid=$fname ? ($fname.".$Question{'Number'}" ): ''; |
|
|
$output.=br.a({href=> "/search/"."?metod=proxy& |
$output.=br."\n".a({href=> "/search/"."?metod=proxy& |
qid=$qid"}, 'Близкие вопросы').p |
qid=$qid"}, 'Близкие вопросы').p |
if $answer>0 && !$text && $qid && $showNearQuestions; |
if $answer>0 && !$text && $qid && $showNearQuestions; |
return $output; |
return $output; |
Line 2006 MAIN:
|
Line 2028 MAIN:
|
print end_html; |
print end_html; |
die "Can't connect to DB chgk\n"; |
die "Can't connect to DB chgk\n"; |
}; |
}; |
$dbh->do("set names koi8r"); |
$dbh->do("set names koi8r"); |
|
|
# if (param('qid') && (param('qid')=~/^\d+$/) || $tour && $tour=~/^\d+$/) { |
if (param('qid') && (param('qid')=~/^\d+$/) || $tour && $tour=~/^\d+$/) { |
# my $destination='http://chgk.zaba.ru/search.html'; |
# my $destination='http://chgk.zaba.ru/search.html'; |
# print header (-'Content-Type' => 'text/html', |
# print header (-'Content-Type' => 'text/html', |
# -'Location:'=> 'http:\\db.chgk.info'); |
# -'Location:'=> 'http:\\db.chgk.info'); |
# Redirect($destination); |
Redirect($destination); |
# exit |
exit |
# } |
} |
|
|
if (0 && $tour && !param('qnumber') && (!param('answers')||(param('answers')<=1))) |
if (0 && $tour && !param('qnumber') && (!param('answers')||(param('answers')<=1))) |
{ |
{ |