version 1.89, 2002/08/09 17:57:48
|
version 1.90, 2002/08/09 17:59:14
|
Line 61
|
Line 61
|
## ## |
## ## |
############################################################################### |
############################################################################### |
|
|
|
|
|
###################################################################### |
|
###################################################################### |
|
|
|
=pod |
|
|
|
=head1 Name |
|
|
|
lonpublisher - LON-CAPA publishing handler |
|
|
|
=head1 Synopsis |
|
|
|
lonpublisher takes the proper steps to add resources to the LON-CAPA |
|
digital library. This includes updating the metadata table in the |
|
LON-CAPA database. |
|
|
|
=head1 Description |
|
|
|
lonpublisher is many things to many people. |
|
To all people it is woefully documented. |
|
This documentation conforms to this standard. |
|
|
|
This module publishes a file. This involves gathering metadata, |
|
versioning the file, copying file from construction space to |
|
publication space, and copying metadata from construction space |
|
to publication space. |
|
|
|
=head2 Internal Functions |
|
|
|
=over 4 |
|
|
|
=cut |
|
|
|
###################################################################### |
|
###################################################################### |
|
|
|
|
package Apache::lonpublisher; |
package Apache::lonpublisher; |
|
|
# ------------------------------------------------- modules used by this module |
# ------------------------------------------------- modules used by this module |
Line 88 my $docroot;
|
Line 125 my $docroot;
|
my $cuname; |
my $cuname; |
my $cudom; |
my $cudom; |
|
|
# ----------------------------------------------- Evaluate string with metadata |
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item metaeval |
|
|
|
Evaluate string with metadata |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub metaeval { |
sub metaeval { |
my $metastring=shift; |
my $metastring=shift; |
|
|
Line 131 sub metaeval {
|
Line 180 sub metaeval {
|
} |
} |
} |
} |
|
|
# -------------------------------------------------------- Read a metadata file |
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item metaread |
|
|
|
Read a metadata file |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub metaread { |
sub metaread { |
my ($logfile,$fn)=@_; |
my ($logfile,$fn)=@_; |
unless (-e $fn) { |
unless (-e $fn) { |
Line 148 sub metaread {
|
Line 209 sub metaread {
|
return '<br><b>Processed file:</b> <tt>'.$fn.'</tt>'; |
return '<br><b>Processed file:</b> <tt>'.$fn.'</tt>'; |
} |
} |
|
|
# ---------------------------- convert 'time' format into a datetime sql format |
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item sqltime |
|
|
|
Convert 'time' format into a datetime sql format |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub sqltime { |
sub sqltime { |
my $timef=shift @_; |
my $timef=shift @_; |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
Line 157 sub sqltime {
|
Line 230 sub sqltime {
|
return "$year-$mon-$mday $hour:$min:$sec"; |
return "$year-$mon-$mday $hour:$min:$sec"; |
} |
} |
|
|
# --------------------------------------------------------- Various form fields |
|
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item Form field generating functions |
|
|
|
=over 4 |
|
|
|
=item textfield |
|
|
|
=item hiddenfield |
|
|
|
=item selectbox |
|
|
|
=back |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub textfield { |
sub textfield { |
my ($title,$name,$value)=@_; |
my ($title,$name,$value)=@_; |
return "\n<p><b>$title:</b><br>". |
return "\n<p><b>$title:</b><br>". |
Line 185 sub selectbox {
|
Line 278 sub selectbox {
|
return $selout.'</select>'; |
return $selout.'</select>'; |
} |
} |
|
|
# -------------------------------------------------------- Publication Step One |
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item urlfixup |
|
|
|
Fix up a url? First step of publication |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub urlfixup { |
sub urlfixup { |
my ($url,$target)=@_; |
my ($url,$target)=@_; |
unless ($url) { return ''; } |
unless ($url) { return ''; } |
Line 207 sub urlfixup {
|
Line 311 sub urlfixup {
|
return $url; |
return $url; |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item absoluteurl |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub absoluteurl { |
sub absoluteurl { |
my ($url,$target)=@_; |
my ($url,$target)=@_; |
unless ($url) { return ''; } |
unless ($url) { return ''; } |
Line 218 sub absoluteurl {
|
Line 334 sub absoluteurl {
|
return $url; |
return $url; |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item set_allow |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub set_allow { |
sub set_allow { |
my ($allow,$logfile,$target,$tag,$oldurl)=@_; |
my ($allow,$logfile,$target,$tag,$oldurl)=@_; |
my $newurl=&urlfixup($oldurl,$target); |
my $newurl=&urlfixup($oldurl,$target); |
Line 236 sub set_allow {
|
Line 365 sub set_allow {
|
return $return_url |
return $return_url |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item get_subscribed_hosts |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub get_subscribed_hosts { |
sub get_subscribed_hosts { |
my ($target)=@_; |
my ($target)=@_; |
my @subscribed; |
my @subscribed; |
Line 269 sub get_subscribed_hosts {
|
Line 411 sub get_subscribed_hosts {
|
} |
} |
|
|
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item get_max_ids_indices |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub get_max_ids_indices { |
sub get_max_ids_indices { |
my ($content)=@_; |
my ($content)=@_; |
my $maxindex=10; |
my $maxindex=10; |
Line 300 sub get_max_ids_indices {
|
Line 455 sub get_max_ids_indices {
|
return ($needsfixup,$maxid,$maxindex); |
return ($needsfixup,$maxid,$maxindex); |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item get_all_text_unbalanced |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub get_all_text_unbalanced { |
sub get_all_text_unbalanced { |
#there is a copy of this in lonxml.pm |
#there is a copy of this in lonxml.pm |
my($tag,$pars)= @_; |
my($tag,$pars)= @_; |
Line 329 sub get_all_text_unbalanced {
|
Line 497 sub get_all_text_unbalanced {
|
return $result |
return $result |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item fix_ids_and_indices |
|
|
|
Currently undocumented |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
#Arguably this should all be done as a lonnet::ssi instead |
#Arguably this should all be done as a lonnet::ssi instead |
sub fix_ids_and_indices { |
sub fix_ids_and_indices { |
my ($logfile,$source,$target)=@_; |
my ($logfile,$source,$target)=@_; |
Line 524 sub store_metadata {
|
Line 705 sub store_metadata {
|
return (undef,$status); |
return (undef,$status); |
} |
} |
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item publish |
|
|
|
Currently undocumented. This is the workhorse function of this module. |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub publish { |
sub publish { |
|
|
my ($source,$target,$style)=@_; |
my ($source,$target,$style)=@_; |
Line 843 END
|
Line 1037 END
|
'<p><input type="submit" value="Finalize Publication" /></p></form>'; |
'<p><input type="submit" value="Finalize Publication" /></p></form>'; |
} |
} |
|
|
# -------------------------------------------------------- Publication Step Two |
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item phasetwo |
|
|
|
Render second interface showing status of publication steps. |
|
This is publication step two. |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub phasetwo { |
sub phasetwo { |
|
|
my ($source,$target,$style,$distarget)=@_; |
my ($source,$target,$style,$distarget)=@_; |
Line 1067 if (-e $target) {
|
Line 1273 if (-e $target) {
|
|
|
} |
} |
|
|
# ================================================================ Main Handler |
|
|
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
|
|
|
=item handler |
|
|
|
A basic outline of the handler subroutine follows. |
|
|
|
=over 4 |
|
|
|
=item Get query string for limited number of parameters |
|
|
|
=item Check filename |
|
|
|
=item File is there and owned, init lookup tables |
|
|
|
=item Start page output |
|
|
|
=item Individual file |
|
|
|
=item publish from $thisfn to $thistarget with $thisembstyle |
|
|
|
=back |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
sub handler { |
sub handler { |
my $r=shift; |
my $r=shift; |
|
|