version 1.4, 2016/03/18 18:21:01
|
version 1.6, 2023/08/23 20:43:34
|
Line 28
|
Line 28
|
### |
### |
|
|
package Apache::daxesave; |
package Apache::daxesave; |
|
use strict; |
|
|
use Apache::Constants; |
use Apache::Constants qw(:common); |
use Apache::lonnet; |
use Apache::lonnet; |
use Try::Tiny; |
use Try::Tiny; |
use File::Copy; |
use File::Copy; |
Line 82 sub handler {
|
Line 83 sub handler {
|
|
|
my $contents = $env{'form.file'}; |
my $contents = $env{'form.file'}; |
|
|
try { |
my $mode; |
$contents = &Apache::xml_to_loncapa::convert_file($contents); |
if ($path =~ /\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$/) { |
} catch { |
try { |
$request->print("error\nconvert failed for $path: $_"); |
$contents = &Apache::xml_to_loncapa::convert_file($contents); |
return OK; |
} catch { |
}; |
$request->print("error\nconvert failed for $path: $_"); |
|
return OK; |
|
}; |
|
$mode = '>:encoding(UTF-8)'; |
|
} else { |
|
$mode = '>'; |
|
} |
|
|
my $filebak = $newpath.".bak"; |
my $filebak = $newpath.".bak"; |
if (-e $newpath) { |
if (-e $newpath) { |
copy($newpath, $filebak); # errors ignored |
copy($newpath, $filebak); # errors ignored |
} |
} |
open my $out, '>:encoding(UTF-8)', $newpath; |
if (open(my $out, $mode, $newpath)) { |
print $out $contents; |
print $out $contents; |
close $out; |
close $out; |
|
$request->print("ok\n"); |
$request->print("ok\n"); |
} else { |
|
$request->print("error\nFailed to open file to save $path"); |
|
} |
return OK; |
return OK; |
} |
} |
|
|