--- db/prgsrc/db.cgi 2002/05/13 23:59:42 1.65
+++ db/prgsrc/db.cgi 2002/06/20 12:54:52 1.70
@@ -2,12 +2,11 @@
use DBI;
use CGI ':all';
-#use Text::Query;
use strict;
use Time::Local;
use POSIX qw(locale_h);
use locale;
-open STDERR, ">errors1";
+open STDERR, ">>errors1";
my $printqueries=0;
my %forbidden=();
my $debug=0; #added by R7
@@ -110,7 +109,7 @@ sub GetTourQuestions {
my (@arr, @Questions);
my ($sth) = $dbh->prepare("SELECT QuestionId FROM Questions
- WHERE ParentId=$ParentId");
+ WHERE ParentId=$ParentId order by Number");
$sth->execute;
@@ -773,7 +772,7 @@ sub PrintRandom {
sub PrintEditor {
my $t=shift; #ссылка на Хэш с полями
- my $ed=$$t{'Editors'};
+ my $ed=$$t{'Editors'}||'';
my $edname=($ed=~/\,/ ) ? "Редакторы" : "Редактор" ;
return $ed? h4({align=>"center"},"$edname: $ed" ): '';
}
@@ -821,7 +820,8 @@ sub PrintTournament {
}
} else {
my ($qnum) = GetQNum($dbh);
- $output .= h2("Банк Вопросов: $qnum вопросов") . p . "\n";
+ $output .= h2("Банк Вопросов: $qnum вопрос".&Suffix($qnum))
+ . p . "\n";
}
for ($i = 0; $i <= $#Tours; $i++) {
@@ -884,6 +884,7 @@ sub PrintTournament {
$output .= dl($list);
if ($URL) {
+ if (url=~/zaba\.ru/ && $URL=~/^\//){$URL="http://info.chgk.info$URL"}
$output .=
p("Дополнительная информация об этом турнире - по адресу " .
a({-'href'=>$URL}, $URL));
@@ -1051,42 +1052,41 @@ sub PrintQuestion {
$output .=
&PrintField("Вопрос $qnum", $Question{'Question'}, $text);
- if ($answer) {
+ if ($answer==1) {
$output .=
&PrintField("Ответ", $Question{'Answer'}, $text);
if ($Question{'Authors'}) {
my $q=$Question{'Authors'};
-
-# my $sth=$dbh->prepare("select Authors.Id,Name, Surname, Nicks from Authors, A2Q
-# where Authors.Id=Author And Question=$Id");
-# $sth->execute;
-# my ($AuthorId,$Name, $Surname,$other,$Nicks);
-
-# while ((($AuthorId,$Name, $Surname,$Nicks)=$sth->fetchrow),$AuthorId)
-# {
-# my ($firstletter)=$Name=~m/^./g;
-# $Name=~s/\./\\\./g;
-# my $sha="(?:$Name\\s+$Surname)|(?:$Surname\\s+$Name)|(?:$firstletter\\.\\s*$Surname)|(?:$Surname\\s+$firstletter\\.)|(?:$Surname)|(?:$Name)";
-# if ($Nicks)
-# {
-# $Nicks=~s/^\|//;
-# foreach (split /\|/, $Nicks)
-# {
-# s/\s+/ /g;
-# s/\s+$//;
-# s/ /\\s+/g;
-# s/\./\\\./g;
-# if (s/>$//) {$sha="$sha|(?:$_)"}
-# else {$sha="(?:$_)|$sha"}
-# }
-# }
-# $q=~s/($sha)/a({href=>url."?qofauthor=$AuthorId"},$1)/ei;
-# }
-
+###АВТОРА!!
+ my $sth=$dbh->prepare("select Authors.Id,Name, Surname, Nicks from Authors, A2Q
+ where Authors.Id=Author And Question=$Id");
+ $sth->execute;
+ my ($AuthorId,$Name, $Surname,$other,$Nicks);
+
+ while ((($AuthorId,$Name, $Surname,$Nicks)=$sth->fetchrow),$AuthorId)
+ {
+ my ($firstletter)=$Name=~m/^./g;
+ $Name=~s/\./\\\./g;
+ my $sha="(?:$Name\\s+$Surname)|(?:$Surname\\s+$Name)|(?:$firstletter\\.\\s*$Surname)|(?:$Surname\\s+$firstletter\\.)|(?:$Surname)|(?:$Name)";
+ if ($Nicks)
+ {
+ $Nicks=~s/^\|//;
+ foreach (split /\|/, $Nicks)
+ {
+ s/\s+/ /g;
+ s/\s+$//;
+ s/ /\\s+/g;
+ s/\./\\\./g;
+ if (s/>$//) {$sha="$sha|(?:$_)"}
+ else {$sha="(?:$_)|$sha"}
+ }
+ }
+ $q=~s/($sha)/a({href=>url."?qofauthor=$AuthorId"},$1)/ei;
+ }
+
$output .= &PrintField("Автор(ы)", $q, $text);
-# $output.= &PrintField("Другие вопросы", $other);
}
if ($Question{'Sources'}) {
@@ -1097,8 +1097,40 @@ sub PrintQuestion {
$output .= &PrintField("Комментарии", $Question{'Comments'}, $text);
}
}
-# $output.=br.a({href=> url."?metod=proxy&qid=$Id"}, 'Близкие вопросы').p
-# if $answer;
+ elsif ($answer==2) {
+ my $text=$Question{'Answer'};
+ $text=~s/\n//mg;
+ $output.=""
+ }
+ }
+ elsif ($answer==3) {
+ $output.= <
+ Показать/убрать ответ
+
+EOTT
+ .&PrintField("Ответ", $Question{'Answer'}, $text);
+ if ($Question{'Authors'}) {
+ $output .= &PrintField("Автор(ы)", $Question{'Authors'}, $text);
+ }
+ if ($Question{'Sources'}) {
+ $output .= &PrintField("Источник(и)", $Question{'Sources'}, $text);
+ }
+
+ if ($Question{'Comments'}) {
+ $output .= &PrintField("Комментарии", $Question{'Comments'}, $text);
+ }
+
+
+$output.=""
+
+ }
+ $output.=br.a({href=> url."?metod=proxy&qid=$Id"}, 'Близкие вопросы').p
+ if $answer;
return $output;
}
@@ -1654,21 +1686,34 @@ $sstr=~s/[^йцукенгшщзхъфывапролджэячсмит
$sth->finish;
}
my $QuestionNumber=0;
- if (my $qnum=param('qnumber')){
+ my $qnum;
+ if ($qnum=param('qnumber')){
my ($sth) = $dbh->prepare("SELECT QuestionId FROM Questions
WHERE ParentId=$tour AND Number=$qnum");
$sth->execute;
$QuestionNumber=($sth->fetchrow)[0]||0;
}
if ($QuestionNumber) {
-
- print &PrintQuestion($dbh, $QuestionNumber, param('answer'), 0, 1);
+ print &PrintQuestion($dbh, $QuestionNumber, param('answer')||0, $qnum, 1);
+# $dbh, $Id, $answer, $qnum, $title, $text
} else {
print &PrintTournament($dbh, $tour, param('answer'));
}
}
if (!$text) {
print &Include_virtual("../dimrub/db/footer.html");
+print <
+function toggle(e) {
+ if (e.style.display == "none") {
+ e.style.display="";
+ } else {
+ e.style.display = "none";
+ }
+}
+
+EEE
+;
print end_html;
}
$dbh->disconnect;