Diff for /loncom/interface/loncommon.pm between versions 1.357 and 1.361

version 1.357, 2006/05/01 19:07:16 version 1.361, 2006/05/01 21:03:35
Line 2773  Inputs: Line 2773  Inputs:
   
 =item * $notitle, if true keep the nav controls, but remove the title bar  =item * $notitle, if true keep the nav controls, but remove the title bar
   
   =item * $no_inline_link, if true and in remote mode, don't show the 
            'Switch To Inline Menu' link
   
   
 =back  =back
   
Line 2785  other decorations will be returned. Line 2788  other decorations will be returned.
   
 sub bodytag {  sub bodytag {
     my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,      my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,
  $notopbar,$bgcolor,$notitle)=@_;   $notopbar,$bgcolor,$notitle,$no_inline_link)=@_;
   
     $title=&mt($title);      $title=&mt($title);
   
     $function = &get_users_function() if (!$function);      $function = &get_users_function() if (!$function);
     my $img =    &designparm($function.'.img',$domain);      my $img =    &designparm($function.'.img',$domain);
     my $tabbg =  &designparm($function.'.tabbg',$domain);  
     my $font =   &designparm($function.'.font',$domain);      my $font =   &designparm($function.'.font',$domain);
     my $sidebg = &designparm($function.'.sidebg',$domain);  
     my $pgbg   = $bgcolor || &designparm($function.'.pgbg',$domain);      my $pgbg   = $bgcolor || &designparm($function.'.pgbg',$domain);
   
     my %design = ( 'style'   => 'margin-top: 0px',      my %design = ( 'style'   => 'margin-top: 0px',
Line 2805  sub bodytag { Line 2806  sub bodytag {
     @$addentries{keys(%design)} = @design{keys(%design)};      @$addentries{keys(%design)} = @design{keys(%design)};
   
  # role and realm   # role and realm
     my ($role,$realm)      my ($role,$realm) =
        =&Apache::lonnet::plaintext((split(/\./,$env{'request.role'}))[0]);   &Apache::lonnet::plaintext((split(/\./,$env{'request.role'}))[0]);
 # realm  # realm
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
  $realm=   $realm = $env{'course.'.$env{'request.course.id'}.'.description'};
          $env{'course.'.$env{'request.course.id'}.'.description'};  
     }      }
     unless ($realm) { $realm=' '; }      if (!$realm) { $realm=' '; }
 # Set messages  # Set messages
     my $messages=&domainlogo($domain);      my $messages=&domainlogo($domain);
 # Port for miniserver  # Port for miniserver
Line 2822  sub bodytag { Line 2822  sub bodytag {
     my $extra_body_attr = &make_attr_string($forcereg,$addentries);      my $extra_body_attr = &make_attr_string($forcereg,$addentries);
   
 # construct main body tag  # construct main body tag
     my $bodytag = <<END;      my $bodytag = "<body $extra_body_attr>".
 <body $extra_body_attr>   &Apache::lontexconvert::init_math_support();
 END  
   
     $bodytag .= &Apache::lontexconvert::init_math_support();  
   
     my $upperleft='<img src="http://'.$ENV{'HTTP_HOST'}.':'.  
                    $lonhttpdPort.$img.'" alt="'.$function.'" />';  
     if ($bodyonly       if ($bodyonly 
  || ($env{'request.state'} eq 'construct'    || ($env{'request.state'} eq 'construct' 
     && $env{'environment.remote'} ne 'off' )) {      && $env{'environment.remote'} ne 'off' )) {
Line 2842  END Line 2837  END
     $bodytag.='<h1>LON-CAPA: '.$title.'</h1>';      $bodytag.='<h1>LON-CAPA: '.$title.'</h1>';
  }   }
  return $bodytag;   return $bodytag;
     } elsif ($env{'environment.remote'} eq 'off') {      }
 # No Remote  
  my $roleinfo=(<<ENDROLE);  
 <td bgcolor="$tabbg" align="right">      
 <font size="2" face="Arial, Helvetica, sans-serif">      my $roleinfo=(<<ENDROLE);
   <td class="LC_title_bar_who">
   <div class="LC_title_bar_name">
     $env{'environment.firstname'}      $env{'environment.firstname'}
     $env{'environment.middlename'}      $env{'environment.middlename'}
     $env{'environment.lastname'}      $env{'environment.lastname'}
     $env{'environment.generation'}      $env{'environment.generation'}
     </font>&nbsp;      &nbsp;
 <br />  </div>
 <font size="2" face="Arial, Helvetica, sans-serif">$role</font>&nbsp;  <div class="LC_title_bar_role">
 <br />  $role&nbsp;
 <font size="2" face="Arial, Helvetica, sans-serif">$realm</font>&nbsp;  </div>
   <div class="LC_title_bar_realm">
   $realm&nbsp;
   </div>
 </td>  </td>
 ENDROLE  ENDROLE
         my $titleinfo = '<font face="Arial, Helvetica, sans-serif" size="+3" color="'.  
  $font.'"><b>'.$title.'</b></font>';  
         if ($customtitle) {  
             $titleinfo = $customtitle;  
         }  
   
       my $titleinfo = '<span class="LC_title_bar_title">'.$title.'</span>';
       if ($customtitle) {
           $titleinfo = $customtitle;
       }
       #
       # Extra info if you are the DC
       my $dc_info = '';
       if ($env{'user.adv'} && exists($env{'user.role.dc./'.
                           $env{'course.'.$env{'request.course.id'}.
                                    '.domain'}.'/'})) {
           my $cid = $env{'request.course.id'};
           $dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'};
           $dc_info = '('.$dc_info.')';
       }
   
       if ($env{'environment.remote'} eq 'off') {
           # No Remote
  if ($env{'request.state'} eq 'construct') {   if ($env{'request.state'} eq 'construct') {
       $forcereg=1;
    }
   
    if (!$customtitle && $env{'request.state'} eq 'construct') {
       # this is for resources; directories have customtitle, and crumbs
               # and select recent are created in lonpubdir.pm  
     my ($uname,$thisdisfn)=      my ($uname,$thisdisfn)=
  ($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);   ($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
     my $formaction='/priv/'.$uname.'/'.$thisdisfn;      my $formaction='/priv/'.$uname.'/'.$thisdisfn;
     $formaction=~s/\/+/\//g;      $formaction=~s/\/+/\//g;
             unless ($customtitle) {  #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm    
                 my $parentpath = '';  
                 my $lastitem = '';  
                 if ($thisdisfn =~ m-(.+/)([^/]*)$-) {  
                     $parentpath = $1;  
                     $lastitem = $2;  
                 } else {  
                     $lastitem = $thisdisfn;  
                 }  
         $titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring').  
                       '<font face="Arial, Helvetica, sans-serif"><b>Construction Space</b>:</font>&nbsp;'.   
                       '<form name="dirs" method="post" action="'.$formaction  
     .'" target="_top"><tt><b>'  
     .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<font size=\"+1\">$lastitem</font></b></tt><br />"  
     .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')  
     .'</form>'  
     .&Apache::lonmenu::constspaceform();  
   
             }      my $parentpath = '';
     $forcereg=1;      my $lastitem = '';
       if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
    $parentpath = $1;
    $lastitem = $2;
       } else {
    $lastitem = $thisdisfn;
       }
       $titleinfo = 
    &Apache::loncommon::help_open_menu('','','','',3,'Authoring').
    '<b>Construction Space</b>:&nbsp;'. 
    '<form name="dirs" method="post" action="'.$formaction
    .'" target="_top"><tt><b>'
    .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<font size=\"+1\">$lastitem</font></b></tt><br />"
    .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
    .'</form>'
    .&Apache::lonmenu::constspaceform();
         }          }
   
         my $titletable;          my $titletable;
  if (!$notitle) {   if (!$notitle) {
     $titletable =      $titletable =
  '<table bgcolor="'.$pgbg.'" width="100%" border="0" '.   '<table id="LC_title_bar">'.
                          'cellspacing="3" cellpadding="3">'.                           "<tr><td> $titleinfo $dc_info</td>".$roleinfo.
                          '<tr><td bgcolor="'.$tabbg.'">'.   '</tr></table>';
                          $titleinfo.'</td>'.$roleinfo.'</tr></table>';  
  }   }
  if ($env{'request.state'} eq 'construct') {   if ($notopbar) {
             if ($notopbar) {      $bodytag .= $titletable;
                 $bodytag .= $titletable;   } else {
             } else {      if ($env{'request.state'} eq 'construct') {
                 $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,                  $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,
   $titletable);    $titletable);
             }  
  } else {  
             if ($notopbar) {  
                 $bodytag .= $titletable;  
             } else {              } else {
                 $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg).                  $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg).
                         $titletable;      $titletable;
             }              }
         }          }
         return $bodytag;          return $bodytag;
