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 or fr), where lang is the first available language specified in the Accept-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 of mode

mode=dist, mode=author, mode=module

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 of dist, module, or author. 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 of dist, module, or author. 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, for mode=dist, or all module names matching $letter::* are returned, for mode=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 or mod_id=$id

This brings up an information page for the module with the specified module name or module table id.

dist=$name or dist_id=$id

This brings up an information page for the distribution with the specified distribution name or distribution table id.

cpanid=$cpanid or author=$cpanid or auth_id=$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.