Diff for /loncom/interface/loncommon.pm between versions 1.90 and 1.99

version 1.90, 2003/03/26 19:34:42 version 1.99, 2003/05/13 00:52:46
Line 79  use strict; Line 79  use strict;
 use Apache::lonnet();  use Apache::lonnet();
 use GDBM_File;  use GDBM_File;
 use POSIX qw(strftime mktime);  use POSIX qw(strftime mktime);
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common :http :methods);
 use Apache::lonmsg();  use Apache::lonmsg();
 use Apache::lonmenu();  use Apache::lonmenu();
 my $readit;  my $readit;
Line 151  BEGIN { Line 151  BEGIN {
     while (<$fh>) {      while (<$fh>) {
  next if /^\#/;   next if /^\#/;
  chomp;   chomp;
  my ($key,$val)=(split(/\s+/,$_,2));   my ($key,$two,$country,$three,$enc,$val)=(split(/\t/,$_));
  $language{$key}=$val;   $language{$key}=$val.' - '.$enc;
     }      }
  }   }
     }      }
Line 346  sub selectstudent_link { Line 346  sub selectstudent_link {
         return '';          return '';
    }     }
     return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.      return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.
         '","'.$udomele.'");'."'>Select</a>";          '","'.$udomele.'");'."'>Select User</a>";
   }
   
   sub coursebrowser_javascript {
      return (<<'ENDSTDBRW');
   <script type="text/javascript" language="Javascript" >
       var stdeditbrowser;
       function opencrsbrowser(formname,uname,udom) {
           var url = '/adm/pickcourse?';
           var filter;
           if (filter != null) {
              if (filter != '') {
                  url += 'filter='+filter+'&';
      }
           }
           url += 'form=' + formname + '&cnumelement='+uname+
                                       '&cdomelement='+udom;
           var title = 'Course Browser';
           var options = 'scrollbars=1,resizable=1,menubar=0';
           options += ',width=700,height=600';
           stdeditbrowser = open(url,title,options,'1');
           stdeditbrowser.focus();
       }
   </script>
   ENDSTDBRW
   }
   
   sub selectcourse_link {
      my ($form,$unameele,$udomele)=@_;
       return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele.
           '","'.$udomele.'");'."'>Select Course</a>";
 }  }
   
 ###############################################################  ###############################################################
