Diff for /capa/capa51/Discuss/Ver1.3/Attic/capadiscuss between versions 1.2 and 1.6

version 1.2, 1999/10/13 18:45:28 version 1.6, 2000/01/05 21:11:15
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 102  exit; Line 104  exit;
 #######################  #######################
 sub GetSetList {  sub GetSetList {
   opendir(DDIR,"$capadir/$class/discussion");    opendir(DDIR,"$capadir/$class/discussion");
   @sets = grep(/[0-9]/,sort(readdir(DDIR)));    @sets = grep(/^[0-9]+$/,sort(readdir(DDIR)));
   closedir(DDIR);    closedir(DDIR);
     if ($debug) {print "<br> Sets:". @sets ."<BR>\n";}
 }  }
   
 sub SetListHeader {  sub SetListHeader {
Line 116  sub SetListHeader { Line 119  sub SetListHeader {
   $pdset .= "</select>\n";    $pdset .= "</select>\n";
 }  }
   
   sub GetInfoList {
     local(@temp,@alldir,@setdir);
   #  if ($debug) {print "<br> GetInfoList <br>";}
     opendir(DDIR,"$capadir/$class/discussion");
     @alldir = sort(grep(/.info$/,readdir(DDIR)));
     closedir(DDIR);
   
     opendir(FORUM,"$capadir/$class/discussion/$setid");
     @setdir = sort(grep(/.info$/,readdir(FORUM)));
     closedir(FORUM);
   
     foreach $file(@setdir) { @setdir2 = (@setdir2,"$setid/$file"); }
     @infofiles = (@alldir,@setdir2);
     $infostring = "";
   #  if ($debug) {print "<br> GetInfoList" . @infofiles."<br>";}
     foreach $infofile(@infofiles) {
   #    if ($debug) {print "<br> GetInfoList" . $infofile."<br>";}
       @temp = reverse split /\//, $infofile;
       $infodesc = $temp[0];
       $infodesc =~ s/.info//g;
       $infodesc =~ s/_/ /g;
       $infostring .= &InfoButtonHTML;
     }
     if ($infostring ne "") {
    #   $infostring = "</tr><tr>" . $infostring;
     }
   #  if ($debug) {print "<br> GetInfoList" . $infostring."<br>";}
   }
   
 sub NewSet {  sub NewSet {
   &Log("NewSet");    &Log("NewSet");
   
   if($setid <= $psetid) {   #grab capaid    if($setid <= $psetid) {   #grab capaid
     if ($debug) {print "ViewSet<BR>";$BenchmarkTa = new Benchmark;}      if ($debug) {print "NewSet<BR>";$BenchmarkTa = new Benchmark;}
     @allcapaid = `allcapaid -s $setid -e $setid -stu $snum -c $capadir/$class -i`;      @allcapaid = `allcapaid -s $setid -e $setid -stu $snum -c $capadir/$class -i`;
   
     $capaid = $allcapaid[2];      $capaid = $allcapaid[2];
Line 131  if($debug) {$BenchmarkTb = new Benchmark Line 163  if($debug) {$BenchmarkTb = new Benchmark
     return;      return;
   }    }
   
     if ($debug) { print "<br> GetSetList\n"; }
   &GetSetList;    &GetSetList;
     if ($debug) { print "<br> EndGetSetList\n"; }
   &SetListHeader;    &SetListHeader;
   &NewSetHTML;    &NewSetHTML;
   #exit;    #exit;
Line 148  sub ViewSet { Line 182  sub ViewSet {
   
   $capasbin = "$capasbin/$teachdir/capasbin";    $capasbin = "$capasbin/$teachdir/capasbin";
   &SetJumpBox;    &SetJumpBox;
     $backfunction="viewset";
     &GetInfoList;
   
   opendir(FORUM,"$capadir/$class/discussion/$setid");    opendir(FORUM,"$capadir/$class/discussion/$setid");
     @dir = sort(readdir(FORUM));      @dir = sort(readdir(FORUM));
   closedir(FORUM);    closedir(FORUM);
   
   @infofiles = grep(/.info/,@dir);  
   $infostring = "";  
   $backfunction = "viewset";  
   foreach $infofile(@infofiles) {  
     $infodesc = $infofile;  
     $infodesc =~ s/.info//g;  
     $infodesc =~ s/_/ /g;  
     $infostring .= &InfoButtonHTML;  
   }  
   
   foreach $i(@dir) {    foreach $i(@dir) {
     $probnum = &RemZero(substr($i,0,6));      $probnum = &RemZero(substr($i,0,6));
     $found[$probnum]++;      $found[$probnum]++;
Line 268  sub ViewProblem { Line 295  sub ViewProblem {
       }        }
   
       if($msgcount eq "1") {        if($msgcount eq "1") {
    &GetInfoList;
         $postbutton = &ReplyButtonHTML;          $postbutton = &ReplyButtonHTML;
         &ProblemJumpBox;          &ProblemJumpBox;
         &ViewProblemTopHTML;          &ViewProblemTopHTML;
Line 301  sub ViewProblem { Line 329  sub ViewProblem {
           $hidebutton = &UnHideButtonHTML;            $hidebutton = &UnHideButtonHTML;
           $messagenote = "Hidden by $hiddenuser on $hiddendate at $hiddentime from $hiddenaddr";            $messagenote = "Hidden by $hiddenuser on $hiddendate at $hiddentime from $hiddenaddr";
         }          }
  $message =~ s/</&lt;/g;  # $message =~ s/</&lt;/g;
  $message =~ s/>/&gt;/g;  # $message =~ s/>/&gt;/g;
         &ViewProblemGutsHTML;          &ViewProblemGutsHTML;
       }        }
     }      }
   }    }
   
   if($msgfind eq "no") {    if($msgfind eq "no") {
       &GetInfoList;
     $postbutton = &PostNewButtonHTML;      $postbutton = &PostNewButtonHTML;
     &ProblemJumpBox;      &ProblemJumpBox;
     &ViewProblemTopHTML;      &ViewProblemTopHTML;
Line 322  sub ViewProblem { Line 351  sub ViewProblem {
 }  }
   
 sub ViewInfoFile {  sub ViewInfoFile {
   open(INFOFILE,"$capadir/$class/discussion/$setid/$file");    &Log("InfoFile");
     open(INFOFILE,"$capadir/$class/discussion/$file");
     @file = <INFOFILE>;      @file = <INFOFILE>;
   closedir(INFOFILE);    closedir(INFOFILE);
   
Line 554  sub WriteMsg { Line 584  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> <P .
     %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/\n\r\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 658  sub ValidateUser { Line 702  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 721  sub ProblemJumpBox { Line 765  sub ProblemJumpBox {
 }  }
   
 sub SetJumpBox {  sub SetJumpBox {
   opendir(DDIR,"$capadir/$class/discussion");    &GetSetList;
     @sets = grep(/[0-9]/,sort(readdir(DDIR)));    &SetListHeader;
   closedir(DDIR);  
   
   $pdset = "<select name=\"SETID\">\n";  
   foreach $set(@sets) {  
     $selected = "";  
     if($set eq $setid) { $selected = " selected"; }  
     $pdset .= "  <option value=\"$set\"$selected>$set\n";  
   }  
   $pdset .= "</select>";  
 }  }
   
 sub AddZero {  sub AddZero {
Line 772  sub form_info { Line 807  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 829  sub Log { Line 864  sub Log {
   
   &Lock("lock.file");    &Lock("lock.file");
   open(LOG,">>$capadir/$class/discussion/logs/access.log");    open(LOG,">>$capadir/$class/discussion/logs/access.log");
     print LOG "$snum|$capaid|$username|$email|$logmsg|$setid|$probnum|$HyphenDate|$Time\n";      print LOG "$snum|$capaid|$username|$email|$logmsg|$setid|$probnum|$HyphenDate|$Time|$file\n";
   close(LOG);    close(LOG);
   &Unlock("lock.file");    &Unlock("lock.file");
 }  }

Removed from v.1.2  
changed lines
  Added in v.1.6


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