--- rat/lonpageflip.pm 2006/02/23 19:29:26 1.64 +++ rat/lonpageflip.pm 2006/03/19 23:06:00 1.67 @@ -2,7 +2,7 @@ # # Page flip handler # -# $Id: lonpageflip.pm,v 1.64 2006/02/23 19:29:26 albertel Exp $ +# $Id: lonpageflip.pm,v 1.67 2006/03/19 23:06:00 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -84,6 +84,28 @@ sub hash_src { return ($hash{'src_'.$id},$symb); } +# Inputs are a url, adn a hash ref of +# form name => value pairs +# takes care of properly adding the form name elements and values to the +# the url doing proper escaping of the values and joining with ? or & as +# needed + +sub add_get_param { + my ($url,$form_data) = @_; + my $needs_question_mark = ($url !~ /\?/); + + while (my ($name,$value) = each(%$form_data)) { + if ($needs_question_mark) { + $url.='?'; + $needs_question_mark = 0; + } else { + $url.='&'; + } + $url.=$name.'='.&Apache::lonnet::escape($form_data->{$name}); + } + return $url; +} + sub move { my ($rid,$mapurl,$direction)=@_; my $startoutrid=$rid; @@ -185,10 +207,7 @@ sub navlaunch { &Apache::loncommon::content_type($r,'text/html'); &Apache::loncommon::no_cache($r); $r->send_http_header; - my $html=&Apache::lonxml::xmlbegin(); - $r->print("$html\n"); - $r->print(''. - &Apache::loncommon::bodytag('Launched')); + $r->print(&Apache::loncommon::start_page('Launched')); $r->print(<Goto first resource

Collapse external navigation window

ENDNAV - $r->print(&Apache::loncommon::endbodytag().''); + $r->print(&Apache::loncommon::end_page()); } # ================================================================ Main Handler @@ -399,7 +418,7 @@ sub handler { &Apache::loncommon::content_type($r,'text/html'); my $url='http://'.$ENV{'HTTP_HOST'}.$redirecturl; - if ($redirectsymb ne '') { $url.='?symb='.&Apache::lonnet::escape($redirectsymb); } + $url = &add_get_param($url, { 'symb' => $redirectsymb}); $r->header_out(Location => $url); return REDIRECT; } else { @@ -418,11 +437,10 @@ sub handler { 'titleheader' => 'Title', 'type' => 'Type'); if ($#possibilities>0) { - my $bodytag= - &Apache::loncommon::bodytag('Multiple Resources'); + my $start_page= + &Apache::loncommon::start_page('Multiple Resources'); $r->print(<Choose Next Location -$bodytag +$start_page

$lt{'wherenext'}

$lt{'pick'}: @@ -433,18 +451,20 @@ ENDSTART foreach my $id (@possibilities) { $r->print( ''. + &add_get_param($multichoicehash{'src_'.$id}, + {'symb' => + $multichoicehash{'symb_'.$id}, + }).'">'. $multichoicehash{'title_'.$id}. ''.$multichoicehash{'type_'.$id}. ''); } $r->print(''); } else { - my $bodytag=&Apache::loncommon::bodytag('No Resource'); + my $start_page= + &Apache::loncommon::start_page('No Resource'); $r->print(<No Resource -$bodytag +$start_page

$lt{'title'}

$lt{'explain'}

ENDNONE @@ -453,8 +473,9 @@ ENDNONE + ENDMENU + $r->print(&Apache::loncommon::end_page()); return OK; } } else {