Diff for /loncom/interface/lonmeta.pm between versions 1.205 and 1.213

version 1.205, 2007/05/01 02:13:40 version 1.213, 2008/11/10 15:15:29
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
   
   
   =head1 NAME
   
   Apache::lonmeta - display meta data
   
   =head1 SYNOPSIS
   
   Handler to display meta data
   
   This is part of the LearningOnline Network with CAPA project
   described at http://www.lon-capa.org.
   
   =head1 HANDLER SUBROUTINE
   
   handler()
   
   =head1 OTHER SUBROUTINES
   
   =over
   
   =item *
   
   &get_dynamic_metadata_from_sql($url) :
   
   Queries sql database for dynamic metdata
   Returns a hash of hashes, with keys of urls which match $url
   Returned fields are given below.
   
   Examples:
   
       %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql
       ('/res/msu/korte/');
   
       $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field}
   
   =item *
   
   dynamicmeta() : Fetch and evaluate dynamic metadata
   
   =item *
   
   access_count()
   
   =item *
   
   alttag() : Try to make an alt tag if there is none
   
   =item *
   
   authordisplay() : Author display
   
   =item *
   
   evalgraph() : Pretty display
   
   =item *
   
   diffgraph()
   
   =item *
   
   fieldnames()
   
   =item *
   
   portfolio_linked_path()
   
   =item *
   
   get_port_path_and_group()
   
   =item *
   
   portfolio_display_uri()
   
   =item *
   
   pre_select_course()
   
   =item *
   
   select_course()
   
   =item *
   
   prettyprint() : Pretty printing of metadata field
   
   =item *
   
   direct() : Pretty input of metadata field
   
   =item *
   
   selectbox()
   
   =item *
   
   relatedfield()
   
   =item *
   
   prettyinput()
   
   =item *
   
   report_bombs()
   
   =item *
   
   present_uneditable_metadata()
   
   =item *
   
   present_editable_metadata()
   
   =item *
   
   store_metadata()
   
   =item *
   
   store_transferred_addedfields()
   
   =item *
   
   store_portfolio_metadata()
   
   =item *
   
   update_metadata_table()
   
   =back
   
   =cut
   
   
 package Apache::lonmeta;  package Apache::lonmeta;
   
 use strict;  use strict;
