version 1.170, 2002/05/16 17:05:02
|
version 1.180, 2002/07/12 16:37:38
|
Line 135 $prevent_entity_encode=0;
|
Line 135 $prevent_entity_encode=0;
|
# has the dynamic menu been updated to know about this resource |
# has the dynamic menu been updated to know about this resource |
$Apache::lonxml::registered=0; |
$Apache::lonxml::registered=0; |
|
|
|
# a pointer the the Apache request object |
|
$Apache::lonxml::request=''; |
|
|
sub xmlbegin { |
sub xmlbegin { |
my $output=''; |
my $output=''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
Line 328 sub registerurl {
|
Line 331 sub registerurl {
|
my $forcereg=shift; |
my $forcereg=shift; |
my $target = shift; |
my $target = shift; |
my $result = ''; |
my $result = ''; |
if (($ENV{'request.publicaccess'}) || |
if ($target eq 'edit') { |
($ENV{'REQUEST_URI'} eq '/res/adm/pages/menu.html')) { |
$result .="<script>\n menu.currentURL=null;\n". |
return |
&Apache::loncommon::browser_and_searcher_javascript(). |
|
"\n</script>\n"; |
|
} |
|
if ((($ENV{'request.publicaccess'}) || |
|
(!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && |
|
(!$forcereg)) { |
|
return $result. |
'<script>function LONCAPAreg(){} function LONCAPAstale(){}</script>'; |
'<script>function LONCAPAreg(){} function LONCAPAstale(){}</script>'; |
} |
} |
if ($Apache::lonxml::registered && !$forcereg) { return ''; } |
if ($Apache::lonxml::registered && !$forcereg) { return ''; } |
$Apache::lonxml::registered=1; |
$Apache::lonxml::registered=1; |
my $nothing=''; |
my $nothing=''; |
if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; } |
if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; } |
|
my $timesync='menu.clock.setTime(1000*'.time.');'; |
if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) { |
if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) { |
my $hwkadd=''; |
my $hwkadd=''; |
if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
Line 347 ENDSUBM
|
Line 357 ENDSUBM
|
} |
} |
if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) { |
$hwkadd.=(<<ENDGRDS); |
$hwkadd.=(<<ENDGRDS); |
menu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","viewgrades")'); |
menu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")'); |
ENDGRDS |
ENDGRDS |
} |
} |
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
Line 364 ENDPARM
|
Line 374 ENDPARM
|
function LONCAPAreg() { |
function LONCAPAreg() { |
menu=window.open("$nothing","LONCAPAmenu","",false); |
menu=window.open("$nothing","LONCAPAmenu","",false); |
menu.clearTimeout(menu.menucltim); |
menu.clearTimeout(menu.menucltim); |
|
$timesync |
menu.currentURL=window.location.pathname; |
menu.currentURL=window.location.pathname; |
|
menu.reloadURL=window.location.pathname; |
menu.currentStale=0; |
menu.currentStale=0; |
menu.clearbut(3,1); |
menu.clearbut(3,1); |
menu.switchbutton |
menu.switchbutton |
Line 391 ENDPARM
|
Line 403 ENDPARM
|
function LONCAPAstale() { |
function LONCAPAstale() { |
menu=window.open("$nothing","LONCAPAmenu","",false); |
menu=window.open("$nothing","LONCAPAmenu","",false); |
menu.currentStale=1; |
menu.currentStale=1; |
menu.switchbutton |
if (menu.reloadURL!='' && menu.reloadURL!= null) { |
(3,1,'reload.gif','return','location','go(currentURL)'); |
menu.switchbutton |
|
(3,1,'reload.gif','return','location','go(reloadURL)'); |
|
} |
menu.clearbut(7,1); |
menu.clearbut(7,1); |
menu.clearbut(7,2); |
menu.clearbut(7,2); |
menu.clearbut(7,3); |
menu.clearbut(7,3); |
Line 415 ENDREGTHIS
|
Line 429 ENDREGTHIS
|
|
|
function LONCAPAreg() { |
function LONCAPAreg() { |
menu=window.open("$nothing","LONCAPAmenu","",false); |
menu=window.open("$nothing","LONCAPAmenu","",false); |
|
$timesync |
menu.currentStale=1; |
menu.currentStale=1; |
menu.clearbut(2,1); |
menu.clearbut(2,1); |
menu.clearbut(2,3); |
menu.clearbut(2,3); |
Line 436 ENDREGTHIS
|
Line 451 ENDREGTHIS
|
</script> |
</script> |
ENDDONOTREGTHIS |
ENDDONOTREGTHIS |
} |
} |
if ($target eq 'edit') { |
|
# Javascript routines for construction space: |
|
# openbrowser and opensearcher will start the file browser |
|
# (lonindexer) and searcher (lonsearchcat) respectively. |
|
# Inputs are the name of the html form being used |
|
# and the name of the element the selected URL should |
|
# be placed in. |
|
# openbrowser also takes arguments only and omit, which are |
|
# comma deliminated lists of file extensions to (only) show |
|
# or omit. |
|
# Here we also set currentURL=null. |
|
$result .=<<"ENDBROWSERSCRIPT"; |
|
<script> |
|
menu.currentURL=null; |
|
var editbrowser; |
|
function openbrowser(formname,elementname,only,omit) { |
|
var url = '/res/?'; |
|
if (editbrowser == null) { |
|
url += 'launch=1&'; |
|
} |
|
url += 'catalogmode=interactive&'; |
|
url += 'mode=edit&'; |
|
url += 'form=' + formname + '&'; |
|
if (only != null) { |
|
url += 'only=' + only + '&'; |
|
} |
|
if (omit != null) { |
|
url += 'omit=' + omit + '&'; |
|
} |
|
url += 'element=' + elementname + ''; |
|
var title = 'Browser'; |
|
var options = 'scrollbars=1,resizable=1,menubar=0'; |
|
options += ',width=700,height=600'; |
|
editbrowser = open(url,title,options,'1'); |
|
editbrowser.focus(); |
|
} |
|
var editsearcher; |
|
function opensearcher(formname,elementname) { |
|
var url = '/adm/searchcat?'; |
|
if (editsearcher == null) { |
|
url += 'launch=1&'; |
|
} |
|
url += 'catalogmode=interactive&'; |
|
url += 'mode=edit&'; |
|
url += 'form=' + formname + '&'; |
|
url += 'element=' + elementname + ''; |
|
var title = 'Search'; |
|
var options = 'scrollbars=1,resizable=1,menubar=0'; |
|
options += ',width=700,height=600'; |
|
editsearcher = open(url,title,options,'1'); |
|
editsearcher.focus(); |
|
} |
|
</script> |
|
ENDBROWSERSCRIPT |
|
} |
|
return $result; |
return $result; |
} |
} |
|
|
Line 511 sub printalltags {
|
Line 471 sub printalltags {
|
} |
} |
|
|
sub xmlparse { |
sub xmlparse { |
my ($target,$content_file_string,$safeinit,%style_for_target) = @_; |
my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_; |
|
|
|
&setup_globals($request,$target); |
|
# |
|
# do we have a course style file? |
|
# |
|
|
|
if ($ENV{'request.course.id'}) { |
|
my $bodytext= |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.default_xml_style'}; |
|
if ($bodytext) { |
|
my $location=&Apache::lonnet::filelocation('',$bodytext); |
|
my $styletext=&Apache::lonnet::getfile($location); |
|
if ($styletext ne '-1') { |
|
%style_for_target = (%style_for_target, |
|
&Apache::style::styleparser($target,$styletext)); |
|
} |
|
} |
|
} |
|
|
&setup_globals($target); |
|
#&printalltags(); |
#&printalltags(); |
my @pars = (); |
my @pars = (); |
my $pwd=$ENV{'request.filename'}; |
my $pwd=$ENV{'request.filename'}; |
Line 798 sub callsub {
|
Line 775 sub callsub {
|
} |
} |
|
|
sub setup_globals { |
sub setup_globals { |
my ($target)=@_; |
my ($request,$target)=@_; |
|
$Apache::lonxml::request=$request; |
$Apache::lonxml::registered = 0; |
$Apache::lonxml::registered = 0; |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::extlinks=(); |
Line 955 sub decreasedepth {
|
Line 933 sub decreasedepth {
|
#print "<br />e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n"; |
#print "<br />e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n"; |
} |
} |
|
|
sub get_all_text { |
sub get_all_text_unbalanced { |
|
my($tag,$pars)= @_; |
|
my $token; |
|
my $result=''; |
|
$tag='<'.$tag.'>'; |
|
while ($token = $$pars[-1]->get_token) { |
|
if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) { |
|
$result.=$token->[1]; |
|
} elsif ($token->[0] eq 'PI') { |
|
$result.=$token->[2]; |
|
} elsif ($token->[0] eq 'S') { |
|
$result.=$token->[4]; |
|
} elsif ($token->[0] eq 'E') { |
|
$result.=$token->[2]; |
|
} |
|
if ($result =~ /(.*)$tag(.*)/) { |
|
&Apache::lonxml::debug('Got a winner with leftovers ::'.$2); |
|
&Apache::lonxml::debug('Result is :'.$1); |
|
$result=$1; |
|
my $redo=$tag.$2; |
|
&Apache::lonxml::newparser($pars,\$redo); |
|
last; |
|
} |
|
} |
|
return $result |
|
} |
|
|
|
sub get_all_text { |
my($tag,$pars)= @_; |
my($tag,$pars)= @_; |
my $depth=0; |
my $depth=0; |
my $token; |
my $token; |
Line 1219 ENDNOTFOUND
|
Line 1223 ENDNOTFOUND
|
} |
} |
} |
} |
if (!$ENV{'form.editmode'} || $ENV{'form.viewmode'}) { |
if (!$ENV{'form.editmode'} || $ENV{'form.viewmode'}) { |
$result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle); |
$result = &Apache::lonxml::xmlparse($request,$target,$filecontents, |
|
'',%mystyle); |
} |
} |
} |
} |
|
|
Line 1228 ENDNOTFOUND
|
Line 1233 ENDNOTFOUND
|
# |
# |
unless ($ENV{'request.state'} eq 'published') { |
unless ($ENV{'request.state'} eq 'published') { |
if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { |
if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { |
$result='<html><body bgcolor="#FFFFFF"></body></html>'; |
my $displayfile=$request->uri; |
|
$displayfile=~s/^\/[^\/]*//; |
|
$result='<html><body bgcolor="#FFFFFF"><h3>'.$displayfile. |
|
'</h3></body></html>'; |
$result=&inserteditinfo($result,$filecontents); |
$result=&inserteditinfo($result,$filecontents); |
} |
} |
} |
} |
Line 1243 ENDNOTFOUND
|
Line 1251 ENDNOTFOUND
|
sub debug { |
sub debug { |
if ($Apache::lonxml::debug eq 1) { |
if ($Apache::lonxml::debug eq 1) { |
$|=1; |
$|=1; |
print("DEBUG:".join('<br />',@_)."<br />\n"); |
print("DEBUG:".&HTML::Entities::encode($_[0])."<br />\n"); |
} |
} |
} |
} |
|
|