Diff for /capa/capa51/Discuss/Ver1.3/Attic/capadiscuss between versions 1.5 and 1.8

version 1.5, 1999/12/16 22:08:57 version 1.8, 2000/03/22 21:08:02
Line 1 Line 1
 #!/usr/ucb/perl  #!/usr/ucb/perl
 #  #
 # CAPA Discussion Forum  # CAPA Discussion Forum
 # version 1.3  # version 1.3.0
 #  #
 # Michigan State University  # Michigan State University
 # Department of Physics and Astronomy  # Department of Physics and Astronomy
 #  #
 # Ryan J. Shaltry  # Ryan J. Shaltry
 # tech4@msue.msu.edu  # tech4@msue.msu.edu
   # Guy Albertelli
   # albertel@msu.edu
   
 print "Content-type: text/html\n\n";  print "Content-type: text/html\n\n";
   
Line 49  $validadmin = "unchecked"; Line 51  $validadmin = "unchecked";
   $psetid   = $form{'PSETID'};    $psetid   = $form{'PSETID'};
 if ($snum eq "A12345678") {$debug=1;}  if ($snum eq "A12345678") {$debug=1;}
 if ($snum eq "a12345678") {$debug=1;}  if ($snum eq "a12345678") {$debug=1;}
   $debug=0;
   if($psetid eq "") { $psetid = $setid; }    if($psetid eq "") { $psetid = $setid; }
 if ($debug) {print "GetTeacherInfo<BR>";$BenchmarkTa = new Benchmark;}  if ($debug) {print "GetTeacherInfo<BR>";$BenchmarkTa = new Benchmark;}
   &GetTeacherInfo;    &GetTeacherInfo;
 if($debug) {$BenchmarkTb = new Benchmark;print "<BR>",timestr(timediff($BenchmarkTb,$BenchmarkTa)),"\n";}  if($debug) {$BenchmarkTb = new Benchmark;print "<BR>",timestr(timediff($BenchmarkTb,$BenchmarkTa)),"\n";}
   
     # check if student is banned from forum
   if ($debug) {print "BanUser<BR>";$BenchmarkTa = new Benchmark;}
   if (&BanUser) {exit;}
   if($debug) {$BenchmarkTb = new Benchmark;print "<BR>",timestr(timediff($BenchmarkTb,$BenchmarkTa)),"\n";}
   
   # check for valid studentnumber/capaid, an exit will occur here if the set wasn't open    # check for valid studentnumber/capaid, an exit will occur here if the set wasn't open
 if ($debug) {print "ValidateUser<BR>";$BenchmarkTa = new Benchmark;}  if ($debug) {print "ValidateUser<BR>";$BenchmarkTa = new Benchmark;}
   &ValidateUser;    &ValidateUser;
