[LON-CAPA-cvs] cvs: loncom /homework structuretags.pm /interface loncommon.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 14 Apr 2006 20:16:25 -0000


This is a MIME encoded message

--albertel1145045785
Content-Type: text/plain

albertel		Fri Apr 14 16:16:25 2006 EDT

  Modified files:              
    /loncom/interface	loncommon.pm 
    /loncom/homework	structuretags.pm 
  Log:
  - starting on getting homework problems to use start_page stuff
  
  
--albertel1145045785
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20060414161625.txt"

Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.336 loncom/interface/loncommon.pm:1.337
--- loncom/interface/loncommon.pm:1.336	Fri Apr 14 16:12:35 2006
+++ loncom/interface/loncommon.pm	Fri Apr 14 16:16:02 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.336 2006/04/14 20:12:35 albertel Exp $
+# $Id: loncommon.pm,v 1.337 2006/04/14 20:16:02 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2766,7 +2766,7 @@
 
 sub bodytag {
     my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,
-	$notopbar,$bgcolor)=@_;
+	$notopbar,$bgcolor,$hidetitle)=@_;
     $title=&mt($title);
     $function = &get_users_function() if (!$function);
     my $img=&designparm($function.'.img',$domain);
@@ -2825,8 +2825,11 @@
     } elsif ($env{'browser.interface'} eq 'textual') {
 # Accessibility
           
-        return $bodytag.&Apache::lonmenu::menubuttons($forcereg,$forcereg).
-               '<h1>LON-CAPA: '.$title.'</h1>';
+	$bodytag.=&Apache::lonmenu::menubuttons($forcereg,$forcereg);
+	if (!$hidetitle) {
+	    $bodytag.='<h1>LON-CAPA: '.$title.'</h1>';
+	}
+	return $bodytag;
     } elsif ($env{'environment.remote'} eq 'off') {
 # No Remote
 	my $roleinfo=(<<ENDROLE);
@@ -2875,15 +2878,20 @@
             }
 	    $forcereg=1;
         }
-        my $titletable = '<table bgcolor="'.$pgbg.'" width="100%" border="0" '.
+        my $titletable;
+	if (!$hidetitle) {
+	    $titletable =
+		'<table bgcolor="'.$pgbg.'" width="100%" border="0" '.
                          'cellspacing="3" cellpadding="3">'.
                          '<tr><td bgcolor="'.$tabbg.'">'.
                          $titleinfo.'</td>'.$roleinfo.'</tr></table>';
-        if ($env{'request.state'} eq 'construct') {
+	}
+	if ($env{'request.state'} eq 'construct') {
             if ($notopbar) {
                 $bodytag .= $titletable;
             } else {
-                $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,$titletable);
+                $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,
+							  $titletable);
             }
 	} else {
             if ($notopbar) {
@@ -2916,6 +2924,9 @@
     # Explicit link to get inline menu
     my $menu='<br /><font size="2" face="Arial, Helvetica, sans-serif">&nbsp;<a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a></font>';
     #
+    if ($hidetitle) {
+	return $bodytag;
+    }
     return(<<ENDBODY);
 $bodytag
 <table width="100%" cellspacing="0" border="0" cellpadding="0">
@@ -3013,7 +3024,6 @@
         $args - optional arguments
             force_register - if is true call registerurl so the remote is 
                              informed
-                             
             redirect - array ref of seconds before redirect occurs
                                     url to redirect to
                            (side effect of setting 
@@ -3121,6 +3131,7 @@
                                     is not auto translated like the $title is
                   frameset       -> if true will start with a <frameset>
                                     rather than <body>
+
 =back
 
 =cut
Index: loncom/homework/structuretags.pm
diff -u loncom/homework/structuretags.pm:1.342 loncom/homework/structuretags.pm:1.343
--- loncom/homework/structuretags.pm:1.342	Thu Apr 13 14:35:06 2006
+++ loncom/homework/structuretags.pm	Fri Apr 14 16:16:23 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: structuretags.pm,v 1.342 2006/04/13 18:35:06 albertel Exp $
+# $Id: structuretags.pm,v 1.343 2006/04/14 20:16:23 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -69,33 +69,8 @@
     return '';
 }
 
-sub body_tag_start {
-    my ($target,$background,$bgcolor)=@_;
-    my $body_tag_start='<body onload="'.&Apache::lonmenu::loadevents().'" '.
-	'onunload="'.&Apache::lonmenu::unloadevents().'" ';
-    if ($env{'browser.imagesuppress'} eq 'on') { $background=''; }
-    if ($background) {
-	&Apache::lonxml::extlink($background);
-	$body_tag_start.='background="'.$background.'" ';
-    } else {
-	if (($bgcolor) && ($env{'browser.blackwhite'} ne 'on')) {
-	    $body_tag_start.='bgcolor="'.$bgcolor.'" ';
-	} else {
-	    $body_tag_start.='bgcolor="#ffffff"';
-	}
-    }
-    if ($env{'browser.fontenhance'} eq 'on') {
-	$body_tag_start.=' style="font-size: x-large;" ';
-    }
-    $body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1);
-    
-    $body_tag_start.=&Apache::lontexconvert::init_math_support();
-
-    return $body_tag_start;
-}
-
 sub page_start {
-    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name)=@_;
     my %found;
     foreach my $taginside (@$tagstack) {
 	foreach my $taglookedfor ('html','body','form') {
@@ -103,44 +78,58 @@
 	}
     }
 
-    my $result;
-    my $head_tag_start;
+
+    if ($target eq 'tex') {
+	return
+	    &Apache::londefdef::start_html($target,$token,$tagstack,
+					   $parstack,$parser,$safeeval);
+    }
+
+    my $page_start;
     if (!defined($found{'html'})) {
-	$result=&Apache::londefdef::start_html($target,$token,$tagstack,
-					       $parstack,$parser,$safeeval);
-	$head_tag_start='<head>'.&Apache::lonmenu::registerurl(undef,$target).
-	    &Apache::lonhtmlcommon::htmlareaheaders().
-	    &Apache::lonhtmlcommon::spellheader().
-	    &Apache::lonxml::fontsettings();     
+	
+	my $extra_head = &Apache::lonhtmlcommon::spellheader();
+
 	my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
 	if ($css_href =~ /\S/) {
 	    &Apache::lonxml::extlink($css_href);
-	    $head_tag_start = 
+	    $extra_head .= 
 		'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />';
 	}
 	if ($target eq 'edit') {
-	    $head_tag_start.=&Apache::edit::js_change_detection();
-	}
+	    $extra_head.=&Apache::edit::js_change_detection().
+		"<script type=\"text/javascript\">\n".
+		"if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n".
+		&Apache::loncommon::browser_and_searcher_javascript().
+                "\n</script>\n";
+	    
+	}
+	$page_start .=
+	    &Apache::loncommon::head($name,$extra_head,
+				     {'force_register' => 
+					  ($target ne 'edit') });
     }
