NAME
Ace::Browser::SearchSubs - Subroutines for AceBrowser search scripts
SYNOPSIS
use
Ace;
my
$form
= p(start_form,
textfield(
-name
=>
'query'
),
end_form);
AceSearchTable(
'Search for stuff'
,
$form
);
...
my
$query
= param(
'query'
);
my
$offset
= AceSearchOffset;
my
(
$objects
,
$count
) = do_search(
$query
,
$offset
);
AceResultsTable(
$objects
,
$count
,
$offset
,
'Here are results'
);
DESCRIPTION
Ace::Browser::SearchSubs exports a set of constants and subroutines that are useful for creating AceBrowser search scripts.
CONSTANTS
This package exports the following constants:
MAXOBJECTS The maximum number of objects that can be displayed
per page.
SEARCH_ICON An icon to
use
for
search links. This is deprecated.
Use Configuration->Search_icon instead.
FUNCTIONS
These functions are exported:
- $offset = AceSearchOffset()
-
When the user is paging back and forth among a multi-page list of results, this function returns the index of the first item to display.
- AceSearchTable([{hash}],$title,@contents)
-
Given a title and the HTML contents, this formats the search into a table and gives it the background and foreground colors used elsewhere for searches. The formatted search is then printed.
The HTML contents are usually a fill-out form. For convenience, you can provide the contents in multiple parts (lines or elements) and they will be concatenated together.
If the first argument is a hashref, then its contents will be passed to start_form() to override the form arguments.
- AceResultsTable($objects,$count,$offset,$title)
-
This subroutine formats the results of a search into a pageable list and prints out the resulting HTML. The following arguments are required:
$objects
An array reference containing the objects to place in the
table.
$count
The total number of objects.
$offset
The offset into the array, as returned by AceSearchOffset()
$title
A title
for
the table.
The array reference should contain no more than MAXOBJECTS objects. The AceDB query should be arranged in such a way that this is the case. A typical idiom is the following:
my
$offset
= AceSearchOffset();
my
$query
= param(
'query'
);
my
$count
;
my
@objs
=
$db
->fetch(
-query
=>
$query
,
-count
=> MAXOBJECTS,
-offset
=>
$offset
,
-total
=> \
$count
);
AceResultsTable(\
@objs
,
$count
,
$offset
,
'Here are the results'
);
BUGS
Please report them.
SEE ALSO
Ace::Object, Ace::Browser::SiteDefs, Ace::Browsr::AceSubs, the README.ACEBROWSER file.
AUTHOR
Lincoln Stein <lstein@cshl.org>.
Copyright (c) 2001 Cold Spring Harbor Laboratory
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.