'.&mt('Internal Filename').' | '.&mt('Title').' | '.&mt('Save as ...').' |
');
@@ -222,12 +229,13 @@ sub dumpcourse {
my ($ext)=($_=~/\.(\w+)$/);
my $title=$hash{'title_'.$hash{
'ids_/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'.$_}};
+ $title=~s/:/:/g;
$r->print(''.($title?$title:' ').' | ');
unless ($title) {
$title=$_;
}
$title=~s/\.(\w+)$//;
- $title=~s/[^\w\/]+/\_/gs;
+ $title=&clean($title);
$title.='.'.$ext;
$r->print("\n | \n");
}
@@ -241,6 +249,7 @@ sub dumpcourse {
# ------------------------------------------------------ Generate "export" button
sub exportbutton {
+ return '';
return ''.
''.
@@ -283,7 +292,6 @@ sub exportcourse {
$outcome = ' As you did not select any content items or discussions for export, an IMS package has not been created. Please go back to select either content items or discussions for export';
} else {
my $now = time;
- my $count = 0;
my %symbs;
my $manifestok = 0;
my $imsresources;
@@ -291,7 +299,7 @@ sub exportcourse {
my $copyresult;
my $ims_manifest = &create_ims_store($now,\$manifestok,\$outcome,\$tempexport);
if ($manifestok) {
- &build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,\$tempexport,\$copyresult,$ims_manifest);
+ &build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,$tempexport,\$copyresult,$ims_manifest);
close($ims_manifest);
#Create zip file in prtspool
@@ -318,9 +326,9 @@ sub exportcourse {
$outcome = ' Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file. ';
}
}
-
- $r->print('Export Course'.
- &Apache::loncommon::bodytag('Export course to IMS or SCORM content package'));
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.'Export Course'.
+ &Apache::loncommon::bodytag('Export course to IMS content package'));
$r->print($outcome);
$r->print('');
} else {
@@ -369,6 +377,12 @@ sub exportcourse {
}
if (ref($curRes)) {
my $symb = $curRes->symb();
+ my $ressymb = $symb;
+ if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) {
+ unless ($ressymb =~ m|adm/wrapper/adm|) {
+ $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard';
+ }
+ }
my $color = $count%2;
$display .=' | '."\n".
'title().' | ';
- if ($discussiontime{$symb} > 0) {
+ if ($discussiontime{$ressymb} > 0) {
$boards ++;
$currelem = $count+$boards+$startcount;
$display .= ' | | '."\n";
@@ -403,13 +417,23 @@ sub exportcourse {
|;
- $r->print('Export Course'.$scripttag.''.
- &Apache::loncommon::bodytag('Export course to IMS or SCORM content package'
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.'Export Course'.$scripttag.''.
+ &Apache::loncommon::bodytag('Export course to IMS content package'
));
$r->print($display.'
'.
@@ -470,6 +495,9 @@ sub create_ims_store {
if (!-e $$tempexport) {
mkdir($$tempexport,0700);
}
+ if (!-e "$$tempexport/resources") {
+ mkdir("$$tempexport/resources",0700);
+ }
# open manifest file
my $manifest = '/imsmanifest.xml';
my $manifestfilename = $$tempexport.$manifest;
@@ -483,7 +511,7 @@ sub create_ims_store {
' identifier="MANIFEST-'.$ENV{'request.course.id'}.'-'.$now.'"'.
' xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1imscp_v1p1.xsd'.
' http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">'."\n".
-'