Line 170  if($debug) {$BenchmarkTb = new Benchmark Line 178  if($debug) {$BenchmarkTb = new Benchmark
 }  }
   
 sub ViewSet {  sub ViewSet {
     local($hidden);
   if ($debug) {print "InsideViewSet<BR>";$BenchmarkTa = new Benchmark;}    if ($debug) {print "InsideViewSet<BR>";$BenchmarkTa = new Benchmark;}
   &Log("ViewSet");    &Log("ViewSet");
   &CheckAdmin;    &CheckAdmin;
Line 213  if($debug) {$BenchmarkTb = new Benchmark Line 222  if($debug) {$BenchmarkTb = new Benchmark
   
   $col = 1;    $col = 1;
   for($probnum=1; $probnum<=$maxprobs; $probnum++) {    for($probnum=1; $probnum<=$maxprobs; $probnum++) {
       $hidden=0;
     if($col eq "1" && $probnum > $col1size && $bigtable eq "yes") {      if($col eq "1" && $probnum > $col1size && $bigtable eq "yes") {
       $col = 2;        $col = 2;
       &ViewSetEndColHTML;        &ViewSetEndColHTML;
Line 224  if($debug) {$BenchmarkTb = new Benchmark Line 234  if($debug) {$BenchmarkTb = new Benchmark
       closedir(MSG);        closedir(MSG);
       foreach $msg(@msgs) {        foreach $msg(@msgs) {
         if(&RemZero(substr($msg,0,6)) eq $probnum) {          if(&RemZero(substr($msg,0,6)) eq $probnum) {
           push(@good,$msg);            &OpenMsg("$capadir/$class/discussion/$setid/$msg");
             if(!($status eq "hidden" && $validadmin ne "yes")) { 
               push(@good,$msg); 
             } else { $hidden++; }
         }          }
       }        }
         $posts = $found[$probnum]-$hidden;
       &OpenMsg("$capadir/$class/discussion/$setid/$good[$#good]");        if ($posts >0) {
       $lastpost = "$date at $time";           &OpenMsg("$capadir/$class/discussion/$setid/$good[$#good]");
       $posts = $found[$probnum];           $lastpost = "$date at $time";
         } else {
            $lastpost = "--";
         }
     }      }
     else {      else {
       $lastpost = "--";        $lastpost = "--";
Line 582  sub WriteMsg { Line 598  sub WriteMsg {
   $filename = shift(@_);    $filename = shift(@_);
   # add sr to grab e-mail address of user    # add sr to grab e-mail address of user
   
     
     # <B> <I> <P> <A> <LI> <OL> <UL> <EM> <BR> <TT> <STRONG> <BLOCKQUOTE> <DIV .*> <DIV> <IMG>
     %html=(B=>1, I=>1, P=>1, A=>1, LI=>1, OL=>1, UL=>1, EM=>1, BR=>1, TT=>1, STRONG=>1,
    BLOCKQUOTE=>1, DIV=>1, IMG=>1);
   
   $message = $form{'message'};    $message = $form{'message'};
   $message =~ s/</&lt;/g;  
   $message =~ s/>/&gt;/g;  
   $message =~ s/((\n\r)|(\n))\n/<p>/g;    $message =~ s/((\n\r)|(\n))\n/<p>/g;
   $message =~ s/\n/<br>/g;    $message =~ s/\n/<br>/g;
   
     $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/
       {($html{uc($2)}&(length($1)<1000))?"\<$1":"\&lt;$1"}/ge;
     $message =~ s/(\<?\s*(\w+)[^\<\>]*)\>/
       {($html{uc($2)}&(length($1)<1000))?"$1\>":"$1\&gt;"}/ge;
   
   #  $message =~ s/</&lt;/g;
   #  $message =~ s/>/&gt;/g;
   
   # check if posted anonymously    # check if posted anonymously
   if($form{'ANONYMOUS'} eq "yes") {    if($form{'ANONYMOUS'} eq "yes") {
     $username = "Anonymous|$username";      $username = "Anonymous|$username";
Line 646  sub CheckAdmin { Line 674  sub CheckAdmin {
  last;   last;
       }        }
     }      }
    if ($debug) { print "Admin Sections: ".$adminsection;}
     @adminsections = split(/\,/,$adminsection);      @adminsections = split(/\,/,$adminsection);
     for ($asection=0; $asection <= $#adminsections; $asection++) {      for ($asection=0; $asection <= $#adminsections; $asection++) {
       $adminsections[$asection]=&RemZero($adminsections[$asection])        $adminsections[$asection]=&RemZero($adminsections[$asection])
Line 657  sub CheckAdmin { Line 686  sub CheckAdmin {
           
     $snum =~ tr/a-z/A-Z/;      $snum =~ tr/a-z/A-Z/;
     LINE: foreach $line(@classl) {      LINE: foreach $line(@classl) {
       ($course,$coursenum,$section,$stunum,$a) = split(/\ +/,$line);        $section= substr $line, 10, 3;
         $stunum= substr $line, 14, 9;
       $stunum =~ tr/a-z/A-Z/;        $stunum =~ tr/a-z/A-Z/;
       if ( $stunum ne $snum ) { next LINE;}        if ( $stunum ne $snum ) { next LINE;}
       $section = &RemZero($section);        $section = &RemZero($section);
    if ($debug) {print "<BR>".$stunum."Is in section:".$section."<BR>";}
       foreach $asection(@adminsections) {        foreach $asection(@adminsections) {
  if($section eq $asection ) {   if($section eq $asection ) {
   $validadmin = "yes";    $validadmin = "yes";
Line 672  sub CheckAdmin { Line 703  sub CheckAdmin {
   if($validadmin eq "no" && $mode eq "kill") { &NotAdminHTML; }    if($validadmin eq "no" && $mode eq "kill") { &NotAdminHTML; }
 }  }
   
   sub BanUser {
     local (@capaconfig,$line,$command,$value,$ban,@banned,$result);
     $result = 0;
     open(CAPACONFIG,"$capadir/$class/capa.config");
     @capaconfig = <CAPACONFIG>;
     close(CAPACONFIG);
     foreach $line(@capaconfig) {
       chop $line;
       ($command,$value) = split(/\ =\ /,$line);
       if($command eq "banned_users") { $ban = $value; last; }
     }
     
     if ($debug) { print "Banned Users: ".$ban }
     @banned = split(/\,/,$ban);
     $snum =~ tr/a-x/A-Z/;
     foreach $ban (@banned) {
       if ($debug) {print $ban . "is Banned <br>";}
       $ban =~ tr/a-z/A-Z/;
       $ban =~ tr/\ //d;
       if ( $ban eq $snum) { &BannedMessageHTML; $result=1 }
     }
     return $result
   }
   
 sub ValidateUser {  sub ValidateUser {
   local(@allcapaid,@classl,$line);    local(@allcapaid,@classl,$line);
   
Line 688  sub ValidateUser { Line 743  sub ValidateUser {
   if($valid eq "no") { &InvalidVarsHTML; }    if($valid eq "no") { &InvalidVarsHTML; }
   
   # check w/ allcapaid program    # check w/ allcapaid program
   @allcapaid = `allcapaid51 -s $setid -e $setid -stu $snum -c $capadir/$class -i -checkopen`;    @allcapaid = `allcapaid -s $setid -e $setid -stu $snum -c $capadir/$class -i -checkopen`;
   
   chop $allcapaid[2];    chop $allcapaid[2];
   chop $allcapaid[2];    chop $allcapaid[2];
Line 793  sub form_info { Line 848  sub form_info {
   
   foreach $pair (@pairs) {    foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);       ($name, $value) = split(/=/, $pair);
        if ($name eq "message") {$allow_html=1;} else {$allow_html=0;}
      # Un-Webify plus signs and %-encoding       # Un-Webify plus signs and %-encoding
      $value =~ tr/+/ /;       $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;       $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Line 813  sub GetDateTime  { Line 868  sub GetDateTime  {
   ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime (time);    ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime (time);
   $mon++;    $mon++;
   
     $year=$year+1900;
   
   if ($hour < 12) {    if ($hour < 12) {
   $AMPM = "AM";    $AMPM = "AM";
   }    }

Removed from v.1.5  
changed lines
  Added in v.1.8


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