-    my $body_tag_start;
+
     if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') {
-	if ($env{'environment.remote'} eq 'off') {
-	    if ($target eq 'web' || $target eq 'edit') {
-		$body_tag_start=&Apache::loncommon::bodytag();
-		$body_tag_start.=&Apache::lonxml::message_location();
-	    }
-	} else {
-	    if ($target eq 'web' || $target eq 'edit') {
-		$body_tag_start=&Apache::loncommon::bodytag(undef,undef,undef,1);
-		$body_tag_start.=&Apache::lonxml::message_location();
-	    }
+	if ($target eq 'web' || $target eq 'edit') {
+	    $page_start.=&Apache::loncommon::bodytag();
+	    $page_start.=&Apache::lonxml::message_location();
 	}
     } elsif (!defined($found{'body'})) {
+	my %add_entries;
 	my $background=&Apache::lonxml::get_param('background',$parstack,
 						  $safeeval);
+	if ($background ne '' ) {
+	    $add_entries{'background'} = $background;
+	}
 	my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,
 					       $safeeval);
-	$body_tag_start=&body_tag_start($target,$background,$bgcolor);
+	
+	if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; }
+	$page_start .=
+	    &Apache::loncommon::bodytag(undef,undef,\%add_entries,undef,undef,
+					1,undef,undef,$bgcolor,$target,1);
+
 	if ( ($target eq 'web' || $target eq 'webgrade')
 	     && $env{'request.state'} ne 'construct') {
 	    my ($symb,undef,undef,undef,$publicuser)=
@@ -148,11 +137,12 @@
 	    if ($symb eq '' && !$publicuser) {
 		my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference");
 		$help=&mt("Browsing resource, all submissions are temporary.")."<br />";
-		$body_tag_start.=$help;
+		$page_start .= $help;
 	    }
 	}
-	$body_tag_start.=&Apache::lonxml::message_location();
+	$page_start .= &Apache::lonxml::message_location();
     }
+
     my $form_tag_start;
     if (!defined($found{'form'})) {
 	$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="';
@@ -163,7 +153,7 @@
 	}
 	$form_tag_start.='>';
     }
-    return ($result,$head_tag_start,$body_tag_start,$form_tag_start);
+    return ($page_start,$form_tag_start);
 }
 
 #use Time::HiRes();
