version 1.104, 2001/11/28 14:02:31
|
version 1.105, 2001/11/28 16:47:25
|
Line 8
|
Line 8
|
# 10/12,10/14,10/15,10/16,11/28 Scott Harrison |
# 10/12,10/14,10/15,10/16,11/28 Scott Harrison |
# |
# |
# $Id$ |
# $Id$ |
# |
|
### |
### |
|
|
############################################################################### |
############################################################################### |
## ## |
## ## |
## ORGANIZATION OF THIS PERL MODULE ## |
## ORGANIZATION OF THIS PERL MODULE ## |
## ## |
## ## |
## 1. Description of functions ## |
## 1. Modules used by this module ## |
## 2. Modules used by this module ## |
## 2. Choices for different output views (detailed, summary, xml, etc) ## |
## 3. Choices for different output views (detailed, summary, xml, etc) ## |
## 3. BEGIN block (to be run once after compilation) ## |
## 4. BEGIN block (to be run once after compilation) ## |
## 4. Handling routine called via Apache and mod_perl ## |
## 5. Handling routine called via Apache and mod_perl ## |
## 5. Other subroutines ## |
## 6. Other subroutines ## |
|
## ## |
## ## |
############################################################################### |
############################################################################### |
|
|
# ---------------------------------------------------- Description of functions |
|
# |
|
# |
|
# === WEB HANDLER FUNCTIONS |
|
# BEGIN() : run once after compilation to initialize values |
|
# handler(server reference) : interacts with the Apache server layer |
|
# (for /adm/searchcat URLs) |
|
# get_unprocessed_cgi() : reads in critical name/value pairs that may have not |
|
# been processed and passed into %ENV by the web server |
|
# make_persistent() : makes a set of hidden HTML fields to make |
|
# SQL search interface information to be persistent |
|
# |
|
# |
|
# === WEB INTERFACE COMPONENT FUNCTIONS |
|
# simpletextfield(name,value) : returns HTML formatted string for simple text |
|
# field |
|
# simplecheckbox(name,value) : returns HTML formatted string for simple |
|
# checkbox |
|
# searchphrasefield(title,name,value) : returns HTML formatted string for |
|
# a search expression phrase field |
|
# dateboxes(name, defaultmonth, defaultday, defaultyear) : returns HTML |
|
# formatted string |
|
# for a calendar date |
|
# selectbox(title,name,value,%HASH=options) : returns HTML formatted string for |
|
# a selection box field |
|
# |
|
# |
|
# === SEARCH FUNCTIONS |
|
# advancedsearch(server reference, environment reference) : perform a complex |
|
# multi-field logical query |
|
# basicsearch(server reference, environment reference) : perform a simple |
|
# single-field logical query |
|
# build_SQL_query(field name, logic) : builds a SQL query string from a |
|
# logical expression with AND/OR keywords |
|
# build_custommetadata_query(field_name, logic_statement) : builds a perl |
|
# regular expression from a logical expression with AND/OR |
|
# keywords |
|
# recursive_SQL_query_build(field name, reverse notation expression) : |
|
# builds a SQL query string from a reverse notation expression |
|
# logical expression with AND/OR keywords |
|
# build_date_queries(cmonth1, cday1, cyear1, cmonth2, cday2, cyear2, |
|
# lmonth1, lday1, lyear1, lmonth2, lday2, lyear2) : |
|
# Builds a SQL logic query to check time/date entries. |
|
# |
|
# |
|
# === OUTPUTTING RESULTS FUNCTION |
|
# output_results(output mode, |
|
# server reference, |
|
# environment reference, |
|
# reply list reference) : outputs results from search |
|
# |
|
# |
|
# === DIFFERENT WAYS TO VIEW METADATA RECORDS |
|
# detailed_citation_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
# see metadata viewing notes below |
|
# summary_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
# see metadata viewing notes below |
|
# fielded_format_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
# see metadata viewing notes below |
|
# xml_sgml_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
# see metadata viewing notes below |
|
# ___________________________________________________________________________ |
|
# | * Metadata viewing notes | |
|
# | Output is a HTML-ified string. | |
|
# | Input arguments are title, author, subject, url, keywords, version, notes,| |
|
# | short abstract, mime, language, creation date, last revision date, owner, | |
|
# | copyright, hostname, httphost, and extra custom metadata to show. | |
|
# --------------------------------------------------------------------------- |
|
# |
|
# |
|
# === TEST CONDITIONAL FUNCTIONS |
|
# filled(field) : determines whether a given field has been filled |
|
# |
|
# |
|
# === ERROR FUNCTIONS |
|
# output_blank_field_error(server reference) : outputs a message saying that |
|
# more fields need to be filled in |
|
# output_date_error(server reference, error message) : outputs |
|
# an error message specific to bad date format. |
|
|
|
package Apache::lonsearchcat; |
package Apache::lonsearchcat; |
|
|
# ------------------------------------------------- modules used by this module |
# ------------------------------------------------- modules used by this module |
Line 1573 sub start_fresh_session {
|
Line 1491 sub start_fresh_session {
|
1; |
1; |
|
|
__END__ |
__END__ |
|
|
|
=head1 NAME |
|
|
|
Apache::lonsearchcat - mod_perl module for handling a searchable catalog |
|
|
|
=head1 SYNOPSIS |
|
|
|
Invoked by /etc/httpd/conf/srm.conf: |
|
|
|
<Location /adm/searchcat> |
|
PerlAccessHandler Apache::lonacc |
|
SetHandler perl-script |
|
PerlHandler Apache::lonsearchcat |
|
ErrorDocument 403 /adm/login |
|
ErrorDocument 500 /adm/errorhandler |
|
</Location> |
|
|
|
=head1 INTRODUCTION |
|
|
|
This module enables searching for a distributed browseable catalog. |
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
=head1 BEGIN SUBROUTINE |
|
|
|
This routine is only run once after compilation. |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
Initializes %language hash table. |
|
|
|
=item * |
|
|
|
Initializes %cprtag hash table (for copyright.tab). |
|
|
|
=item * |
|
|
|
Initializes %mimetag hash table (for filetypes.tab). |
|
|
|
=item * |
|
|
|
Initializes %hostdomains and hostips hash table (for hosts.tab). |
|
|
|
=back |
|
|
|
=head1 HANDLER SUBROUTINE |
|
|
|
This routine is called by Apache and mod_perl. |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
configure dynamic components of interface |
|
|
|
=item * |
|
|
|
determine current user |
|
|
|
=item * |
|
|
|
see if a search invocation should be done |
|
|
|
=item * |
|
|
|
else, begin building search interface to output |
|
|
|
=item * |
|
|
|
compute date selection boxes |
|
|
|
=item * |
|
|
|
compute customized metadata field |
|
|
|
=item * |
|
|
|
print screen |
|
|
|
=back |
|
|
|
=head1 OTHER SUBROUTINES |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
get_unprocessed_cgi() : reads in critical name/value pairs that may have not |
|
been processed and passed into %ENV by the web server |
|
|
|
=item * |
|
|
|
make_persistent() : makes a set of hidden HTML fields to make |
|
SQL search interface information to be persistent |
|
|
|
=back |
|
|
|
WEB INTERFACE COMPONENT FUNCTIONS |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
simpletextfield(name,value) : returns HTML formatted string for simple text |
|
field |
|
|
|
=item * |
|
|
|
simplecheckbox(name,value) : returns HTML formatted string for simple |
|
checkbox |
|
|
|
=item * |
|
|
|
searchphrasefield(title,name,value) : returns HTML formatted string for |
|
a search expression phrase field |
|
|
|
=item * |
|
|
|
dateboxes(name, defaultmonth, defaultday, defaultyear) : returns HTML |
|
formatted string for a calendar date |
|
|
|
=item * |
|
|
|
selectbox(title,name,value,%HASH=options) : returns HTML formatted string for |
|
a selection box field |
|
|
|
=back |
|
|
|
SEARCH FUNCTIONS |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
advancedsearch(server reference, environment reference) : perform a complex |
|
multi-field logical query |
|
|
|
=item * |
|
|
|
basicsearch(server reference, environment reference) : perform a simple |
|
single-field logical query |
|
|
|
=item * |
|
|
|
build_SQL_query(field name, logic) : builds a SQL query string from a |
|
logical expression with AND/OR keywords |
|
|
|
=item * |
|
|
|
build_custommetadata_query(field_name, logic_statement) : builds a perl |
|
regular expression from a logical expression with AND/OR keywords |
|
|
|
=item * |
|
|
|
recursive_SQL_query_build(field name, reverse notation expression) : |
|
builds a SQL query string from a reverse notation expression |
|
logical expression with AND/OR keywords |
|
|
|
=item * |
|
|
|
build_date_queries(cmonth1, cday1, cyear1, cmonth2, cday2, cyear2, |
|
lmonth1, lday1, lyear1, lmonth2, lday2, lyear2) : |
|
Builds a SQL logic query to check time/date entries. |
|
|
|
=back |
|
|
|
OUTPUTTING RESULTS FUNCTION |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
output_results(output mode, server reference, environment reference, |
|
reply list reference) : outputs results from search |
|
|
|
=back |
|
|
|
DIFFERENT WAYS TO VIEW METADATA RECORDS |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
detailed_citation_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
see metadata viewing notes below |
|
|
|
=item * |
|
|
|
summary_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
see metadata viewing notes below |
|
|
|
=item * |
|
|
|
fielded_format_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
see metadata viewing notes below |
|
|
|
=item * |
|
|
|
xml_sgml_view(ORDERED METADATA LIST FOR A RESULT OBJECT INSTANCE) : |
|
see metadata viewing notes below |
|
|
|
=back |
|
|
|
_____________________________________________________________________ |
|
| * Metadata viewing notes | |
|
| Output is a HTML-ified string. | |
|
| Input arguments are title, author, subject, url, keywords, version, | |
|
| notes, short abstract, mime, language, creation date, | |
|
| last revision date, owner, copyright, hostname, httphost, and | |
|
| extra custom metadata to show. | |
|
--------------------------------------------------------------------- |
|
|
|
TEST CONDITIONAL FUNCTIONS |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
filled(field) : determines whether a given field has been filled |
|
|
|
=back |
|
|
|
ERROR FUNCTIONS |
|
|
|
=over 4 |
|
|
|
=item * |
|
|
|
output_blank_field_error(server reference) : outputs a message saying that |
|
more fields need to be filled in |
|
|
|
=item * |
|
|
|
output_date_error(server reference, error message) : outputs |
|
an error message specific to bad date format. |
|
|
|
=back |
|
|
|
=cut |