Line 2919  ENDROLE Line 2931  ENDROLE
 #  #
 # Top frame rendering, Remote is up  # Top frame rendering, Remote is up
 #  #
     my $titleinfo = '&nbsp;<font size="5" face="Arial, Helvetica, sans-serif"><b>'.$title.'</b></font>';  
     if ($customtitle) {      my $upperleft='<img src="http://'.$ENV{'HTTP_HOST'}.':'.
         $titleinfo = $customtitle;          $lonhttpdPort.$img.'" alt="'.$function.'" />';
     }  
     #  
     # Extra info if you are the DC  
     my $dc_info = '';  
     if ($env{'user.adv'} && exists($env{'user.role.dc./'.  
                         $env{'course.'.$env{'request.course.id'}.  
                                  '.domain'}.'/'})) {  
         my $cid = $env{'request.course.id'};  
         $dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'};  
         $dc_info = '('.$dc_info.')';  
     }  
     # Explicit link to get inline menu      # 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>';      my $menu= ($no_inline_link?''
          :'<br /><a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>');
     #      #
     if ($notitle) {      if ($notitle) {
  return $bodytag;   return $bodytag;
     }      }
     return(<<ENDBODY);      return(<<ENDBODY);
 $bodytag  $bodytag
 <table width="100%" cellspacing="0" border="0" cellpadding="0">  <table id="LC_title_bar" class="LC_with_remote">
 <tr><td bgcolor="$sidebg">  <tr><td>$upperleft</td>
 $upperleft</td>      <td class="LC_title_bar_domain_logo">$messages&nbsp;</td>
 <td bgcolor="$sidebg" align="right">$messages&nbsp;</td>  
 </tr>  
 <tr>  
 <td rowspan="3" bgcolor="$tabbg">  
 $titleinfo $dc_info $menu  
 </td><td bgcolor="$tabbg" align="right">  
 <font size="2" face="Arial, Helvetica, sans-serif">  
     $env{'environment.firstname'}  
     $env{'environment.middlename'}  
     $env{'environment.lastname'}  
     $env{'environment.generation'}  
     </font>&nbsp;  
 </td>  
 </tr>  </tr>
 <tr><td bgcolor="$tabbg" align="right">  <tr><td>$titleinfo $dc_info $menu</td>
 <font size="2" face="Arial, Helvetica, sans-serif">$role</font>&nbsp;  $roleinfo
 </td></tr>  
 <tr>  
 <td bgcolor="$tabbg" align="right"><font size="2" face="Arial, Helvetica, sans-serif">$realm</font>&nbsp;</td></tr>  
 </table>  </table>
 ENDBODY  ENDBODY
 }  }
