Ace::Browser::SearchSubs.3pm

Langue: en

Autres versions - même langue

Version: 2006-11-01 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Ace::Browser::SearchSubs - Subroutines for AceBrowser search scripts

SYNOPSIS

   use Ace;
   use Ace::Browser::AceSubs;
   use Ace::Browser::SearchSubs;
   use CGI qw(:standard);
 
   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.