version 1.225, 2007/06/18 20:30:32
|
version 1.237, 2008/05/28 22:22:35
|
Line 143 my $cudom;
|
Line 143 my $cudom;
|
my $registered_cleanup; |
my $registered_cleanup; |
my $modified_urls; |
my $modified_urls; |
|
|
|
my $lock; |
|
|
=pod |
=pod |
|
|
=item B<metaeval> |
=item B<metaeval> |
Line 344 sub text_with_browse_field {
|
Line 346 sub text_with_browse_field {
|
return "\n<p><font color=\"#800000\" face=\"helvetica\"><b>$title:". |
return "\n<p><font color=\"#800000\" face=\"helvetica\"><b>$title:". |
"</b></font></p><br />". |
"</b></font></p><br />". |
'<input type="text" name="'.$name.'" size=80 value="'.$value.'" />'. |
'<input type="text" name="'.$name.'" size=80 value="'.$value.'" />'. |
'<a href="javascript:openbrowser(\'pubform\',\''.$name.'\',\''.$restriction.'\');">Select</a> '. |
'<a href="javascript:openbrowser(\'pubform\',\''.$name.'\',\''.$restriction.'\');">'.&mt('Select').'</a> '. |
'<a href="javascript:opensearcher(\'pubform\',\''.$name.'\');">Search</a>'; |
'<a href="javascript:opensearcher(\'pubform\',\''.$name.'\');">'.&mt('Search').'</a>'; |
|
|
} |
} |
|
|
Line 654 sub fix_ids_and_indices {
|
Line 656 sub fix_ids_and_indices {
|
join(', ',@duplicatedids)); |
join(', ',@duplicatedids)); |
if ($duplicateids) { |
if ($duplicateids) { |
print $logfile "Duplicate ID(s) exist, ".join(', ',@duplicatedids)."\n"; |
print $logfile "Duplicate ID(s) exist, ".join(', ',@duplicatedids)."\n"; |
my $outstring='<font color="red">'.&mt('Unable to publish file, it contains duplicated ID(s), ID(s) need to be unique. The duplicated ID(s) are').': '.join(', ',@duplicatedids).'</font>'; |
my $outstring='<span class="LC_error">'.&mt('Unable to publish file, it contains duplicated ID(s), ID(s) need to be unique. The duplicated ID(s) are').': '.join(', ',@duplicatedids).'</span>'; |
return ($outstring,1); |
return ($outstring,1); |
} |
} |
if ($needsfixup) { |
if ($needsfixup) { |
Line 663 sub fix_ids_and_indices {
|
Line 665 sub fix_ids_and_indices {
|
"Max Index: $maxindex (min 10)\n"; |
"Max Index: $maxindex (min 10)\n"; |
} |
} |
my $outstring=''; |
my $outstring=''; |
|
my $responsecounter=1; |
my @parser; |
my @parser; |
$parser[0]=HTML::LCParser->new(\$content); |
$parser[0]=HTML::LCParser->new(\$content); |
$parser[-1]->xml_mode(1); |
$parser[-1]->xml_mode(1); |
Line 678 sub fix_ids_and_indices {
|
Line 681 sub fix_ids_and_indices {
|
next; |
next; |
} |
} |
if ($lctag eq 'base') { next; } |
if ($lctag eq 'base') { next; } |
|
if (($lctag eq 'part') || ($lctag eq 'problem')) { |
|
$responsecounter=0; |
|
} |
|
if ($lctag=~/response$/) { $responsecounter++; } |
my %parms=%{$token->[2]}; |
my %parms=%{$token->[2]}; |
$counter=$addid{$tag}; |
$counter=$addid{$tag}; |
if (!$counter) { $counter=$addid{$lctag}; } |
if (!$counter) { $counter=$addid{$lctag}; } |
Line 773 sub fix_ids_and_indices {
|
Line 780 sub fix_ids_and_indices {
|
} |
} |
if (!$endtag) { if ($token->[4]=~m:/>$:) { $endtag=' /'; }; } |
if (!$endtag) { if ($token->[4]=~m:/>$:) { $endtag=' /'; }; } |
$outstring.='<'.$tag.$newparmstring.$endtag.'>'; |
$outstring.='<'.$tag.$newparmstring.$endtag.'>'; |
if ($lctag eq 'm' || $lctag eq 'script' |
if ($lctag eq 'm' || $lctag eq 'script' || $lctag eq 'answer' |
|| $lctag eq 'display' || $lctag eq 'tex') { |
|| $lctag eq 'display' || $lctag eq 'tex') { |
$outstring.=&get_all_text_unbalanced('/'.$lctag,\@parser); |
$outstring.=&get_all_text_unbalanced('/'.$lctag,\@parser); |
} |
} |
Line 782 sub fix_ids_and_indices {
|
Line 789 sub fix_ids_and_indices {
|
unless ($token->[1] eq 'allow') { |
unless ($token->[1] eq 'allow') { |
$outstring.='</'.$token->[1].'>'; |
$outstring.='</'.$token->[1].'>'; |
} |
} |
} |
} |
|
if ((($token->[1] eq 'part') || ($token->[1] eq 'problem')) |
|
&& (!$responsecounter)) { |
|
my $outstring='<span class="LC_error">'.&mt('Found [_1] without responses',$token->[1]).'</span>'; |
|
return ($outstring,1); |
|
} |
} else { |
} else { |
$outstring.=$token->[1]; |
$outstring.=$token->[1]; |
} |
} |
Line 825 sub store_metadata {
|
Line 837 sub store_metadata {
|
# Determine if the table exists |
# Determine if the table exists |
my $status = &Apache::lonmysql::check_table('metadata'); |
my $status = &Apache::lonmysql::check_table('metadata'); |
if (! defined($status)) { |
if (! defined($status)) { |
$error='<font color="red">WARNING: Cannot connect to '. |
$error='<span class="LC_error">WARNING: Cannot connect to '. |
'database!</font>'; |
'database!</span>'; |
&Apache::lonnet::logthis($error); |
&Apache::lonnet::logthis($error); |
return ($error,undef); |
return ($error,undef); |
} |
} |
if ($status == 0) { |
if ($status == 0) { |
# It would be nice to actually create the table.... |
# It would be nice to actually create the table.... |
$error ='<font color="red">WARNING: The metadata table does not '. |
$error ='<span class="LC_error">WARNING: The metadata table does not '. |
'exist in the LON-CAPA database.</font>'; |
'exist in the LON-CAPA database.</span>'; |
&Apache::lonnet::logthis($error); |
&Apache::lonnet::logthis($error); |
return ($error,undef); |
return ($error,undef); |
} |
} |
my $dbh = &Apache::lonmysql::get_dbh(); |
my $dbh = &Apache::lonmysql::get_dbh(); |
if (($metadata{'obsolete'}) || ($metadata{'copyright'} eq 'priv') || |
if (($metadata{'obsolete'}) || ($metadata{'copyright'} eq 'priv')) { |
($metadata{'copyright'} eq 'custom')) { |
|
# remove this entry |
# remove this entry |
$status=&LONCAPA::lonmetadata::delete_metadata($dbh,undef, |
my $delitem = 'url = '.$dbh->quote($metadata{'url'}); |
$metadata{'url'}); |
$status = &LONCAPA::lonmetadata::delete_metadata($dbh,undef,$delitem); |
|
|
} else { |
} else { |
$status = &LONCAPA::lonmetadata::update_metadata($dbh,undef,undef, |
$status = &LONCAPA::lonmetadata::update_metadata($dbh,undef,undef, |
\%metadata); |
\%metadata); |
} |
} |
if (defined($status) && $status ne '') { |
if (defined($status) && $status ne '') { |
$error='<font color="red">Error occured saving new values in '. |
$error='<span class="LC_error">Error occured saving new values in '. |
'metadata table in LON-CAPA database</font>'; |
'metadata table in LON-CAPA database</span>'; |
&Apache::lonnet::logthis($error); |
&Apache::lonnet::logthis($error); |
&Apache::lonnet::logthis($status); |
&Apache::lonnet::logthis($status); |
return ($error,undef); |
return ($error,undef); |
Line 871 sub checkonthis {
|
Line 883 sub checkonthis {
|
if (($errorcount) || ($warningcount)) { |
if (($errorcount) || ($warningcount)) { |
$r->print('<br /><tt>'.$uri.'</tt>: '); |
$r->print('<br /><tt>'.$uri.'</tt>: '); |
if ($errorcount) { |
if ($errorcount) { |
$r->print('<img src="/adm/lonMisc/bomb.gif" /><font color="red"><b>'. |
$r->print('<img src="/adm/lonMisc/bomb.gif" /><span class="LC_error"><b>'. |
$errorcount.' '. |
$errorcount.' '. |
&mt('error(s)').'</b></font> '); |
&mt('error(s)').'</b></span> '); |
} |
} |
if ($warningcount) { |
if ($warningcount) { |
$r->print('<font color="blue">'. |
$r->print('<font color="blue">'. |
Line 937 sub publish {
|
Line 949 sub publish {
|
my %allow=(); |
my %allow=(); |
|
|
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
return ('<font color="red">'.&mt('No write permission to user directory, FAIL').'</font>',1); |
return ('<span class="LC_error">'.&mt('No write permission to user directory, FAIL').'</span>',1); |
} |
} |
print $logfile |
print $logfile |
"\n\n================= Publish ".localtime()." Phase One ================\n".$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
"\n\n================= Publish ".localtime()." Phase One ================\n".$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
Line 951 sub publish {
|
Line 963 sub publish {
|
print $logfile "Copied original file to ".$copyfile."\n"; |
print $logfile "Copied original file to ".$copyfile."\n"; |
} else { |
} else { |
print $logfile "Unable to write backup ".$copyfile.':'.$!."\n"; |
print $logfile "Unable to write backup ".$copyfile.':'.$!."\n"; |
return ("<font color=\"red\">Failed to write backup copy, $!,FAIL</font>",1); |
return ("<span class=\"LC_error\">Failed to write backup copy, $!,FAIL</span>",1); |
} |
} |
# ------------------------------------------------------------- IDs and indices |
# ------------------------------------------------------------- IDs and indices |
|
|
Line 963 sub publish {
|
Line 975 sub publish {
|
|
|
$scrout.='<h3>'.&mt('Dependencies').'</h3>'; |
$scrout.='<h3>'.&mt('Dependencies').'</h3>'; |
my $allowstr=''; |
my $allowstr=''; |
foreach (sort(keys(%allow))) { |
foreach my $thisdep (sort(keys(%allow))) { |
my $thisdep=$_; |
|
if ($thisdep !~ /[^\s]/) { next; } |
if ($thisdep !~ /[^\s]/) { next; } |
|
if ($thisdep =~/\$/) { |
|
$scrout.='<br /><span class="LC_warning">' |
|
.&mt('The resource depends on another resource with variable filename, i.e., [_1].','<tt>'.$thisdep.'</tt>').'<br />' |
|
.&mt('You likely need to explicitly allow access to all possible dependencies using the [_1]-tag.','<tt><allow></tt>') |
|
.'</span><br />'; |
|
} |
unless ($style eq 'rat') { |
unless ($style eq 'rat') { |
$allowstr.="\n".'<allow src="'.$thisdep.'" />'; |
$allowstr.="\n".'<allow src="'.$thisdep.'" />'; |
} |
} |
$scrout.='<br />'; |
$scrout.='<br />'; |
if ($thisdep!~/\*/ && $thisdep!~m|^/adm/|) { |
if ($thisdep!~/[\*\$]/ && $thisdep!~m|^/adm/|) { |
$scrout.='<a href="'.$thisdep.'">'; |
$scrout.='<a href="'.$thisdep.'">'; |
} |
} |
$scrout.='<tt>'.$thisdep.'</tt>'; |
$scrout.='<tt>'.$thisdep.'</tt>'; |
if ($thisdep!~/\*/ && $thisdep!~m|^/adm/|) { |
if ($thisdep!~/[\*\$]/ && $thisdep!~m|^/adm/|) { |
$scrout.='</a>'; |
$scrout.='</a>'; |
if ( |
if ( |
&Apache::lonnet::getfile($Apache::lonnet::perlvar{'lonDocRoot'}.'/'. |
&Apache::lonnet::getfile($Apache::lonnet::perlvar{'lonDocRoot'}.'/'. |
$thisdep.'.meta') eq '-1') { |
$thisdep.'.meta') eq '-1') { |
$scrout.= ' - <font color="red">'.&mt('Currently not available'). |
$scrout.= ' - <span class="LC_error">'.&mt('Currently not available'). |
'</font>'; |
'</span>'; |
} else { |
} else { |
my %temphash=(&Apache::lonnet::declutter($target).'___'. |
my %temphash=(&Apache::lonnet::declutter($target).'___'. |
&Apache::lonnet::declutter($thisdep).'___usage' |
&Apache::lonnet::declutter($thisdep).'___usage' |
Line 1001 sub publish {
|
Line 1018 sub publish {
|
my $org; |
my $org; |
unless ($org=Apache::File->new('>'.$source)) { |
unless ($org=Apache::File->new('>'.$source)) { |
print $logfile "No write permit to $source\n"; |
print $logfile "No write permit to $source\n"; |
return ('<font color="red">'.&mt('No write permission to'). |
return ('<span class="LC_error">'.&mt('No write permission to'). |
' '.$source. |
' '.$source. |
', '.&mt('FAIL').'</font>',1); |
', '.&mt('FAIL').'</span>',1); |
} |
} |
print($org $outstring); |
print($org $outstring); |
} |
} |
Line 1130 sub publish {
|
Line 1147 sub publish {
|
'</span></h1><p><span class="LC_warning">'. |
'</span></h1><p><span class="LC_warning">'. |
&mt('If this resource is in active use, student performance data from the previous version may become inaccessible.').'</span></p><hr />'; |
&mt('If this resource is in active use, student performance data from the previous version may become inaccessible.').'</span></p><hr />'; |
} |
} |
|
if ($metadatafields{'copyright'} eq 'priv') { |
|
$scrout.='</p><h1><span class="LC_warning">'.&mt('Warning!'). |
|
'</span></h1><p><span class="LC_warning">'. |
|
&mt('Copyright/distribution option "Private" is no longer supported. Select another option from below. Consider "Custom Rights" for maximum control over the usage of your resource.').'</span></p><hr />'; |
|
} |
|
|
# ------------------------------------------------------- Now have all metadata |
# ------------------------------------------------------- Now have all metadata |
|
|
Line 1289 END
|
Line 1311 END
|
$metadatafields{'copyright'}='default'; |
$metadatafields{'copyright'}='default'; |
$metadatafields{'sourceavail'}='open'; |
$metadatafields{'sourceavail'}='open'; |
} |
} |
|
if ($metadatafields{'copyright'} eq 'priv') { |
|
$metadatafields{'copyright'}='domain'; |
|
} |
# ------------------------------------------------ Dial in reasonable defaults |
# ------------------------------------------------ Dial in reasonable defaults |
my $defaultoption=$metadatafields{'copyright'}; |
my $defaultoption=$metadatafields{'copyright'}; |
unless ($defaultoption) { $defaultoption='default'; } |
unless ($defaultoption) { $defaultoption='default'; } |
Line 1305 END
|
Line 1330 END
|
$intr_scrout.=&selectbox('Copyright/Distribution','copyright', |
$intr_scrout.=&selectbox('Copyright/Distribution','copyright', |
$defaultoption, |
$defaultoption, |
\&Apache::loncommon::copyrightdescription, |
\&Apache::loncommon::copyrightdescription, |
(grep !/^public$/,(&Apache::loncommon::copyrightids))); |
(grep !/^(public|priv)$/,(&Apache::loncommon::copyrightids))); |
} else { |
} else { |
$intr_scrout.=&selectbox('Copyright/Distribution','copyright', |
$intr_scrout.=&selectbox('Copyright/Distribution','copyright', |
$defaultoption, |
$defaultoption, |
\&Apache::loncommon::copyrightdescription, |
\&Apache::loncommon::copyrightdescription, |
(&Apache::loncommon::copyrightids)); |
(grep !/^priv$/,(&Apache::loncommon::copyrightids))); |
} |
} |
my $copyright_help = |
my $copyright_help = |
Apache::loncommon::help_open_topic('Publishing_Copyright'); |
Apache::loncommon::help_open_topic('Publishing_Copyright'); |
Line 1414 sub phasetwo {
|
Line 1439 sub phasetwo {
|
# |
# |
unless ($env{'form.obsolete'}) { |
unless ($env{'form.obsolete'}) { |
if ($target=~/(\_\_\_|\&\&\&|\:\:\:)/) { |
if ($target=~/(\_\_\_|\&\&\&|\:\:\:)/) { |
$r->print( |
$r->print('<span class="LC_error">'. |
'<font color="red">'.&mt('Unsupported character combination'). |
&mt('Unsupported character combination [_1] in filename, FAIL.',"<tt>'.$1.'</tt>"). |
' "<tt>'.$1.'</tt>" '.&mt('in filename, FAIL').'</font>'); |
'</span>'); |
return 0; |
return 0; |
} |
} |
unless ($target=~/\.(\w+)$/) { |
unless ($target=~/\.(\w+)$/) { |
$r->print('<font color="red">'.&mt('No valid extension found in filename, FAIL').'</font>'); |
$r->print('<span class="LC_error">'.&mt('No valid extension found in filename, FAIL').'</span>'); |
return 0; |
return 0; |
} |
} |
if ($target=~/\.(\d+)\.(\w+)$/) { |
if ($target=~/\.(\d+)\.(\w+)$/) { |
$r->print('<font color="red">'.&mt('Cannot publish versioned resource, FAIL').'</font>'); |
$r->print('<span class="LC_error">'.&mt('Cannot publish versioned resource, FAIL').'</span>'); |
return 0; |
return 0; |
} |
} |
} |
} |
Line 1436 sub phasetwo {
|
Line 1461 sub phasetwo {
|
my $logfile; |
my $logfile; |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
$r->print( |
$r->print( |
'<font color="red">'. |
'<span class="LC_error">'. |
&mt('No write permission to user directory, FAIL').'</font>'); |
&mt('No write permission to user directory, FAIL').'</span>'); |
return 0; |
return 0; |
} |
} |
|
|
|
if ($source =~ /\.rights$/) { |
|
$r->print('<p><span class="LC_warning">'.&mt('Warning: It can take up to 1 hour for rights changes to fully propagate.').'</span></p>'); |
|
} |
|
|
print $logfile |
print $logfile |
"\n================= Publish ".localtime()." Phase Two ================\n".$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
"\n================= Publish ".localtime()." Phase Two ================\n".$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
|
|
Line 1494 sub phasetwo {
|
Line 1524 sub phasetwo {
|
my $file=$metadatafields{'customdistributionfile'}; |
my $file=$metadatafields{'customdistributionfile'}; |
unless ($file=~/\.rights$/) { |
unless ($file=~/\.rights$/) { |
$r->print( |
$r->print( |
'<font color="red">'.&mt('No valid custom distribution rights file specified, FAIL'). |
'<span class="LC_error">'.&mt('No valid custom distribution rights file specified, FAIL'). |
'</font>'); |
'</span>'); |
return 0; |
return 0; |
} |
} |
} |
} |
Line 1504 sub phasetwo {
|
Line 1534 sub phasetwo {
|
my $mfh; |
my $mfh; |
unless ($mfh=Apache::File->new('>'.$source.'.meta')) { |
unless ($mfh=Apache::File->new('>'.$source.'.meta')) { |
$r->print( |
$r->print( |
'<font color="red">'.&mt('Could not write metadata, FAIL'). |
'<span class="LC_error">'.&mt('Could not write metadata, FAIL'). |
'</font>'); |
'</span>'); |
return 0; |
return 0; |
} |
} |
foreach (sort keys %metadatafields) { |
foreach (sort keys %metadatafields) { |
Line 1558 sub phasetwo {
|
Line 1588 sub phasetwo {
|
unless ($srcd=~/^\/home\/httpd\/html\/res/) { |
unless ($srcd=~/^\/home\/httpd\/html\/res/) { |
print $logfile "\nPANIC: Target dir is ".$srcd; |
print $logfile "\nPANIC: Target dir is ".$srcd; |
$r->print( |
$r->print( |
"<font color=\"red\">Invalid target directory, FAIL</font>"); |
"<span class=\"LC_error\">Invalid target directory, FAIL</span>"); |
return 0; |
return 0; |
} |
} |
opendir(DIR,$srcd); |
opendir(DIR,$srcd); |
Line 1584 sub phasetwo {
|
Line 1614 sub phasetwo {
|
$r->print('<p>'.&mt('Copied old target file').'</p>'); |
$r->print('<p>'.&mt('Copied old target file').'</p>'); |
} else { |
} else { |
print $logfile "Unable to write ".$copyfile.':'.$!."\n"; |
print $logfile "Unable to write ".$copyfile.':'.$!."\n"; |
$r->print("<font color=\"red\">".&mt('Failed to copy old target'). |
$r->print("<span class=\"LC_error\">".&mt('Failed to copy old target'). |
", $!, ".&mt('FAIL')."</font>"); |
", $!, ".&mt('FAIL')."</span>"); |
return 0; |
return 0; |
} |
} |
|
|
Line 1600 sub phasetwo {
|
Line 1630 sub phasetwo {
|
print $logfile "Unable to write metadata ".$copyfile.':'.$!."\n"; |
print $logfile "Unable to write metadata ".$copyfile.':'.$!."\n"; |
if (-e $target.'.meta') { |
if (-e $target.'.meta') { |
$r->print( |
$r->print( |
"<font color=\"red\">". |
"<span class=\"LC_error\">". |
&mt('Failed to write old metadata copy').", $!, ".&mt('FAIL')."</font>"); |
&mt('Failed to write old metadata copy').", $!, ".&mt('FAIL')."</span>"); |
return 0; |
return 0; |
} |
} |
} |
} |
Line 1633 sub phasetwo {
|
Line 1663 sub phasetwo {
|
$r->print('<p>'.&mt('Copied source file').'</p>'); |
$r->print('<p>'.&mt('Copied source file').'</p>'); |
} else { |
} else { |
print $logfile "\nUnable to write ".$copyfile.':'.$!."\n"; |
print $logfile "\nUnable to write ".$copyfile.':'.$!."\n"; |
$r->print("<font color=\"red\">". |
$r->print("<span class=\"LC_error\">". |
&mt('Failed to copy source').", $!, ".&mt('FAIL')."</font>"); |
&mt('Failed to copy source').", $!, ".&mt('FAIL')."</span>"); |
return 0; |
return 0; |
} |
} |
|
|
Line 1648 sub phasetwo {
|
Line 1678 sub phasetwo {
|
} else { |
} else { |
print $logfile "\nUnable to write metadata ".$copyfile.':'.$!."\n"; |
print $logfile "\nUnable to write metadata ".$copyfile.':'.$!."\n"; |
$r->print( |
$r->print( |
"<font color=\"red\">".&mt('Failed to write metadata copy').", $!, ".&mt('FAIL')."</font>"); |
"<span class=\"LC_error\">".&mt('Failed to write metadata copy').", $!, ".&mt('FAIL')."</span>"); |
return 0; |
return 0; |
} |
} |
$r->rflush; |
$r->rflush; |
Line 1725 sub notify {
|
Line 1755 sub notify {
|
print $logfile "\n============ Done ============\n"; |
print $logfile "\n============ Done ============\n"; |
$logfile->close(); |
$logfile->close(); |
} |
} |
|
if ($lock) { &Apache::lonnet::remove_lock($lock); } |
return OK; |
return OK; |
} |
} |
|
|
Line 1794 sub publishdirectory {
|
Line 1825 sub publishdirectory {
|
&checkbox('obsolete','make file(s) obsolete'). |
&checkbox('obsolete','make file(s) obsolete'). |
&checkbox('forceoverride','force directory level catalog information over existing'). |
&checkbox('forceoverride','force directory level catalog information over existing'). |
'<br /><input type="submit" value="'.&mt('Publish Directory').'" /></form>'); |
'<br /><input type="submit" value="'.&mt('Publish Directory').'" /></form>'); |
|
$lock=0; |
} else { |
} else { |
|
unless ($lock) { $lock=&Apache::lonnet::set_lock(&mt('Publishing [_1]',$fn)); } |
# actually publish things |
# actually publish things |
opendir(DIR,$fn); |
opendir(DIR,$fn); |
my @files=sort(readdir(DIR)); |
my @files=sort(readdir(DIR)); |
Line 1881 sub defaultmetapublish {
|
Line 1914 sub defaultmetapublish {
|
if (copy($fn,$copyfile)) { |
if (copy($fn,$copyfile)) { |
$r->print('<p>'.&mt('Copied source file').'</p>'); |
$r->print('<p>'.&mt('Copied source file').'</p>'); |
} else { |
} else { |
return "<font color=\"red\">". |
return "<span class=\"LC_error\">". |
&mt('Failed to copy source').", $!, ".&mt('FAIL')."</font>"; |
&mt('Failed to copy source').", $!, ".&mt('FAIL')."</span>"; |
} |
} |
|
|
# --------------------------------------------------- Send update notifications |
# --------------------------------------------------- Send update notifications |