--- loncom/interface/loncommon.pm 2002/08/27 16:49:20 1.61 +++ loncom/interface/loncommon.pm 2002/09/05 15:03:33 1.64 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.61 2002/08/27 16:49:20 www Exp $ +# $Id: loncommon.pm,v 1.64 2002/09/05 15:03:33 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -98,6 +98,10 @@ my %cprtag; my %fe; my %fd; my %category_extensions; +# ---------------------------------------------- Designs + +my %designhash; + # ---------------------------------------------- Thesaurus variables =pod @@ -166,6 +170,30 @@ BEGIN { } } } + +# -------------------------------------------------------------- domain designs + + my $filename; + my $designdir=$Apache::lonnet::perlvar{'lonTabDir'}.'/lonDomColors'; + opendir(DIR,$designdir); + while ($filename=readdir(DIR)) { + my ($domain)=($filename=~/^(\w+)\./); + { + my $fh=Apache::File->new($designdir.'/'.$filename); + if ($fh) { + while (<$fh>) { + next if /^\#/; + chomp; + my ($key,$val)=(split(/\=/,$_)); + if ($val) { $designhash{$domain.'.'.$key}=$val; } + } + } + } + + } + closedir(DIR); + + # ------------------------------------------------------------- file categories { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. @@ -939,8 +967,11 @@ sub plainname { my %names=&Apache::lonnet::get('environment', ['firstname','middlename','lastname','generation'], $udom,$uname); - return $names{'firstname'}.' '.$names{'middlename'}.' '. + my $name=$names{'firstname'}.' '.$names{'middlename'}.' '. $names{'lastname'}.' '.$names{'generation'}; + $name=~s/\s+$//; + $name=~s/\s+/ /g; + return $name; } # ------------------------------------------------------------------ Screenname @@ -952,6 +983,28 @@ sub screenname { return $names{'screenname'}; } +# ------------------------------------------------------------- Message Wrapper + +sub messagewrapper { + my ($link,$un,$do)=@_; + return +"$link"; +} +# ------------------------------------------------------------- Aboutme Wrapper + +sub aboutmewrapper { + my ($link,$un,$do)=@_; + return "$link"; +} + +# ------------------------------------------------------------ Syllabus Wrapper + + +sub syllabuswrapper { + my ($link,$un,$do)=@_; + return "$link"; +} + # ---------------------------------------------------------------- Language IDs sub languageids { return sort(keys(%language)); @@ -1081,7 +1134,7 @@ sub get_previous_attempt { } sub get_student_view { - my ($symb,$username,$domain,$courseid) = @_; + my ($symb,$username,$domain,$courseid,$target) = @_; my ($map,$id,$feedurl) = split(/___/,$symb); my (%old,%moreenv); my @elements=('symb','courseid','domain','username'); @@ -1089,6 +1142,7 @@ sub get_student_view { $old{$element}=$ENV{'form.grade_'.$element}; $moreenv{'form.grade_'.$element}=eval '$'.$element #' } + if ($target eq 'tex') {$moreenv{'form.grade_target'} = 'tex';} &Apache::lonnet::appenv(%moreenv); my $userview=&Apache::lonnet::ssi('/res/'.$feedurl); &Apache::lonnet::delenv('form.grade_'); @@ -1172,20 +1226,18 @@ sub findallcourses { =pod -=item &domainlogo() +=item &determinedomain() Inputs: $domain (usually will be undef) -Returns: A link to a domain logo, if the domain logo exists. -If the domain logo does not exist, a description of the domain. +Returns: Determines which domain should be used for designs =cut ############################################### -############################################### -sub domainlogo { - my ($domain) = @_; - if (! $domain) { +sub determinedomain { + my $domain=shift; + if (! $domain) { # Determine domain if we have not been given one $domain = $Apache::lonnet::perlvar{'lonDefDomain'}; if ($ENV{'user.domain'}) { $domain=$ENV{'user.domain'}; } @@ -1193,7 +1245,23 @@ sub domainlogo { $domain=$ENV{'request.role.domain'}; } } - # See if there is a logo + return $domain; +} +############################################### +=pod + +=item &domainlogo() + +Inputs: $domain (usually will be undef) + +Returns: A link to a domain logo, if the domain logo exists. +If the domain logo does not exist, a description of the domain. + +=cut +############################################### +sub domainlogo { + my $domain = &determinedomain(shift); + # See if there is a logo if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') { return ''; } elsif(exists($Apache::lonnet::domaindescription{$domain})) { @@ -1202,6 +1270,27 @@ sub domainlogo { return ''; } } +############################################## + +=pod + +=item &designparm() + +Inputs: $which parameter; $domain (usually will be undef) + +Returns: value of designparamter $which + +=cut +############################################## +sub designparm { + my ($which,$domain)=@_; + $domain=&determinedomain($domain); + if ($designhash{$domain.'.'.$which}) { + return $designhash{$domain.'.'.$which}; + } else { + return $designhash{'default.'.$which}; + } +} ############################################### ############################################### @@ -1228,6 +1317,8 @@ other decorations will be returned. =cut ############################################### + + ############################################### sub bodytag { my ($title,$function,$addentries,$bodyonly,$domain)=@_; @@ -1244,43 +1335,16 @@ sub bodytag { $function='author'; } } - my $img=''; - my $pgbg=''; - my $tabbg=''; - my $font=''; - my $link=''; - my $alink='#CC0000'; - my $vlink=''; - if ($function eq 'admin') { - $img='admin'; - $pgbg='#FFFFCC'; - $tabbg='#CCCC99'; - $font='#772200'; - $link='#663300'; - $vlink='#666600'; - } elsif ($function eq 'coordinator') { - $img='coordinator'; - $pgbg='#CCFFFF'; - $tabbg='#CCCCFF'; - $font='#000044'; - $link='#003333'; - $vlink='#006633'; - } elsif ($function eq 'author') { - $img='author'; - $pgbg='#CCFFFF'; - $tabbg='#CCFFCC'; - $font='#004400'; - $link='#003333'; - $vlink='#006666'; - } else { - $img='student'; - $pgbg='#FFFFAA'; - $tabbg='#FF9900'; - $font='#991100'; - $link='#993300'; - $vlink='#996600'; - } -# role and realm + my $img=&designparm($function.'.img',$domain); + my $pgbg=&designparm($function.'.pgbg',$domain); + my $tabbg=&designparm($function.'.tabbg',$domain); + my $font=&designparm($function.'.font',$domain); + my $link=&designparm($function.'.link',$domain); + my $alink=&designparm($function.'.alink',$domain); + my $vlink=&designparm($function.'.vlink',$domain); + my $sidebg=&designparm($function.'.sidebg',$domain); + + # role and realm my ($role,$realm) =&Apache::lonnet::plaintext((split(/\./,$ENV{'request.role'}))[0]); # realm @@ -1303,8 +1367,8 @@ END $bodytag - + +
-$messages$messages