--- loncom/interface/loncommon.pm 2002/06/24 20:17:55 1.39 +++ loncom/interface/loncommon.pm 2002/07/22 14:25:40 1.47 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.39 2002/06/24 20:17:55 matthew Exp $ +# $Id: loncommon.pm,v 1.47 2002/07/22 14:25:40 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,7 @@ # 12/25,12/28 Gerd Kortemeyer # YEAR=2002 # 1/4 Gerd Kortemeyer +# 6/24,7/2 H. K. Ng # Makes a table out of the previous attempts # Inputs result_from_symbread, user, domain, course_id @@ -40,6 +41,8 @@ # POD header: +=pod + =head1 NAME Apache::loncommon - pile of common routines @@ -76,26 +79,48 @@ package Apache::loncommon; use strict; use Apache::lonnet(); +use GDBM_File; use POSIX qw(strftime); use Apache::Constants qw(:common); use Apache::lonmsg(); my $readit; +=pod + +=item Global Variables + +=over 4 + +=cut # ----------------------------------------------- Filetypes/Languages/Copyright my %language; my %cprtag; my %fe; my %fd; my %category_extensions; -# -------------------------------------------------------------- Thesaurus data -my @therelated; -my @theword; -my @thecount; -my %theindex; -my $thetotalcount; -my $thefuzzy=2; -my $thethreshold=0.1/$thefuzzy; -my $theavecount; +# ---------------------------------------------- Thesaurus variables + +=pod + +=item %Keywords + +A hash used by &keyword to determine if a word is considered a keyword. + +=item $thesaurus_db_file + +Scalar containing the full path to the thesaurus database. + +=cut + +my %Keywords; +my $thesaurus_db_file; + + +=pod + +=back + +=cut # ----------------------------------------------------------------------- BEGIN @@ -104,13 +129,16 @@ my $theavecount; =item BEGIN() Initialize values from language.tab, copyright.tab, filetypes.tab, -and filecategories.tab. +thesaurus.tab, and filecategories.tab. =cut + # ----------------------------------------------------------------------- BEGIN BEGIN { - + # Variable initialization + $thesaurus_db_file = $Apache::lonnet::perlvar{'lonTabDir'}."/thesaurus.db"; + # unless ($readit) { # ------------------------------------------------------------------- languages { @@ -167,29 +195,99 @@ 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"); + "INFO: Read file types"); $readit=1; -} + } # end of unless($readit) } # ============================================================= END BEGIN BLOCK +############################################################### +## HTML and Javascript Helper Functions ## +############################################################### + +=pod + +=item browser_and_searcher_javascript + +Returns scalar containing javascript to open a browser window +or a searcher window. Also creates + +=over 4 + +=item openbrowser(formname,elementname,only,omit) [javascript] + +inputs: formname, elementname, only, omit + +formname and elementname indicate the name of the html form and name of +the element that the results of the browsing selection are to be placed in. + +Specifying 'only' will restrict the browser to displaying only files +with the given extension. Can be a comma seperated list. + +Specifying 'omit' will restrict the browser to NOT displaying files +with the given extension. Can be a comma seperated list. + +=item opensearcher(formname, elementname) [javascript] + +Inputs: formname, elementname + +formname and elementname specify the name of the html form and the name +of the element the selection from the search results will be placed in. + +=back + +=cut + +############################################################### +sub browser_and_searcher_javascript { + return < { text =>"Choice A1" } ); -=back - =cut # ------------------------------------------------ @@ -341,6 +437,52 @@ END ############################################################### +=pod + +=item help_open_topic($topic, $stayOnPage, $width, $height) + +Returns a string corresponding to an HTML link to the given help $topic, where $topic corresponds to the name of a .tex file in /home/httpd/html/adm/help/tex, with underscores replaced by spaces. + +$stayOnPage is a value that will be interpreted as a boolean. If true, the link will not open a new window. If false, the link will open a new window using Javascript. (Default is false.) + +$width and $height are optional numerical parameters that will override the width and height of the popped up window, which may be useful for certain help topics with big pictures included. + +=cut + +sub help_open_topic { + my ($topic, $stayOnPage, $width, $height) = @_; + $stayOnPage = 0 if (not defined $stayOnPage); + $width = 350 if (not defined $width); + $height = 400 if (not defined $height); + my $filename = $topic; + $filename =~ s/ /_/g; + + my $template; + + if (!$stayOnPage) + { + $template = <<"ENDTEMPLATE"; +(Help: $topic) +ENDTEMPLATE + } + else + { + $template = <<"ENDTEMPLATE"; +(Help: $topic) +ENDTEMPLATE + } + + return $template; + +} + +=pod + =item csv_translate($text) Translate $text to allow it to be output as a 'comma seperated values' @@ -356,12 +498,12 @@ sub csv_translate { } ############################################################### - -############################################################### ## Home server