Diff for /loncom/interface/lonmeta.pm between versions 1.11 and 1.20

version 1.11, 2001/12/24 21:09:08 version 1.20, 2002/09/16 21:01:41
Line 29 Line 29
 #  #
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)  # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #  #
 # 10/19,10/21,10/23,11/27,08/09/01,12/22,12/24 Gerd Kortemeyer  # 10/19,10/21,10/23,11/27,08/09/01,12/22,12/24,12/25 Gerd Kortemeyer
   
 package Apache::lonmeta;  package Apache::lonmeta;
   
Line 44  sub dynamicmeta { Line 44  sub dynamicmeta {
     my $url=&Apache::lonnet::declutter(shift);      my $url=&Apache::lonnet::declutter(shift);
     $url=~s/\.meta$//;      $url=~s/\.meta$//;
     my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);      my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);
     my $regexp=&Apache::lonnet::escape($url);      my $regexp=$url;
     $regexp=~s/(\W)/\\$1/g;      $regexp=~s/(\W)/\\$1/g;
     $regexp='___'.$regexp.'___';      $regexp='___'.$regexp.'___';
     my %evaldata=&Apache::lonnet::dump      my %evaldata=&Apache::lonnet::dump('nohist_resevaldata',$adomain,
                                      ('resevaldata',$adomain,$aauthor,$regexp);         $aauthor,$regexp);
     my %sum;      my %sum;
     my %cnt;      my %cnt;
     my %listitems=('count'        => 'add',      my %listitems=('count'        => 'add',
Line 96  sub dynamicmeta { Line 96  sub dynamicmeta {
     return %returnhash;      return %returnhash;
 }  }
   
   # -------------------------------------------------------------- Pretty display
   
   sub evalgraph {
       my $value=shift;
       unless ($value) { return ''; }
       my $val=int($value*10.+0.5)-10;
       my $output='<table border=0 cellpadding=0 cellspacing=0><tr>';
       if ($val>=20) {
    $output.='<td width=20 bgcolor="#555555">&nbsp&nbsp;</td>';
       } else {
           $output.='<td width='.($val).' bgcolor="#555555">&nbsp;</td>'.
                    '<td width='.(20-$val).' bgcolor="#FF3333">&nbsp;</td>';
       }
       $output.='<td bgcolor="#FFFF33">&nbsp;</td>';
       if ($val>20) {
    $output.='<td width='.($val-20).' bgcolor="#33FF33">&nbsp;</td>'.
                    '<td width='.(40-$val).' bgcolor="#555555">&nbsp;</td>';
       } else {
          $output.='<td width=20 bgcolor="#555555">&nbsp&nbsp;</td>';
       }
       $output.='<td> ('.$value.') </td></tr></table>';
       return $output;
   }
   
   sub diffgraph {
       my $value=shift;
       unless ($value) { return ''; }
       my $val=int(40.0*$value+0.5);
       my @colors=('#FF9933','#EEAA33','#DDBB33','#CCCC33',
                   '#BBDD33','#CCCC33','#DDBB33','#EEAA33');
       my $output='<table border=0 cellpadding=0 cellspacing=0><tr>';
       for (my $i=0;$i<8;$i++) {
    if ($val>$i*5) {
               $output.='<td width=5 bgcolor="'.$colors[$i].'">&nbsp;</td>';
           } else {
       $output.='<td width=5 bgcolor="#555555">&nbsp;</td>';
    }
       }
       $output.='<td> ('.$value.') </td></tr></table>';
       return $output;
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub handler {
   my $r=shift;    my $r=shift;
   
       my $loaderror=&Apache::lonnet::overloaderror($r);
       if ($loaderror) { return $loaderror; }
   
   
       my $uri=$r->uri;
   
       my ($resdomain,$resuser)=
              (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);
   
       $loaderror=
          &Apache::lonnet::overloaderror($r,
            &Apache::lonnet::homeserver($resuser,$resdomain));
       if ($loaderror) { return $loaderror; }
   
   my %content=();    my %content=();
   
 # ----------------------------------------------------------- Set document type  # ----------------------------------------------------------- Set document type
Line 110  sub handler { Line 167  sub handler {
   return OK if $r->header_only;    return OK if $r->header_only;
   
 # ------------------------------------------------------------------- Read file  # ------------------------------------------------------------------- Read file
     foreach (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
   my $uri=$r->uri;  
   map {  
       $content{$_}=&Apache::lonnet::metadata($uri,$_);        $content{$_}=&Apache::lonnet::metadata($uri,$_);
   } split(/\,/,&Apache::lonnet::metadata($uri,'keys'));    }
   
 # ------------------------------------------------------------------ Hide stuff  # ------------------------------------------------------------------ Hide stuff
   
   unless ($ENV{'user.adv'}) {    unless ($ENV{'user.adv'}) {
       map {        foreach ('keywords','notes','abstract','subject') {
           $content{$_}='<i>- not displayed -</i>';            $content{$_}='<i>- not displayed -</i>';
       } ('keywords','notes','abstract','subject');        }
   }    }
   
 # --------------------------------------------------------------- Render Output  # --------------------------------------------------------------- Render Output
Line 132  my $language=&Apache::loncommon::languag Line 186  my $language=&Apache::loncommon::languag
 my $mime=&Apache::loncommon::filedescription($content{'mime'});   my $mime=&Apache::loncommon::filedescription($content{'mime'}); 
 my $disuri=&Apache::lonnet::declutter($uri);  my $disuri=&Apache::lonnet::declutter($uri);
   $disuri=~s/\.meta$//;    $disuri=~s/\.meta$//;
   my $bodytag=&Apache::loncommon::bodytag
               ('Catalog Information','','','',$resdomain);
   $r->print(<<ENDHEAD);    $r->print(<<ENDHEAD);
 <html><head><title>Catalog Information</title></head>  <html><head><title>Catalog Information</title></head>
 <body bgcolor="#FFFFFF">  $bodytag
 <h1>Catalog Information</h1>  
 <h2>$content{'title'}</h2>  <h2>$content{'title'}</h2>
 <h3><tt>$disuri</tt></h3>  <h3><tt>$disuri</tt></h3>
 <table cellspacing=2 border=0>  <table cellspacing=2 border=0>
Line 177  ENDHEAD Line 232  ENDHEAD
   delete($content{'copyright'});    delete($content{'copyright'});
   if ($ENV{'user.adv'}) {    if ($ENV{'user.adv'}) {
 # ------------------------------------------------------------ Dynamic Metadata  # ------------------------------------------------------------ Dynamic Metadata
    $r->print('<h3>Dynamic Metadata (updated periodically)</h3>');     $r->print(
      '<h3>Dynamic Metadata (updated periodically)</h3>Processing ...<br>');
      $r->rflush();
     my %items=(      my %items=(
  'count'      => 'Network-wide number of accesses (hits)',   'count'      => 'Network-wide number of accesses (hits)',
  'course'     => 'Network-wide number of courses using resource',   'course'     => 'Network-wide number of courses using resource',
Line 202  $dynmeta{$_}."&nbsp;</td></tr>\n"); Line 259  $dynmeta{$_}."&nbsp;</td></tr>\n");
    if ($uri=~/\.(problem|exam|quiz|assess|survey|form)\.meta$/) {     if ($uri=~/\.(problem|exam|quiz|assess|survey|form)\.meta$/) {
       $r->print(        $r->print(
 '<h4>Assessment Statistical Data</h4><table cellspacing=2 border=0>');  '<h4>Assessment Statistical Data</h4><table cellspacing=2 border=0>');
       foreach ('stdno','avetries','difficulty') {        foreach ('stdno','avetries') {
           $r->print(            $r->print(
 '<tr><td bgcolor="#AAAAAA">'.$items{$_}.'</td><td bgcolor="#CCCCCC">'.  '<tr><td bgcolor="#AAAAAA">'.$items{$_}.'</td><td bgcolor="#CCCCCC">'.
 $dynmeta{$_}."&nbsp;</td></tr>\n");  $dynmeta{$_}."&nbsp;</td></tr>\n");
       }        }
         foreach ('difficulty') {
            $r->print(
   '<tr><td bgcolor="#AAAAAA">'.$items{$_}.'</td><td bgcolor="#CCCCCC">'.
   &diffgraph($dynmeta{$_})."</td></tr>\n");
         }
       $r->print('</table>');            $r->print('</table>');    
    }     }
    $r->print('<h4>Evaluation Data</h4><table cellspacing=2 border=0>');     $r->print('<h4>Evaluation Data</h4><table cellspacing=2 border=0>');
    foreach ('clear','depth','helpful','correct','technical') {     foreach ('clear','depth','helpful','correct','technical') {
        $r->print(         $r->print(
 '<tr><td bgcolor="#AAAAAA">'.$items{$_}.'</td><td bgcolor="#CCCCCC">'.  '<tr><td bgcolor="#AAAAAA">'.$items{$_}.'</td><td bgcolor="#CCCCCC">'.
 $dynmeta{$_}."&nbsp;</td></tr>\n");  &evalgraph($dynmeta{$_})."</td></tr>\n");
    }         }    
    $r->print('</table>');     $r->print('</table>');
    $disuri=~/^(\w+)\/(\w+)\//;        $disuri=~/^(\w+)\/(\w+)\//;   
Line 231  $dynmeta{$_}."&nbsp;</td></tr>\n"); Line 293  $dynmeta{$_}."&nbsp;</td></tr>\n");
       my $display=&Apache::lonnet::metadata($uri,$name.'.display');        my $display=&Apache::lonnet::metadata($uri,$name.'.display');
       unless ($display) { $display=$name; };        unless ($display) { $display=$name; };
       my $otherinfo='';        my $otherinfo='';
       map {        foreach ('name','part','type','default') {
           if (defined(&Apache::lonnet::metadata($uri,$name.'.'.$_))) {            if (defined(&Apache::lonnet::metadata($uri,$name.'.'.$_))) {
              $otherinfo.=' '.$_.'='.               $otherinfo.=' '.$_.'='.
  &Apache::lonnet::metadata($uri,$name.'.'.$_).'; ';   &Apache::lonnet::metadata($uri,$name.'.'.$_).'; ';
           }            }
       } ('name','part','type','default');         }
       $r->print('<b>'.$display.':</b> '.$content{$name});        $r->print('<b>'.$display.':</b> '.$content{$name});
       if ($otherinfo) {        if ($otherinfo) {
          $r->print(' ('.$otherinfo.')');           $r->print(' ('.$otherinfo.')');

Removed from v.1.11  
changed lines
  Added in v.1.20


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