Line 3127  table#LC_top_nav, table#LC_menubuttons, Line 3114  table#LC_top_nav, table#LC_menubuttons,
   margin: 0px;    margin: 0px;
   border-collapse: separate;    border-collapse: separate;
 }  }
   table#LC_title_bar {
     width: 100%;
     border: 0;
     border-spacing: 3px;
     background: $pgbg;
     font-family: $sans;
   }
   table#LC_title_bar.LC_with_remote {
     width: 100%;
     border: 0;
     border-spacing: 0;
     background: $pgbg;
     font-family: $sans;
     border-collapse: collapse;
   }
   table#LC_title_bar td {
     padding: 3px;
     background: $tabbg;
   }
   table#LC_title_bar td.LC_title_bar_who {
     background: $tabbg;
     color: $font;
     font: medium $sans;
     text-align: right;
   }
   span.LC_title_bar_title {
     font: bold xx-large $sans;
   }
   table#LC_title_bar td.LC_title_bar_domain_logo {
     background: $sidebg;
     text-align: right;
   }
   
 table#LC_menubuttons_mainmenu {  table#LC_menubuttons_mainmenu {
   background: $pgbg;    background: $pgbg;
   border: 0px;    border: 0px;
Line 3149  table#LC_breadcrumbs td { Line 3169  table#LC_breadcrumbs td {
   background: $tabbg;    background: $tabbg;
   color: $font;    color: $font;
   font-family: $sans;    font-family: $sans;
   font-size: smallest;    font-size: smaller;
 }  }
 table#LC_breadcrumbs td.LC_breadcrumb_component {  table#LC_breadcrumbs td.LC_breadcrumb_component {
   background: $tabbg;    background: $tabbg;
Line 3436  Inputs: $title - optional title for the Line 3456  Inputs: $title - optional title for the
                                     head -> skip the <html><head> generation                                      head -> skip the <html><head> generation
                                     body -> skip all <body> generation                                      body -> skip all <body> generation
   
                     no_inline_link -> if true and in remote mode, don't show the 
                                       'Switch To Inline Menu' link
   
 =back  =back
   
 =cut  =cut
Line 3471  sub start_page { Line 3494  sub start_page {
  $args->{'only_body'},      $args->{'domain'},   $args->{'only_body'},      $args->{'domain'},
  $args->{'force_register'}, $args->{'body_title'},   $args->{'force_register'}, $args->{'body_title'},
  $args->{'no_nav_bar'},     $args->{'bgcolor'},   $args->{'no_nav_bar'},     $args->{'bgcolor'},
  $args->{'no_title'});   $args->{'no_title'},       $args->{'no_inline_link'});
  }   }
     }      }
   

Removed from v.1.357  
changed lines
  Added in v.1.361


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>