version 1.102, 2002/10/10 15:05:36
|
version 1.106, 2002/10/21 16:58:21
|
Line 127 use DBI;
|
Line 127 use DBI;
|
use Apache::lonnet(); |
use Apache::lonnet(); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonmysql; |
use Apache::lonmysql; |
|
use vars qw(%metadatafields %metadatakeys); |
|
|
my %addid; |
my %addid; |
my %nokey; |
my %nokey; |
|
|
my %metadatafields; |
|
my %metadatakeys; |
|
|
|
my $docroot; |
my $docroot; |
|
|
my $cuname; |
my $cuname; |
my $cudom; |
my $cudom; |
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
=pod |
|
|
=item B<metaeval> |
=item B<metaeval> |
Line 267 sub metaread {
|
Line 262 sub metaread {
|
######################################### |
######################################### |
######################################### |
######################################### |
|
|
=pod |
|
|
|
=item B<sqltime> |
|
|
|
Convert 'time' format into a datetime sql format |
|
|
|
Parameters: |
|
|
|
=over 4 |
|
|
|
=item I<$timef> |
|
|
|
Seconds since 00:00:00 UTC, January 1, 1970. |
|
|
|
=back |
|
|
|
Returns: |
|
|
|
=over 4 |
|
|
|
=item Scalar string |
|
|
|
MySQL-compatible datetime string. |
|
|
|
=back |
|
|
|
=cut |
|
|
|
######################################### |
|
######################################### |
|
sub sqltime { |
|
my $timef=shift @_; |
|
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
|
localtime($timef); |
|
$mon++; $year+=1900; |
|
return "$year-$mon-$mday $hour:$min:$sec"; |
|
} |
|
|
|
|
|
######################################### |
|
######################################### |
|
|
|
sub coursedependencies { |
sub coursedependencies { |
my $url=&Apache::lonnet::declutter(shift); |
my $url=&Apache::lonnet::declutter(shift); |
$url=~s/\.meta$//; |
$url=~s/\.meta$//; |
Line 535 sub get_max_ids_indices {
|
Line 488 sub get_max_ids_indices {
|
my $maxindex=10; |
my $maxindex=10; |
my $maxid=10; |
my $maxid=10; |
my $needsfixup=0; |
my $needsfixup=0; |
|
my $duplicateids=0; |
|
|
|
my %allids; |
|
my %duplicatedids; |
|
|
my $parser=HTML::LCParser->new($content); |
my $parser=HTML::LCParser->new($content); |
my $token; |
my $token; |
Line 545 sub get_max_ids_indices {
|
Line 502 sub get_max_ids_indices {
|
if ($counter eq 'id') { |
if ($counter eq 'id') { |
if (defined($token->[2]->{'id'})) { |
if (defined($token->[2]->{'id'})) { |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
|
if (exists($allids{$token->[2]->{'id'}})) { |
|
$duplicateids=1; |
|
$duplicatedids{$token->[2]->{'id'}}=1; |
|
} else { |
|
$allids{$token->[2]->{'id'}}=1; |
|
} |
} else { |
} else { |
$needsfixup=1; |
$needsfixup=1; |
} |
} |
Line 558 sub get_max_ids_indices {
|
Line 521 sub get_max_ids_indices {
|
} |
} |
} |
} |
} |
} |
return ($needsfixup,$maxid,$maxindex); |
return ($needsfixup,$maxid,$maxindex,$duplicateids, |
|
(keys(%duplicatedids))); |
} |
} |
|
|
######################################### |
######################################### |
Line 627 sub fix_ids_and_indices {
|
Line 591 sub fix_ids_and_indices {
|
$content=join('',<$org>); |
$content=join('',<$org>); |
} |
} |
|
|
my ($needsfixup,$maxid,$maxindex)=&get_max_ids_indices(\$content); |
my ($needsfixup,$maxid,$maxindex,$duplicateids,@duplicatedids)= |
|
&get_max_ids_indices(\$content); |
|
|
|
print $logfile ("Got $needsfixup,$maxid,$maxindex,$duplicateids--". |
|
join(', ',@duplicatedids)); |
|
if ($duplicateids) { |
|
print $logfile "Duplicate ID(s) exist, ".join(', ',@duplicatedids)."\n"; |
|
my $outstring='<font color="red">Unable to publish file, it contains duplicated ID(s), ID(s) need to be unique. The duplicated ID(s) are: '.join(', ',@duplicatedids).'</font>'; |
|
return ($outstring,1); |
|
} |
if ($needsfixup) { |
if ($needsfixup) { |
print $logfile "Needs ID and/or index fixup\n". |
print $logfile "Needs ID and/or index fixup\n". |
"Max ID : $maxid (min 10)\n". |
"Max ID : $maxid (min 10)\n". |
Line 752 sub fix_ids_and_indices {
|
Line 724 sub fix_ids_and_indices {
|
print $logfile "Does not need ID and/or index fixup\n"; |
print $logfile "Does not need ID and/or index fixup\n"; |
} |
} |
|
|
return ($outstring,%allow); |
return ($outstring,0,%allow); |
} |
} |
|
|
######################################### |
######################################### |
Line 857 sub publish {
|
Line 829 sub publish {
|
} |
} |
# ------------------------------------------------------------- IDs and indices |
# ------------------------------------------------------------- IDs and indices |
|
|
my $outstring; |
my ($outstring,$error); |
($outstring,%allow)=&fix_ids_and_indices($logfile,$source,$target); |
($outstring,$error,%allow)=&fix_ids_and_indices($logfile,$source, |
|
$target); |
|
if ($error) { return $outstring; } |
# ------------------------------------------------------------ Construct Allows |
# ------------------------------------------------------------ Construct Allows |
|
|
$scrout.='<h3>Dependencies</h3>'; |
$scrout.='<h3>Dependencies</h3>'; |
Line 1124 END
|
Line 1098 END
|
unless ($metadatafields{'creationdate'}) { |
unless ($metadatafields{'creationdate'}) { |
$metadatafields{'creationdate'}=time; |
$metadatafields{'creationdate'}=time; |
} |
} |
$scrout.=&hiddenfield('creationdate',$metadatafields{'creationdate'}); |
$scrout.=&hiddenfield('creationdate', |
|
&Apache::loncommon::unsqltime($metadatafields{'creationdate'})); |
|
|
$scrout.=&hiddenfield('lastrevisiondate',time); |
$scrout.=&hiddenfield('lastrevisiondate',time); |
|
|
Line 1249 sub phasetwo {
|
Line 1224 sub phasetwo {
|
$metadatafields{'abstract'}=$ENV{'form.abstract'}; |
$metadatafields{'abstract'}=$ENV{'form.abstract'}; |
$metadatafields{'mime'}=$ENV{'form.mime'}; |
$metadatafields{'mime'}=$ENV{'form.mime'}; |
$metadatafields{'language'}=$ENV{'form.language'}; |
$metadatafields{'language'}=$ENV{'form.language'}; |
$metadatafields{'creationdate'}= |
$metadatafields{'creationdate'}=$ENV{'form.creationdate'}; |
&sqltime($ENV{'form.creationdate'}); |
$metadatafields{'lastrevisiondate'}=$ENV{'form.lastrevisiondate'}; |
$metadatafields{'lastrevisiondate'}= |
|
&sqltime($ENV{'form.lastrevisiondate'}); |
|
$metadatafields{'owner'}=$ENV{'form.owner'}; |
$metadatafields{'owner'}=$ENV{'form.owner'}; |
$metadatafields{'copyright'}=$ENV{'form.copyright'}; |
$metadatafields{'copyright'}=$ENV{'form.copyright'}; |
$metadatafields{'dependencies'}=$ENV{'form.dependencies'}; |
$metadatafields{'dependencies'}=$ENV{'form.dependencies'}; |
Line 1742 unless ($ENV{'form.phase'} eq 'two') {
|
Line 1715 unless ($ENV{'form.phase'} eq 'two') {
|
if (&Apache::loncommon::fileembstyle($thistype) eq 'ssi') { |
if (&Apache::loncommon::fileembstyle($thistype) eq 'ssi') { |
$r->print('<br /><a href="/adm/diff?filename=/~'.$cuname.'/'. |
$r->print('<br /><a href="/adm/diff?filename=/~'.$cuname.'/'. |
$thisdisfn. |
$thisdisfn. |
'&versionone=priv" target="cat">Diffs with Current Version</a><p>'); |
'&versiontwo=priv" target="cat">Diffs with Current Version</a><p>'); |
} |
} |
|
|
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |