--- loncom/interface/lonmenu.pm	2001/06/08 13:02:44	1.5
+++ loncom/interface/lonmenu.pm	2002/01/06 01:29:53	1.12
@@ -1,11 +1,35 @@
 # The LearningOnline Network with CAPA
 # Routines to control the menu
 #
+# $Id: lonmenu.pm,v 1.12 2002/01/06 01:29:53 harris41 Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
 # (TeX Conversion Module
 #
 # 05/29/00,05/30 Gerd Kortemeyer)
 #
-# 10/05,05/28,05/30,06/01,06/08 Gerd Kortemeyer
+# 10/05,05/28,05/30,06/01,06/08,06/09,07/04,08/07 Gerd Kortemeyer
 
 package Apache::lonmenu;
 
@@ -76,7 +100,10 @@ sub rawconfig {
     my $crs='';
     if ($ENV{'request.course.id'}) {
        $crs='/'.$ENV{'request.course.id'};
-       $crs=~s/\_/\//;
+       if ($ENV{'request.course.sec'}) {
+	   $crs.='_'.$ENV{'request.course.sec'};
+       }
+       $crs=~s/\_/\//g;
     }
     my $pub=($ENV{'request.state'} eq 'published');
     my $con=($ENV{'request.state'} eq 'construct');
@@ -107,6 +134,15 @@ sub rawconfig {
             }
         } elsif ($pro eq 'author') {
             if ($author) {
+                if (($prt eq 'rca') && ($ENV{'request.role'}=~/^ca/)) {
+		    my ($cadom,$caname)=
+                               ($ENV{'request.role'}=~/(\w+)\/(\w+)$/);
+                    $output.=switch($caname,$cadom,
+                                    $row,$col,$img,$top,$bot,$act);
+                } elsif ($prt eq 'any') {
+                    $output.=switch($ENV{'user.name'},$ENV{'user.domain'},
+				    $row,$col,$img,$top,$bot,$act);
+                }
             }
         }
     } @desklines;
@@ -134,11 +170,11 @@ sub footer {
 
 # ================================================================ Main Program
 
-sub BEGIN {
-if ($readdesk ne 'done') {
+BEGIN {
+  unless ($readdesk) {
   {
     my $config=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
-                                 '/mydesk.tab');
+				  '/mydesk.tab');
     while (my $configline=<$config>) {
        chomp($configline);
        $desklines[$#desklines+1]=$configline;