version 1.151, 2008/11/29 08:51:29
|
version 1.159, 2010/04/24 18:04:14
|
Line 71 $outputkvo=100 if $outputkvo>100;
|
Line 71 $outputkvo=100 if $outputkvo>100;
|
|
|
if (param('debug')) {$debug=1; $printqueries=1} |
if (param('debug')) {$debug=1; $printqueries=1} |
*STDERR=*STDOUT if $debug; |
*STDERR=*STDOUT if $debug; |
if ($url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/ && $url !~ /question\.chgk\.info/ ) { |
if ($url!~ /\/\/db\// && $url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/ && $url !~ /question\.chgk\.info/ ) { |
my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; |
my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; |
Redirect ($u); |
Redirect ($u); |
exit; |
exit; |
Line 214 sub fetchquestion {
|
Line 214 sub fetchquestion {
|
if ($WithTour) { |
if ($WithTour) { |
($$q{'QuestionId'}, $$q{'Question'},$$q{'Answer'},$$q{'PassCriteria'},$$q{'Comments'},$$q{'Authors'},$$q{'Sources'}, |
($$q{'QuestionId'}, $$q{'Question'},$$q{'Answer'},$$q{'PassCriteria'},$$q{'Comments'},$$q{'Authors'},$$q{'Sources'}, |
$$q{'Number'}, |
$$q{'Number'}, |
$$q{'Title'}, $$q{'TourTitle'}, $$q{'FileName'},$$q{'PlayedAt'},$$q{'TourNumber'}) = |
$$q{'Title'}, $$q{'TourTitle'}, $$q{'FileName'},$$q{'PlayedAt'},$$q{'TourNumber'},$$q{'PlayedAt2'}) = |
$sth->fetchrow; |
$sth->fetchrow; |
} else { |
} else { |
($$q{'QuestionId'}, $$q{'Question'},$$q{'Answer'},$$q{'PassCriteria'},$$q{'Comments'},$$q{'Authors'},$$q{'Sources'}, |
($$q{'QuestionId'}, $$q{'Question'},$$q{'Answer'},$$q{'PassCriteria'},$$q{'Comments'},$$q{'Authors'},$$q{'Sources'}, |
Line 241 sub SelectQuestions {
|
Line 241 sub SelectQuestions {
|
if ($WithTour) { |
if ($WithTour) { |
$query="SELECT QuestionId, Questions.Question, Answer, PassCriteria, Comments, Authors, Sources, |
$query="SELECT QuestionId, Questions.Question, Answer, PassCriteria, Comments, Authors, Sources, |
Questions.Number |
Questions.Number |
, t2.Title, t1.Title, t2.FileName, t2.PlayedAt,t1.Number |
, t2.Title, t1.Title, t2.FileName, t2.PlayedAt,t1.Number,t2.PlayedAt2 |
from Questions,Tournaments as t1, Tournaments as t2 |
from Questions,Tournaments as t1, Tournaments as t2 |
WHERE $where"; |
WHERE $where"; |
} else { |
} else { |
Line 385 sub printform
|
Line 385 sub printform
|
return |
return |
<<EOT |
<<EOT |
<form method="get" enctype="application/x-www-form-urlencoded" |
<form method="get" enctype="application/x-www-form-urlencoded" |
action="/znatoki/cgi-bin/db.cgi"> |
action="/cgi-bin/db.cgi"> |
<h2>Поиск в базе вопросов</h2> |
<h2>Поиск в базе вопросов</h2> |
|
|
<input type="text" name="sstr" value="$sstr" size="30" maxlength="50"> |
<input type="text" name="sstr" value="$sstr" size="30" maxlength="50"> |
Line 1092 sub PrintTournament {
|
Line 1092 sub PrintTournament {
|
@Tours = &GetTours($dbh, $Id); |
@Tours = &GetTours($dbh, $Id); |
$list=''; |
$list=''; |
my $textid; |
my $textid; |
|
my $isGroup; |
if ($Id) { |
if ($Id) { |
for ($Tournament{'Type'}) { |
for ($Tournament{'Type'}) { |
/Г/ && do { |
/Г/ && do { |
$output .= h2({align=>"center"}, |
$output .= h2({align=>"center"}, |
"Группа: $Tournament{'Title'} ", |
"Группа: $Tournament{'Title'} ", |
$Tournament{'PlayedAt'}||'') . p . "\n"; |
$Tournament{'PlayedAt'}||'') . |
|
($Tournament{'PlayedAt2'}?' – '. |
|
$Tournament{'PlayedAt2'}:'') . |
|
|
|
p . "\n"; |
|
$isGroup=1; |
last; |
last; |
}; |
}; |
/Ч/ && do { |
/Ч/ && do { |
Line 1109 sub PrintTournament {
|
Line 1115 sub PrintTournament {
|
$title .= " $Tournament{'PlayedAt'}"; |
$title .= " $Tournament{'PlayedAt'}"; |
} |
} |
|
|
|
if ($Tournament{'PlayedAt2'}) { |
|
$title .= ' – '.$Tournament{'PlayedAt2'}; |
|
} |
|
|
$output .= h2({align=>"center"}, |
$output .= h2({align=>"center"}, |
"$title") . p . "\n"; |
"$title") . p . "\n"; |
$output.=&PrintEditor(\%Tournament); |
$output.=&PrintEditor(\%Tournament); |
Line 1175 sub PrintTournament {
|
Line 1185 sub PrintTournament {
|
if ($SingleTour or ($Tournament{'Type'} =~ /Т/)) { |
if ($SingleTour or ($Tournament{'Type'} =~ /Т/)) { |
$list .= dd(img({src=>$imgsrc, alt=>$alt}) |
$list .= dd(img({src=>$imgsrc, alt=>$alt}) |
. " " . $Tournament{'Title'} . " " . |
. " " . $Tournament{'Title'} . " " . |
($Tournament{'PlayedAt'}||"") . $qnum) . |
($Tournament{'PlayedAt'}||"") . |
|
($Tournament{'PlayedAt2'}?' – '.$Tournament{'PlayedAt2'}:"") . |
|
$qnum) . |
dl( |
dl( |
dd("[" |
dd("[" |
. a({href=>tourhref($textid,0)}, |
. a({href=>tourhref($textid,0)}, |
Line 1191 sub PrintTournament {
|
Line 1203 sub PrintTournament {
|
img({src=>$imgsrc, alt=>$alt}) |
img({src=>$imgsrc, alt=>$alt}) |
. " " . a({href=>tourhref($textid,0,1)}, |
. " " . a({href=>tourhref($textid,0,1)}, |
$Tournament{'Title'}. " ". |
$Tournament{'Title'}. " ". |
($Tournament{'PlayedAt'}||'')) . $qnum); |
($Tournament{'PlayedAt'}||'')) . |
|
($Tournament{'PlayedAt2'}?' &ndash '. $Tournament{'PlayedAt2'}:''). $qnum); |
} |
} |
} |
} |
$output .= dl($list); |
$output .= dl($list); |
Line 1212 sub PrintTournament {
|
Line 1225 sub PrintTournament {
|
$output .= p($Info); |
$output .= p($Info); |
} |
} |
|
|
|
|
|
|
$output.=p("<a href='/dbxml.php?tour=".param('tour')."'>XML</a>"); |
$output.=p("<a href='/dbxml.php?tour=".param('tour')."'>XML</a>"); |
|
|
|
if ($textid=$fname) |
|
{ |
|
$textid=~s/\.txt//; |
|
} |
|
if (!$isGroup) { |
|
$output .= center("<font size='-1'>[". |
|
a({href=>'/v2/print/'.$textid, target=>'_blank'}, 'версия для печати')."] [". |
|
a({href=>'/v2/fb2/'.$textid, target=>'_blank'}, 'fb2')."]"."</font>"); |
|
} |
|
|
return $output; |
return $output; |
} |
} |
Line 1284 sub PrintTour {
|
Line 1308 sub PrintTour {
|
|
|
$output .= h2({align=>"center"}, $Tournament{"Title"}, |
$output .= h2({align=>"center"}, $Tournament{"Title"}, |
$Tournament{'PlayedAt'}||'', |
$Tournament{'PlayedAt'}||'', |
|
$Tournament{'PlayedAt2'}?' – '.$Tournament{'PlayedAt2'}:'', |
"<br>\n", $Tour{"Title"} . |
"<br>\n", $Tour{"Title"} . |
" ($qnum вопрос$suffix)\n") . p; |
" ($qnum вопрос$suffix)\n") . p; |
$output .=&PrintEditor(\%Tour); |
$output .=&PrintEditor(\%Tour); |
Line 1328 sub PrintTour {
|
Line 1353 sub PrintTour {
|
|
|
$bottom .= |
$bottom .= |
"[" . a({href=>tourhref("$fname$nn",1)}, |
"[" . a({href=>tourhref("$fname$nn",1)}, |
"ответы") . "] " . br."\n"; |
"ответы") . "] " |
} |
} |
|
$bottom .= "[".a({href=>'/v2/print/'.$fname, target=>'_blank'}, 'версия для печати')."] [". |
|
a({href=>'/v2/fb2/'.$fname, target=>'_blank'}, 'fb2')."]".br; |
|
|
|
# $bottom .= "[".a({href=>'/v2/print/'.$fname.'.'.$Tour{'Number'}, target=>'_blank'}, 'версия для печати')."]".br; |
|
|
if ($n>1) { |
if ($n>1) { |
$bottom .= |
$bottom .= |
"[" . a({href=>tourhref("$fname.".($n-1),0)}, |
"[" . a({href=>tourhref("$fname.".($n-1),0)}, |
Line 1338 sub PrintTour {
|
Line 1368 sub PrintTour {
|
"[" . a({href=>tourhref("$fname.".($n-1),1)}, |
"[" . a({href=>tourhref("$fname.".($n-1),1)}, |
"предыдущий тур с ответами") . "] " . br."\n"; |
"предыдущий тур с ответами") . "] " . br."\n"; |
} |
} |
|
|
if (&IsTour($dbh, $Tour{'ParentId'}, $n + 1)) { |
if (&IsTour($dbh, $Tour{'ParentId'}, $n + 1)) { |
$bottom .= |
$bottom .= |
"[" . a({href=>tourhref("$fname.".($n+1),0)}, |
"[" . a({href=>tourhref("$fname.".($n+1),0)}, |
Line 1377 sub PrintField {
|
Line 1408 sub PrintField {
|
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=>escapeUrl($1)},$1)/egm if $header !~ /^Авто/;#!!! |
$value =~ s/(http:\/\/\S+[^\s\)\(\,\.\]])/a({href=>escapeUrl($1)},$1)/egm if $header !~ /^Авто/;#!!! |
|
|
|
$value =~ s/\.\.\.\]/!!!ZAKR!!!/g; |
|
$value =~ s/пропущено\]/!!!PROP!!!/g; |
|
$value =~ s/пропущены\]/!!!PROP2!!!/g; |
|
$value =~ s/\[Раздаточный материал:(.*?)\]\s*\n/<div class='razdatka'><div class='razdatka_header'>Раздаточный материал<\/div> $1<\/div>\n$2/sm; |
|
$value =~ s/<раздатка>(.*?)<\/раздатка>/<div class='razdatka'><div class='razdatka_header'>Раздаточный материал<\/div> $1<\/div>\n/sm; |
|
$value =~ s/!!!ZAKR!!!/\.\.\.\]/g; |
|
$value =~ s/!!!PROP!!!/пропущено\]/g; |
|
$value =~ s/!!!PROP2!!!/пропущены\]/g; |
|
|
|
|
# $value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/make/eg if $header !~ /^Авто/;#!!! |
# $value =~ s/(http:\/\/\S+[^\s\)\(\,\.])/make/eg if $header !~ /^Авто/;#!!! |
Line 1413 sub PrintQuestion {
|
Line 1453 sub PrintQuestion {
|
$Question{'FileName'}=$Tournament{'FileName'}; |
$Question{'FileName'}=$Tournament{'FileName'}; |
$Question{'Title'}=$Tournament{'Title'}; |
$Question{'Title'}=$Tournament{'Title'}; |
$Question{'PlayedAt'}=$Tournament{'PlayedAt'}; |
$Question{'PlayedAt'}=$Tournament{'PlayedAt'}; |
|
$Question{'PlayedAt2'}=$Tournament{'PlayedAt2'}; |
$Question{'TourNumber'}=$Tour{'Number'}; |
$Question{'TourNumber'}=$Tour{'Number'}; |
$Question{'TourTitle'}=$Tour{'Title'}; |
$Question{'TourTitle'}=$Tour{'Title'}; |
} |
} |
Line 1428 sub PrintQuestion {
|
Line 1469 sub PrintQuestion {
|
$titles .= |
$titles .= |
dd(img({src=>"/icons/folder.open.gif"}) . " " . |
dd(img({src=>"/icons/folder.open.gif"}) . " " . |
a({href=>tourhref($fname,0,1)}, |
a({href=>tourhref($fname,0,1)}, |
$Question{'Title'}, $Question{'PlayedAt'}||'')); |
$Question{'Title'}, $Question{'PlayedAt'}||'', |
|
$Question{'PlayedAt2'}?' – '.$Question{'PlayedAt2'}:'')); |
$titles .= |
$titles .= |
dl(dd(img({src=>"/icons/folder.open.gif"}) . " " . |
dl(dd(img({src=>"/icons/folder.open.gif"}) . " " . |
a({href=>tourhref("$fname.$Question{'TourNumber'}#$qnum",1)}, |
a({href=>tourhref("$fname.$Question{'TourNumber'}#$qnum",1)}, |
Line 1535 EOTT
|
Line 1577 EOTT
|
$output.="</span>" |
$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: ([^\)]*)\)/<embed type="application\/x-shockwave-flash" src="http:\/\/www.google.com\/reader\/ui\/3247397568-audio-player.swf?audioUrl=\/znatoki\/sounds\/db\/$1" allowscriptaccess="never" width="400" height="27" quality="best" bgcolor="#ff0000" wmode="window" flashvars="playerMode=embedded" \/>/g unless $text; |
|
|
$output=~s/⌡/\ï/g; |
$output=~s/⌡/\ï/g; |
$output=~s/⌠/\Ï/g; |
$output=~s/⌠/\Ï/g; |
|
|
Line 1681 sub PrintAll {
|
Line 1725 sub PrintAll {
|
|
|
$output .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
$output .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
" " . a({href=>tourhref($textid,0,!$SingleTour)}, |
" " . a({href=>tourhref($textid,0,!$SingleTour)}, |
$Tournament{'Title'}) ." " . ($Tournament{'PlayedAt'}||'') . " $New"); |
$Tournament{'Title'}) ." " . ($Tournament{'PlayedAt'}||'') . |
|
($Tournament{'PlayedAt2'}?' – '.$Tournament{'PlayedAt2'}:'') . |
|
" $New"); |
} |
} |
if ($Id == 0 or $Tournament{'Type'} =~ /Г/ or $Tournament{'Type'} eq '') { |
if ($Id == 0 or $Tournament{'Type'} =~ /Г/ or $Tournament{'Type'} eq '') { |
for ($i = 0; $i <= $#Tours; $i++) { |
for ($i = 0; $i <= $#Tours; $i++) { |
Line 1726 sub PrintDates {
|
Line 1772 sub PrintDates {
|
else {$textid=$Tournament{'Id'}}; |
else {$textid=$Tournament{'Id'}}; |
$list .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
$list .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
" " . a({href=>tourhref($textid,0,1)}, |
" " . a({href=>tourhref($textid,0,1)}, |
$Tournament{'Title'}, $Tournament{'PlayedAt'}||'')); |
$Tournament{'Title'}, $Tournament{'PlayedAt'}||'', |
|
$Tournament{'PlayedAt2'}?' – '.$Tournament{'PlayedAt2'}:'')); |
} |
} |
$sth->finish; |
$sth->finish; |
$output .= dl($list); |
$output .= dl($list); |
Line 1843 sub WriteFile {
|
Line 1890 sub WriteFile {
|
$fname=~s/.*\/(\w+)/$1/; |
$fname=~s/.*\/(\w+)/$1/; |
|
|
my $query= "SELECT Id, Title, Copyright, Info, URL, |
my $query= "SELECT Id, Title, Copyright, Info, URL, |
Editors, EnteredBy, PlayedAt, CreatedAt |
Editors, EnteredBy, PlayedAt, CreatedAt, PlayedAt2 |
from Tournaments where FileName= |
from Tournaments where FileName= |
'$fname' OR FileName=".$dbh->quote("$fname.txt"); |
'$fname' OR FileName=".$dbh->quote("$fname.txt"); |
my $sth=$dbh->prepare($query); |
my $sth=$dbh->prepare($query); |
my (%Question,%editor,%qnumber,%copyright,%author,%vid,%tourtitle); |
my (%Question,%editor,%qnumber,%copyright,%author,%vid,%tourtitle); |
$sth->execute; |
$sth->execute; |
my ($Id, $Title, $Copyright, $Info, $URL, |
my ($Id, $Title, $Copyright, $Info, $URL, |
$Editors, $EnteredBy, $PlayedAt, $CreatedAt)= |
$Editors, $EnteredBy, $PlayedAt, $CreatedAt, $PlayedAt2)= |
$sth->fetchrow; |
$sth->fetchrow; |
return -1 unless $Id; |
return -1 unless $Id; |
open (OUT, ">$TMPDIR/$fname.txt") || print STDERR "Error in $fname.txt\n"; |
open (OUT, ">$TMPDIR/$fname.txt") || print STDERR "Error in $fname.txt\n"; |
Line 1859 sub WriteFile {
|
Line 1906 sub WriteFile {
|
my ($year,$month,$day)=split /-/, $date; |
my ($year,$month,$day)=split /-/, $date; |
# $month=0,$date=0 if $year && $month==1 && $day==1; |
# $month=0,$date=0 if $year && $month==1 && $day==1; |
my $pdate=sprintf("%02d-%3s-%4d",$day,$months[$month],$year); |
my $pdate=sprintf("%02d-%3s-%4d",$day,$months[$month],$year); |
|
if ($PlayedAt2) { |
|
my ($year,$month,$day)=split /-/, $date; |
|
$pdate .= sprintf(" - %02d-%3s-%4d",$day,$months[$month],$year); |
|
} |
|
|
print OUT "Дата:\n$pdate\n\n" if $date; |
print OUT "Дата:\n$pdate\n\n" if $date; |
|
|
Line 2148 MAIN:
|
Line 2199 MAIN:
|
$globaloutput.="<style> |
$globaloutput.="<style> |
td {font-size: x-small; font-family : sans-serif} |
td {font-size: x-small; font-family : sans-serif} |
th {font-size: x-small; font-family : sans-serif} |
th {font-size: x-small; font-family : sans-serif} |
|
div.razdatka { |
|
background-color:#EEEEFF; |
|
padding:4px; |
|
border:1px solid black; |
|
} |
|
|
|
div.razdatka_header {font-style:italic;} |
|
|
</style>\n"; |
</style>\n"; |
|
|
$globaloutput.=&Include_virtual("$reklama")||''; |
$globaloutput.=&Include_virtual("$reklama")||''; |