@@ -597,8 +587,10 @@
     my $accessmsg;
 
     #should get back a <html> or the neccesary stuff to start XML/MathML
-    my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
-	&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
+    my $name= &get_resource_name($parstack,$safeeval);
+    my ($result,$form_tag_start)=
+	&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval,
+		    $name);
     if ($target eq 'tex' and $env{'request.symb'} =~ m/\.page_/) {$result='';}
 
     if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); }
@@ -613,7 +605,7 @@
 		$Apache::lonhomework::history{"resource.0.outtoken"}=
 		    $token;
 	    }
-	    $body_tag_start.=&Apache::lonxml::printtokenheader($target,$token);
+	    $result.=&Apache::lonxml::printtokenheader($target,$token);
 	}
 	if ($env{'form.markaccess'}) {
 	    &Apache::lonnet::set_first_access('map');
@@ -663,8 +655,7 @@
 	    my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser,
 						       $style);
 	    if ( $target eq "web" ) {
-		$result.= $head_tag_start.'</head>';
-		my $msg=$body_tag_start;
+		my $msg;
 		if ($status eq 'UNAVAILABLE') {
 		    $msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';
 		} elsif ($status ne 'NOT_YET_VIEWED') {
@@ -673,7 +664,7 @@
 		if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {
 		    $msg.='The problem '.$accessmsg;
 		} elsif ($status eq 'UNCHECKEDOUT') {
-		    $msg.=&checkout_msg;
+		    $msg.=&checkout_msg();
 		} elsif ($status eq 'NOT_YET_VIEWED') {
 		    $msg.=&firstaccess_msg($accessmsg,$symb);
 		} elsif ($status eq 'NOT_IN_A_SLOT') {
@@ -695,17 +686,13 @@
 	    my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser,
 						       $style);
 	    if ($target eq 'web') {
-		$result .= $head_tag_start.'</head>';
-		$result .= $body_tag_start;
 		$result .= &Apache::bridgetask::proctor_validation_screen();
 	    } elsif ($target eq 'grade') {
 		&Apache::bridgetask::proctor_check_auth($slot_name,$slot,
 							'problem');
 	    }
 	} elsif ($target eq 'web') {
-	    my $name= &get_resource_name($parstack,$safeeval);
-	    $result.="$head_tag_start<title>$name</title></head>
-              $body_tag_start \n $form_tag_start".	
+	    $result.="\n $form_tag_start".	
 	      '<input type="hidden" name="submitted" value="yes" />';
 	    # create a page header and exit
 	    if ($env{'request.state'} eq "construct") {
@@ -723,8 +710,7 @@
 
 	}
     } elsif ($target eq 'edit') {
-	$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start.
-	    &problem_edit_header();
+	$result .= $form_tag_start.&problem_edit_header();
 	$Apache::lonxml::warnings_error_header=
 	    &mt("Editor Errors - these errors might not effect the running of the problem, but they will likely cause problems with further use of the Edit mode. Please use the EditXML mode to fix these errors.")."<br />";
 	my $temp=&Apache::edit::insertlist($target,$token);
@@ -925,16 +911,16 @@
 
 sub start_library {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
-    my ($result,$head_tag_start,$body_tag_start,$form_tag_start);
+    my ($result,$form_tag_start);
     if ($$tagstack[0] eq 'library') {
 	&init_problem_globals('library');
 	$Apache::lonhomework::type='problem';
     }
     if ($target eq 'edit') {
-	($result,$head_tag_start,$body_tag_start,$form_tag_start)=
-	    &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
-	$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start.
-	    &problem_edit_header();
+	($result,$form_tag_start)=
+	    &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval,
+			'Edit');
+	$result.=$form_tag_start.&problem_edit_header();
 	my $temp=&Apache::edit::insertlist($target,$token);
 	$result.=$temp;
     } elsif ($target eq 'modified') {
@@ -943,12 +929,12 @@
     } elsif (($target eq 'web' || $target eq 'webgrade')
 	     && $$tagstack[0] eq 'library' 
 	     && $env{'request.state'} eq "construct" ) {
-	($result,$head_tag_start,$body_tag_start,$form_tag_start)=
-	    &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
 	my $name=&get_resource_name($parstack,$safeeval);
+	($result,$form_tag_start)=
+	    &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval,
+			$name);
 	my $rndseed=&setup_rndseed($safeeval);
-	$result.="$head_tag_start<title>$name</title></head>
-              $body_tag_start \n $form_tag_start".	
+	$result.=" \n $form_tag_start".	
 		  '<input type="hidden" name="submitted" value="yes" />';
 	$result.=&problem_web_to_edit_header($rndseed);
     }

--albertel1145045785--