Diff for /db/prgsrc/db.cgi between versions 1.151 and 1.159

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'}?'&nbsp;&ndash; '.
                                                   $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 .= '&nbsp;&ndash; '.$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'}?'&nbsp;&ndash; '.$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'}?'&nbsp;&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'}?'&nbsp;&ndash; '.$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'}?'&nbsp;&ndash; '.$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/⌡/\&iuml;/g;          $output=~s/⌡/\&iuml;/g;
         $output=~s/⌠/\&Iuml;/g;          $output=~s/⌠/\&Iuml;/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'}?'&nbsp;&ndash; '.$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'}?'&nbsp;&ndash; '.$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")||'';

Removed from v.1.151  
changed lines
  Added in v.1.159


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>