version 1.184, 2005/01/24 21:55:20
|
version 1.191, 2005/04/04 23:55:17
|
Line 548 sub get_max_ids_indices {
|
Line 548 sub get_max_ids_indices {
|
my $counter; |
my $counter; |
if ($counter=$addid{$token->[1]}) { |
if ($counter=$addid{$token->[1]}) { |
if ($counter eq 'id') { |
if ($counter eq 'id') { |
if (defined($token->[2]->{'id'})) { |
if (defined($token->[2]->{'id'}) && |
|
$token->[2]->{'id'} !~ /^\s*$/) { |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
if (exists($allids{$token->[2]->{'id'}})) { |
if (exists($allids{$token->[2]->{'id'}})) { |
$duplicateids=1; |
$duplicateids=1; |
Line 560 sub get_max_ids_indices {
|
Line 561 sub get_max_ids_indices {
|
$needsfixup=1; |
$needsfixup=1; |
} |
} |
} else { |
} else { |
if (defined($token->[2]->{'index'})) { |
if (defined($token->[2]->{'index'}) && |
|
$token->[2]->{'index'} !~ /^\s*$/) { |
$maxindex=($token->[2]->{'index'}>$maxindex)?$token->[2]->{'index'}:$maxindex; |
$maxindex=($token->[2]->{'index'}>$maxindex)?$token->[2]->{'index'}:$maxindex; |
} else { |
} else { |
$needsfixup=1; |
$needsfixup=1; |
Line 674 sub fix_ids_and_indices {
|
Line 676 sub fix_ids_and_indices {
|
if (!$counter) { $counter=$addid{$lctag}; } |
if (!$counter) { $counter=$addid{$lctag}; } |
if ($counter) { |
if ($counter) { |
if ($counter eq 'id') { |
if ($counter eq 'id') { |
unless (defined($parms{'id'})) { |
unless (defined($parms{'id'}) && |
|
$parms{'id'}!~/^\s*$/) { |
$maxid++; |
$maxid++; |
$parms{'id'}=$maxid; |
$parms{'id'}=$maxid; |
print $logfile 'ID: '.$tag.':'.$maxid."\n"; |
print $logfile 'ID: '.$tag.':'.$maxid."\n"; |
} |
} |
} elsif ($counter eq 'index') { |
} elsif ($counter eq 'index') { |
unless (defined($parms{'index'})) { |
unless (defined($parms{'index'}) && |
|
$parms{'index'}!~/^\s*$/) { |
$maxindex++; |
$maxindex++; |
$parms{'index'}=$maxindex; |
$parms{'index'}=$maxindex; |
print $logfile 'Index: '.$tag.':'.$maxindex."\n"; |
print $logfile 'Index: '.$tag.':'.$maxindex."\n"; |
Line 842 sub store_metadata {
|
Line 846 sub store_metadata {
|
} |
} |
|
|
|
|
|
# ========================================== Parse file for errors and warnings |
|
|
|
sub checkonthis { |
|
my ($r,$source)=@_; |
|
my $uri=&Apache::lonnet::hreflocation($source); |
|
$uri=~s/\/$//; |
|
my $result=&Apache::lonnet::ssi_body($uri, |
|
('grade_target'=>'web', |
|
'return_only_error_and_warning_counts' => 1)); |
|
my ($errorcount,$warningcount)=split(':',$result); |
|
if (($errorcount) || ($warningcount)) { |
|
$r->print('<br /><tt>'.$uri.'</tt>: '); |
|
if ($errorcount) { |
|
$r->print('<img src="/adm/lonMisc/bomb.gif" /><font color="red"><b>'. |
|
$errorcount.' '. |
|
&mt('error(s)').'</b></font> '); |
|
} |
|
if ($warningcount) { |
|
$r->print('<font color="blue">'. |
|
$warningcount.' '. |
|
&mt('warning(s)').'</font>'); |
|
} |
|
} else { |
|
#$r->print('<font color="green">'.&mt('ok').'</font>'); |
|
} |
|
$r->rflush(); |
|
return ($warningcount,$errorcount); |
|
} |
|
|
# ============================================== Parse file itself for metadata |
# ============================================== Parse file itself for metadata |
# |
# |
# parses a file with target meta, sets global %metadatafields %metadatakeys |
# parses a file with target meta, sets global %metadatafields %metadatakeys |
Line 1007 sub publish {
|
Line 1040 sub publish {
|
$scrout.=&metaread($logfile,$currentpath.'default.meta',$prefix); |
$scrout.=&metaread($logfile,$currentpath.'default.meta',$prefix); |
$prefix=~s|^\.\./||; |
$prefix=~s|^\.\./||; |
} |
} |
|
|
# ----------------------------------------------------------- Parse file itself |
# ----------------------------------------------------------- Parse file itself |
# read %metadatafields from file itself |
# read %metadatafields from file itself |
|
|
Line 1255 END
|
Line 1289 END
|
} |
} |
my $copyright_help = |
my $copyright_help = |
Apache::loncommon::help_open_topic('Publishing_Copyright'); |
Apache::loncommon::help_open_topic('Publishing_Copyright'); |
$intr_scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge; |
$intr_scrout =~ s/Distribution:/'Distribution: ' . $copyright_help/ge; |
$intr_scrout.=&text_with_browse_field('Custom Distribution File','customdistributionfile',$metadatafields{'customdistributionfile'},'rights').$copyright_help; |
$intr_scrout.=&text_with_browse_field('Custom Distribution File','customdistributionfile',$metadatafields{'customdistributionfile'},'rights').$copyright_help; |
$intr_scrout.=&selectbox('Source Distribution','sourceavail', |
$intr_scrout.=&selectbox('Source Distribution','sourceavail', |
$defaultsourceoption, |
$defaultsourceoption, |
Line 1978 ENDDIFF
|
Line 2012 ENDDIFF
|
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |
|
|
unless ($ENV{'form.phase'} eq 'two') { |
unless ($ENV{'form.phase'} eq 'two') { |
my ($outstring,$error)=&publish($thisfn,$thistarget,$thisembstyle); |
# ---------------------------------------------------------- Parse for problems |
$r->print('<hr />'.$outstring); |
my ($warningcount,$errorcount); |
|
if ($thisembstyle eq 'ssi') { |
|
($warningcount,$errorcount)=&checkonthis($r,$thisfn); |
|
} |
|
unless ($errorcount) { |
|
my ($outstring,$error)= |
|
&publish($thisfn,$thistarget,$thisembstyle); |
|
$r->print('<hr />'.$outstring); |
|
} else { |
|
$r->print('<h3>'. |
|
&mt('The document contains errors and cannot be published.'). |
|
'</h3>'); |
|
} |
} else { |
} else { |
$r->print('<hr />'. |
$r->print('<hr />'. |
&phasetwo($r,$thisfn,$thistarget,$thisembstyle,$thisdistarget)); |
&phasetwo($r,$thisfn,$thistarget,$thisembstyle,$thisdistarget)); |