--- loncom/interface/loncommon.pm 2001/12/11 13:51:38 1.13
+++ loncom/interface/loncommon.pm 2002/04/23 21:00:01 1.34
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.13 2001/12/11 13:51:38 harris41 Exp $
+# $Id: loncommon.pm,v 1.34 2002/04/23 21:00:01 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -27,59 +27,467 @@
#
# YEAR=2001
# 2/13-12/7 Guy Albertelli
-# 12/11 Scott Harrison
+# 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
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
-sub BEGIN {
+BEGIN {
+
+ unless ($readit) {
# ------------------------------------------------------------------- languages
{
my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
'/language.tab');
- while (<$fh>) {
- next if /^\#/;
- chomp;
- my ($key,$val)=(split(/\s+/,$_,2));
- $language{$key}=$val;
+ if ($fh) {
+ while (<$fh>) {
+ next if /^\#/;
+ chomp;
+ my ($key,$val)=(split(/\s+/,$_,2));
+ $language{$key}=$val;
+ }
}
}
# ------------------------------------------------------------------ copyrights
{
+ my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonIncludes'}.
+ '/copyright.tab');
+ if ($fh) {
+ while (<$fh>) {
+ next if /^\#/;
+ chomp;
+ my ($key,$val)=(split(/\s+/,$_,2));
+ $cprtag{$key}=$val;
+ }
+ }
+ }
+# ------------------------------------------------------------- file categories
+ {
my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
- '/copyright.tab');
- while (<$fh>) {
- next if /^\#/;
- chomp;
- my ($key,$val)=(split(/\s+/,$_,2));
- $cprtag{$key}=$val;
+ '/filecategories.tab');
+ if ($fh) {
+ while (<$fh>) {
+ next if /^\#/;
+ chomp;
+ my ($key,$val)=(split(/\s+/,$_,2));
+ push @{$fc{$key}},$val;
+ }
}
}
# ------------------------------------------------------------------ file types
{
- my $fh=Apache::File->new("$perlvar{'lonTabDir'}/filetypes.tab");
- while (<$fh>) {
- next if (/^\#/);
- chomp;
- my ($ending,$emb,$descr)=split(/\s+/,$_,3);
- if ($descr ne '') {
- $fe{$ending}=lc($emb);
- $fd{$ending}=join(' ',@descr);
+ my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
+ '/filetypes.tab');
+ if ($fh) {
+ while (<$fh>) {
+ next if (/^\#/);
+ chomp;
+ my ($ending,$emb,$descr)=split(/\s+/,$_,3);
+ if ($descr ne '') {
+ $fe{$ending}=lc($emb);
+ $fd{$ending}=$descr;
+ }
}
}
}
+# -------------------------------------------------------------- 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
'.$_.' '.$servers{$_}."
\n";
+ }
+ return $result;
+}
+###############################################################
+## End of home server
list generating code ##
+###############################################################
+
+###############################################################
+## Authentication changing form generation subroutines ##
+###############################################################
+##
+## All of the authform_xxxxxxx subroutines take their inputs in a
+## hash, and have reasonable default values.
+##
+## formname = the name given in the