Line 42  use Apache::lonmsg; Line 177  use Apache::lonmsg;
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
   
   
 ############################################################  
 ############################################################  
 ##  
 ## &get_dynamic_metadata_from_sql($url)  
 ##   
 ## Queries sql database for dynamic metdata  
 ## Returns a hash of hashes, with keys of urls which match $url  
 ## Returned fields are given below.  
 ##  
 ## Examples:  
 ##   
 ## %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql  
 ##     ('/res/msu/korte/');  
 ##  
 ## $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field}  
 ##  
 ############################################################  
 ############################################################  
 sub get_dynamic_metadata_from_sql {  sub get_dynamic_metadata_from_sql {
     my ($url) = shift();      my ($url) = shift();
     my ($authordom,$author)=($url=~m{^/res/($match_domain)/($match_username)/});      my ($authordom,$author)=($url=~m{^/res/($match_domain)/($match_username)/});
Line 839  sub report_bombs { Line 956  sub report_bombs {
     &Apache::lonmsg::clear_author_res_msg($uri);      &Apache::lonmsg::clear_author_res_msg($uri);
  }   }
         my $clear=&mt('Clear all Messages in Subdirectory');          my $clear=&mt('Clear all Messages in Subdirectory');
  $r->print(<<ENDCLEAR);          my $cancel=&mt('Back to Directory');
           my $cancelurl=$uri;
           $cancelurl=~s/^\Q$domain\E/\/priv/;
           $r->print(<<ENDCLEAR);
 <form method="post">  <form method="post">
 <input type="submit" name="clearbombs" value="$clear" />  <input type="submit" name="clearbombs" value="$clear" />
 </form>  <a href="$cancelurl">$cancel</a>
   </form><hr />
 ENDCLEAR  ENDCLEAR
         my %brokenurls =           my %brokenurls = 
             &Apache::lonmsg::all_url_author_res_msg($author,$domain);              &Apache::lonmsg::all_url_author_res_msg($author,$domain);
Line 1026  sub print_dynamic_metadata { Line 1147  sub print_dynamic_metadata {
             #              #
             # New assessment statistics              # New assessment statistics
             $r->print('<h4>'.              $r->print('<h4>'.
                       &mt('Detailed Assessment Statistical Data').                        &mt('Recent Detailed Assessment Statistical Data').
                       '</h4>');                        '</h4>');
             my $table = '<table cellspacing="2" border="0">'.              my $table = '<table cellspacing="2" border="0">'.
                 '<tr>'.                  '<tr>'.
                 '<th>Course</th>'.                  '<th>'.&mt('Course').'</th>'.
                 '<th>Section(s)</th>'.                  '<th>'.&mt('Section(s)').'</th>'.
                 '<th>Num Students</th>'.                  '<th>'.&mt('Num Student').'s</th>'.
                 '<th>Mean Tries</th>'.                  '<th>'.&mt('Mean Tries').'</th>'.
                 '<th>Degree of Difficulty</th>'.                  '<th>'.&mt('Degree of Difficulty').'</th>'.
                 '<th>Degree of Discrimination</th>'.                  '<th>'.&mt('Degree of Discrimination').'</th>'.
                 '<th>Time of computation</th>'.                  '<th>'.&mt('Time of computation').'</th>'.
                 '</tr>'.$/;                  '</tr>'.$/;
             foreach my $identifier (sort(keys(%{$dynmeta{'stats'}}))) {              foreach my $identifier (sort(keys(%{$dynmeta{'stats'}}))) {
                 my $data = $dynmeta{'stats'}->{$identifier};                  my $data = $dynmeta{'stats'}->{$identifier};
Line 1074  sub print_dynamic_metadata { Line 1195  sub print_dynamic_metadata {
             $table .= '</table>'.$/;              $table .= '</table>'.$/;
             $r->print($table);              $r->print($table);
         } else {          } else {
             $r->print('No new dynamic data found.');              $r->print(&mt('No new dynamic data found.'));
         }          }
     } else {      } else {
         $r->print('<h4>'.          $r->print('<h4>'.
Line 1212  ENDBOMBS Line 1333  ENDBOMBS
 <input type="submit" name="clearmsg" value="$clear" />  <input type="submit" name="clearmsg" value="$clear" />
 ENDDEL  ENDDEL
         } else {          } else {
             $r->print('<p><a href="'.$disuri.'" />'.$goback.'</a></p>');              $r->print('<p><a href="'.$disuri.'">'.$goback.'</a></p>');
     if ($env{'form.clearmsg'}) {      if ($env{'form.clearmsg'}) {
  my ($diruri) = ($disuri =~ m{(.*/)[^/]*});   my ($diruri) = ($disuri =~ m{(.*/)[^/]*});
  $r->print('<p><a href="'.$diruri.'" />'.   $r->print('<p><a href="'.$diruri.'">'.
   &mt('Back To Directory').'</a></p>');    &mt('Back To Directory').'</a></p>');
     }      }
  }   }
  $r->print('<br />'.$bombs);   $r->print('<br />'.$bombs);
     } else {      } else {
         my $displayfile='Catalog Information for '.$disuri;          my $displayfile=&mt('Catalog Information for [_1]',$disuri);
         if ($disuri=~/\/default$/) {          if ($disuri=~/\/default$/) {
             my $dir=$disuri;              my $dir=$disuri;
             $dir=~s/default$//;              $dir=~s/default$//;
             $displayfile=              $displayfile=&mt('Default Cataloging Information for Directory [_1]',$dir);
                 &mt('Default Cataloging Information for Directory').' '.  
                 $dir;  
         }          }
         %Apache::lonpublisher::metadatafields=();          %Apache::lonpublisher::metadatafields=();
         %Apache::lonpublisher::metadatakeys=();          %Apache::lonpublisher::metadatakeys=();
Line 1312  ENDEDIT Line 1431  ENDEDIT
  $Apache::lonpublisher::metadatafields{'owner'} =   $Apache::lonpublisher::metadatafields{'owner'} =
     $env{'user.name'}.':'.$env{'user.domain'};      $env{'user.name'}.':'.$env{'user.domain'};
     }      }
       if (! $Apache::lonpublisher::metadatafields{'author'}) {
    $Apache::lonpublisher::metadatafields{'author'} =
       &Apache::loncommon::plainname($env{'user.name'},
     $env{'user.domain'});
       }
     if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {      if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {
   
                 if ($file_type eq 'portfolio') {                  if ($file_type eq 'portfolio') {
Line 1327  ENDEDIT Line 1451  ENDEDIT
                         ".description"}.'</strong>').'<br />');                          ".description"}.'</strong>').'<br />');
                 }                  }
     } else {      } else {
  $r->print('<a href="'.$uri.'?changecourse=true">This resource is not associated with a course.</a><br />');   $r->print('<a href="'.$uri.'?changecourse=true">'.&mt('This resource is not associated with a course.').'</a><br />');
     }      }
  }   }
  if (@added_order) {   if (@added_order) {
Line 1386  ENDEDIT Line 1510  ENDEDIT
             $r->print($result);              $r->print($result);
  }   }
  $r->print($output.'<br /><input type="submit" name="store" value="'.   $r->print($output.'<br /><input type="submit" name="store" value="'.
                   &mt('Store Catalog Information').'" />');                    &mt('Save Catalog Information').'" />');
   
  if ($file_type eq 'portfolio' || $file_type eq 'groups') {   if ($file_type eq 'portfolio' || $file_type eq 'groups') {
     my ($port_path,$group) = &get_port_path_and_group($uri);      my ($port_path,$group) = &get_port_path_and_group($uri);

Removed from v.1.205  
changed lines
  Added in v.1.213


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