version 1.556, 2016/08/09 23:43:39
|
version 1.565, 2023/11/28 01:33:14
|
Line 69 use Safe();
|
Line 69 use Safe();
|
use Safe::Hole(); |
use Safe::Hole(); |
use Math::Cephes(); |
use Math::Cephes(); |
use Math::Random(); |
use Math::Random(); |
|
use Math::Calculus::Expression(); |
|
use Number::FormatEng(); |
use Opcode(); |
use Opcode(); |
use POSIX qw(strftime); |
use POSIX qw(strftime); |
use Time::HiRes qw( gettimeofday tv_interval ); |
use Time::HiRes qw( gettimeofday tv_interval ); |
Line 819 sub init_safespace {
|
Line 821 sub init_safespace {
|
$safehole->wrap(\&Apache::functionplotresponse::fpr_objectcoords,$safeeval,'&fpr_objectcoords'); |
$safehole->wrap(\&Apache::functionplotresponse::fpr_objectcoords,$safeeval,'&fpr_objectcoords'); |
$safehole->wrap(\&Apache::functionplotresponse::fpr_vectorlength,$safeeval,'&fpr_vectorlength'); |
$safehole->wrap(\&Apache::functionplotresponse::fpr_vectorlength,$safeeval,'&fpr_vectorlength'); |
$safehole->wrap(\&Apache::functionplotresponse::fpr_vectorangle,$safeeval,'&fpr_vectorangle'); |
$safehole->wrap(\&Apache::functionplotresponse::fpr_vectorangle,$safeeval,'&fpr_vectorangle'); |
|
$safehole->wrap(\&Math::Calculus::Expression::math_calculus_expression,$safeeval,'&math_calculus_expression'); |
|
$safehole->wrap(\&Number::FormatEng::format_eng,$safeeval,'&number_format_eng'); |
|
$safehole->wrap(\&Number::FormatEng::format_pref,$safeeval,'&number_format_pref'); |
|
|
# use Data::Dumper; |
# use Data::Dumper; |
# $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper'); |
# $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper'); |
Line 991 sub decreasedepth {
|
Line 996 sub decreasedepth {
|
sub get_id { |
sub get_id { |
my ($parstack,$safeeval)=@_; |
my ($parstack,$safeeval)=@_; |
my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); |
my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); |
if ($env{'request.state'} eq 'construct' && $id =~ /([._]|[^\w\d\s[:punct:]])/) { |
if ($env{'request.state'} eq 'construct' && $id =~ /([._]|[^\w\s\-])/) { |
&error(&mt('ID [_1] contains invalid characters. IDs are only allowed to contain letters, numbers, spaces and -','"<tt>'.$id.'</tt>"')); |
&error(&mt('ID [_1] contains invalid characters. IDs are only allowed to contain letters, numbers, spaces and -','"<tt>'.$id.'</tt>"')); |
} |
} |
if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; } |
if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; } |
Line 1640 $initialize
|
Line 1645 $initialize
|
$xml_help |
$xml_help |
</td></tr> |
</td></tr> |
</table> |
</table> |
<div> |
|
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
|
$undo $htmlerror $deps_button $dragmath_button |
|
</div> |
|
<div style="float:right"> |
<div style="float:right"> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> |
<input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> |
</div> |
</div> |
|
<div> |
|
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
|
$undo $htmlerror $deps_button $dragmath_button |
|
</div> |
</div> |
</div> |
<textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink |
<textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink |
<div id="LC_aftertextarea"> |
<div id="LC_aftertextarea"> |
Line 1659 ENDFOOTER
|
Line 1664 ENDFOOTER
|
return ($editfooter,$add_to_onload,$add_to_onresize);; |
return ($editfooter,$add_to_onload,$add_to_onresize);; |
} |
} |
|
|
|
sub setmode_javascript { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function setmode(form,probmode) { |
|
if (probmode == 'daxe') { |
|
var url = new URL(document.location.href); |
|
window.location = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; |
|
} else { |
|
var initial = form.problemmode.value; |
|
form.problemmode.value = probmode; |
|
form.submit(); |
|
form.problemmode.value = initial; |
|
} |
|
} |
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
|
} |
|
|
|
sub seteditor_javascript { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function seteditmode(form,editor) { |
|
if (editor == 'daxe') { |
|
var url = new URL(document.location.href); |
|
window.location = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; |
|
} else { |
|
form.editmode.value = editor; |
|
form.submit(); |
|
} |
|
} |
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
|
} |
|
|
sub get_target { |
sub get_target { |
my $viewgrades=&Apache::lonnet::allowed('vgr',$env{'request.course.id'}); |
my $viewgrades=&Apache::lonnet::allowed('vgr',$env{'request.course.id'}); |
if ( $env{'request.state'} eq 'published') { |
if ( $env{'request.state'} eq 'published') { |
Line 1852 ENDNOTFOUND
|
Line 1895 ENDNOTFOUND
|
} |
} |
my $brcrum; |
my $brcrum; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri), |
my $text = 'Authoring Space'; |
'text' => 'Authoring Space'}, |
my $href = &Apache::loncommon::authorspace($request->uri); |
|
if ($env{'request.course.id'}) { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
if ($href eq "/priv/$cdom/$cnum/") { |
|
$text = 'Course Authoring Space'; |
|
} |
|
} |
|
$brcrum = [{'href' => $href, |
|
'text' => $text,}, |
{'href' => '', |
{'href' => '', |
'text' => $breadcrumbtext}]; |
'text' => $breadcrumbtext}]; |
} else { |
} else { |
Line 1914 ENDNOTFOUND
|
Line 1966 ENDNOTFOUND
|
'onload' => $add_to_onload, }); |
'onload' => $add_to_onload, }); |
my $header; |
my $header; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
|
my $text = 'Authoring Space'; |
|
my $href = &Apache::loncommon::authorspace($request->uri); |
|
if ($env{'request.course.id'}) { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
if ($href eq "/priv/$cdom/$cnum/") { |
|
$text = 'Course Authoring Space'; |
|
} |
|
} |
$options{'bread_crumbs'} = [{ |
$options{'bread_crumbs'} = [{ |
'href' => &Apache::loncommon::authorspace($request->uri), |
'href' => $href, |
'text' => 'Authoring Space'}, |
'text' => $text}, |
{'href' => '', |
{'href' => '', |
'text' => $breadcrumbtext}]; |
'text' => $breadcrumbtext}]; |
$header = &Apache::loncommon::head_subbox( |
$header = &Apache::loncommon::head_subbox( |
Line 2272 sub register_insert {
|
Line 2333 sub register_insert {
|
|
|
sub dump_insertlist { |
sub dump_insertlist { |
my ($ext) = @_; |
my ($ext) = @_; |
open(XML,">/tmp/insertlist.xml.$ext"); |
open(XML,">","/tmp/insertlist.xml.$ext"); |
print XML ("<insertlist>"); |
print XML ("<insertlist>"); |
my $i=0; |
my $i=0; |
|
|