NAME
Apache::CPAN::Search - mod_perl interface to CPAN::Search::Lite::Query
DESCRIPTION
This module provides a mod_perl (2) interface to CPAN::Search::Lite::Query. The modules Apache::Request
and Apache::Cookie
of the libapreq2
distribution are required. A directive
PerlLoadModule Apache::CPAN::Search
should appear before any of the Location
directives using the module. As well, the following directives should be defined in the Apache configuration file.
CSL_db database
-
the name of the database [required]
CSL_user user
-
the user to connect to the database as [required]
CSL_passwd password
-
the password to use for this user [required]
CSL_tt2 /path/to/tt2
-
the path to the tt2 pages [required]. If a subdirectory
lang
exists under/path/to/tt2
(eg,en
orfr
), wherelang
is the first available language specified in theAccept-Language
header sent by the browser (if sent), then this subdirectory will be used for the path to the tt2 pages. See the%langs
hash in CPAN::Search::Lite::Util for a list of available languages. If the language specified by the browser isn't available,en
(English) will be used. CSL_dl http://www.cpan.org
-
the default download location [optional - http://www.cpan.org will be used if not specified]
CSL_max_results 200
-
the maximum number of results to obtain [optional - 200 will be used if not specified]
The response handler can then be specified as
<Location "/search">
SetHandler perl-script
PerlResponseHandler Apache::CPAN::Search->search
</Location>
A request for http://localhost/search
without any query string will bring up a page of chapterid listings. All other requests are handled through the query string arguments.
mode=$value
-
What results depends on the
$value
ofmode
-
This brings up an alphabetical listing with links to pages of either distributions, authors, or modules whose names begin with the indicated letter.
mode=chapter
-
This brings up a page of links to the main chapter ids.
mode=mirror
-
This brings up a page whereby the location of the mirror used to get downloads from can be specified.
-
mode=$mode;query=$query
-
For this type of request,
$mode
must be one ofdist
,module
, orauthor
. A search using the specified$query
will be done on, respectively, distribution names and abstracts, module names and abstracts, and CPAN ids and full names. mode=$mode;letter=$letter
-
For this type of request,
$mode
must be one ofdist
,module
, orauthor
. If$letter
is a single letter, this returns, resepctively, all distribution names, module names, or CPAN ids beginning with the specified letter. If$letter
is more than one letter, all distribution names matching$letter-*
are returned, formode=dist
, or all module names matching$letter::*
are returned, formode=module
. recent=$age
-
This brings up a page listing all distributions uploaded in the last
$age
days. chapterid=$id
-
This brings a page listing all subchapters with a chapterid of
$id
. chapterid=$id;subchapter=$subchapter
-
This brings a page listing all distributions categorized in the given
$subchapter
in the$id
chapter. module=$name
ormod_id=$id
-
This brings up an information page for the module with the specified module name or module table id.
dist=$name
ordist_id=$id
-
This brings up an information page for the distribution with the specified distribution name or distribution table id.
-
This brings up an information page for the author with the specified CPAN id name or author table id.
NOTE
Make sure to check the values of $db
, $user
, $passwd
, and $tt2
at the top of this file.
SEE ALSO
Apache::CPAN::Query, CPAN::Search::Lite::Query, and mod_perl.