Line 1317  sub languagedescription { Line 1347  sub languagedescription {
     return $language{shift(@_)};      return $language{shift(@_)};
 }  }
   
   # ----------------------------------------------------------- Display Languages
   # returns a hash with all desired display languages
   #
   
   sub display_languages {
       my %languages=();
       if ($ENV{'environment.languages'}) {
    foreach (split(/\s*(\,|\;|\:)\s*/,$ENV{'environment.languages'})) {
       $languages{$_}=1;
           }
       }
       &get_unprocessed_cgi($ENV{'QUERY_STRING'},['displaylanguage']);
       if ($ENV{'form.displaylanguage'}) {
    foreach (split(/\s*(\,|\;|\:)\s*/,$ENV{'form.displaylanguage'})) {
       $languages{$_}=1;
           }
       }
       return %languages;
   }
   
 # --------------------------------------------------------------- Copyright IDs  # --------------------------------------------------------------- Copyright IDs
 sub copyrightids {  sub copyrightids {
     return sort(keys(%cprtag));      return sort(keys(%cprtag));
Line 1605  Returns: value of designparamter $which Line 1655  Returns: value of designparamter $which
 ##############################################  ##############################################
 sub designparm {  sub designparm {
     my ($which,$domain)=@_;      my ($which,$domain)=@_;
       if ($ENV{'environment.color.'.$which}) {
    return $ENV{'environment.color.'.$which};
       }
     $domain=&determinedomain($domain);      $domain=&determinedomain($domain);
     if ($designhash{$domain.'.'.$which}) {      if ($designhash{$domain.'.'.$which}) {
  return $designhash{$domain.'.'.$which};   return $designhash{$domain.'.'.$which};
Line 1685  sub bodytag { Line 1738  sub bodytag {
 <body bgcolor="$pgbg" text="$font" alink="$alink" vlink="$vlink" link="$link"  <body bgcolor="$pgbg" text="$font" alink="$alink" vlink="$vlink" link="$link"
 $addentries>  $addentries>
 END  END
       my $upperleft='<img src="http://'.$ENV{'HTTP_HOST'}.':'.
                      $lonhttpdPort.$img.'" />';
     if ($bodyonly) {      if ($bodyonly) {
         return $bodytag;          return $bodytag;
     } elsif ($ENV{'browser.interface'} eq 'textual') {      } elsif ($ENV{'browser.interface'} eq 'textual') {
   # Accessibility
         return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',          return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',
                                                       $forcereg).                                                        $forcereg).
                '<h1>LON-CAPA: '.$title.'</h1>';                 '<h1>LON-CAPA: '.$title.'</h1>';
     } else {      } elsif ($ENV{'environment.remote'} eq 'off') {
         return(<<ENDBODY);  # No Remote
           return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',
                                                         $forcereg).
                  '<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td bgcolor="'.$tabbg.'"><font size="+3" color="'.$font.'"><b>'.$title.
   '</b></font></td></tr></table>';
       }
   
   #
   # Top frame rendering, Remote is up
   #
       return(<<ENDBODY);
 $bodytag  $bodytag
 <table width="100%" cellspacing="0" border="0" cellpadding="0">  <table width="100%" cellspacing="0" border="0" cellpadding="0">
 <tr><td bgcolor="$font">  <tr><td bgcolor="$sidebg">
 <img src="http://$ENV{'HTTP_HOST'}:$lonhttpdPort$img" /></td>  $upperleft</td>
 <td bgcolor="$font"><font color='$sidebg'>$messages</font></td>  <td bgcolor="$sidebg" align="right">$messages&nbsp;</td>
 </tr>  </tr>
 <tr>  <tr>
 <td rowspan="3" bgcolor="$tabbg">  <td rowspan="3" bgcolor="$tabbg">
Line 1718  $bodytag Line 1784  $bodytag
 <td bgcolor="$tabbg" align="right"><font size="2">$realm</font>&nbsp;</td></tr>  <td bgcolor="$tabbg" align="right"><font size="2">$realm</font>&nbsp;</td></tr>
 </table><br>  </table><br>
 ENDBODY  ENDBODY
   }
   
   ###############################################
   
   sub get_posted_cgi {
       my $r=shift;
   
       my $buffer;
       
       $r->read($buffer,$r->header_in('Content-length'),0);
       unless ($buffer=~/^(\-+\w+)\s+Content\-Disposition\:\s*form\-data/si) {
    my @pairs=split(/&/,$buffer);
    my $pair;
    foreach $pair (@pairs) {
       my ($name,$value) = split(/=/,$pair);
       $value =~ tr/+/ /;
       $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
       $name  =~ tr/+/ /;
       $name  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
       &add_to_env("form.$name",$value);
    }
       } else {
    my $contentsep=$1;
    my @lines = split (/\n/,$buffer);
    my $name='';
    my $value='';
    my $fname='';
    my $fmime='';
    my $i;
    for ($i=0;$i<=$#lines;$i++) {
       if ($lines[$i]=~/^$contentsep/) {
    if ($name) {
       chomp($value);
       if ($fname) {
    $ENV{"form.$name.filename"}=$fname;
    $ENV{"form.$name.mimetype"}=$fmime;
       } else {
    $value=~s/\s+$//s;
       }
       &add_to_env("form.$name",$value);
    }
    if ($i<$#lines) {
       $i++;
       $lines[$i]=~
    /Content\-Disposition\:\s*form\-data\;\s*name\=\"([^\"]+)\"/i;
       $name=$1;
       $value='';
       if ($lines[$i]=~/filename\=\"([^\"]+)\"/i) {
    $fname=$1;
    if 
                               ($lines[$i+1]=~/Content\-Type\:\s*([\w\-\/]+)/i) {
    $fmime=$1;
    $i++;
       } else {
    $fmime='';
       }
       } else {
    $fname='';
    $fmime='';
       }
       $i++;
    }
       } else {
    $value.=$lines[$i]."\n";
       }
    }
     }      }
       $ENV{'request.method'}=$ENV{'REQUEST_METHOD'};
       $r->method_number(M_GET);
       $r->method('GET');
       $r->headers_in->unset('Content-length');
 }  }
   
 ###############################################  ###############################################
   
 sub get_unprocessed_cgi {  sub get_unprocessed_cgi {

Removed from v.1.90  
changed lines
  Added in v.1.99


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