Diff for /loncom/interface/lonmeta.pm between versions 1.207 and 1.214

version 1.207, 2007/05/12 23:04:07 version 1.214, 2008/11/17 14:06:14
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 811  sub handler { Line 928  sub handler {
  {'domain' => $resdomain,}));   {'domain' => $resdomain,}));
         &present_editable_metadata($r,$uri);          &present_editable_metadata($r,$uri);
     } else {      } else {
         $r->print(&Apache::loncommon::start_page('Catalog Information',          $r->print(&Apache::loncommon::start_page('Metadata',
  undef,   undef,
  {'domain' => $resdomain,}));   {'domain' => $resdomain,}));
         &present_uneditable_metadata($r,$uri);          &present_uneditable_metadata($r,$uri);
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 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('Metadata 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 Metadata 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 1385  ENDEDIT Line 1509  ENDEDIT
             my ($outcome,$result) = &store_metadata($fn,$uri,'store');              my ($outcome,$result) = &store_metadata($fn,$uri,'store');
             $r->print($result);              $r->print($result);
  }   }
  $r->print($output.'<br /><input type="submit" name="store" value="'.   $r->print($output.'<br /><input type="submit" title="Save Metadata" name="store" value="'.
                   &mt('Save Catalog Information').'" />');                    &mt('Save').'" />');
   
  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.207  
changed lines
  Added in v.1.214


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.