--- loncom/interface/loncommon.pm 2001/12/17 14:16:35 1.17 +++ loncom/interface/loncommon.pm 2002/04/23 21:42:01 1.35 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.17 2001/12/17 14:16:35 harris41 Exp $ +# $Id: loncommon.pm,v 1.35 2002/04/23 21:42:01 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -28,25 +28,88 @@ # YEAR=2001 # 2/13-12/7 Guy Albertelli # 12/11,12/12,12/17 Scott Harrison +# 12/21 Gerd Kortemeyer +# 12/21 Scott Harrison +# 12/25,12/28 Gerd Kortemeyer +# YEAR=2002 +# 1/4 Gerd Kortemeyer # Makes a table out of the previous attempts # Inputs result_from_symbread, user, domain, course_id # Reads in non-network-related .tab files +# POD header: + +=head1 NAME + +Apache::loncommon - pile of common routines + +=head1 SYNOPSIS + +Referenced by other mod_perl Apache modules. + +Invocation: + &Apache::loncommon::SUBROUTINENAME(ARGUMENTS); + +=head1 INTRODUCTION + +Common collection of used subroutines. This collection helps remove +redundancy from other modules and increase efficiency of memory usage. + +Current things done: + + Makes a table out of the previous homework attempts + Inputs result_from_symbread, user, domain, course_id + Reads in non-network-related .tab files + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head2 Subroutines + +=over 4 + +=cut + +# End of POD header package Apache::loncommon; use strict; +use Apache::lonnet(); use POSIX qw(strftime); use Apache::Constants qw(:common); use Apache::lonmsg(); +my $readit; + +# ----------------------------------------------- Filetypes/Languages/Copyright my %language; my %cprtag; my %fe; my %fd; my %fc; +# -------------------------------------------------------------- Thesaurus data +my @therelated; +my @theword; +my @thecount; +my %theindex; +my $thetotalcount; +my $thefuzzy=2; +my $thethreshold=0.1/$thefuzzy; +my $theavecount; + +# ----------------------------------------------------------------------- BEGIN +=item BEGIN() + +Initialize values from language.tab, copyright.tab, filetypes.tab, +and filecategories.tab. + +=cut # ----------------------------------------------------------------------- BEGIN -sub BEGIN { + +BEGIN { + + unless ($readit) { # ------------------------------------------------------------------- languages { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. @@ -102,6 +165,391 @@ sub BEGIN { } } } +# -------------------------------------------------------------- Thesaurus data + { + my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. + '/thesaurus.dat'); + if ($fh) { + while (<$fh>) { + my ($tword,$tindex,$tcount,$trelated)=split(/\@/,$_); + $theindex{$tword}=$tindex; + $theword[$tindex]=$tword; + $thecount[$tindex]=$tcount; + $thetotalcount+=$tcount; + $therelated[$tindex]=$trelated; + } + } + $theavecount=$thetotalcount/$#thecount; + } + &Apache::lonnet::logthis( + "INFO: Read file types and thesaurus"); + $readit=1; +} + +} +# ============================================================= END BEGIN BLOCK +############################################################### +## Home server \n"; + } + $selectdomain.=""; + return $selectdomain; +} + +#------------------------------------------- + +=item get_home_servers($domain) + +Returns a hash which contains keys like '103l3' and values like +'kirk.lite.msu.edu'. All of the keys will be for machines in the +given $domain. + +=cut + +#------------------------------------------- +sub get_home_servers { + my $domain = shift; + my %home_servers; + foreach (keys(%Apache::lonnet::libserv)) { + if ($Apache::lonnet::hostdom{$_} eq $domain) { + $home_servers{$_} = $Apache::lonnet::hostname{$_}; + } + } + return %home_servers; +} + +#------------------------------------------- + +=item home_server_option_list($domain) + +returns a string which contains an