Ace::Browser::SearchSubs(3pm)

Ace::Browser::SearchSubs3pm

Subroutines for acebrowser search scripts

Usage

  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');

Overview

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');

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 7 times.

  1. 6.0
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13

Bugs

Please report them.

Author

Lincoln Stein <[email protected]>.

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.

From libace-perl 1.92-12+b1 in Debian 13 (Trixie). Parsed by carta from the page's man source.