---
name: "Ace::Browser::SearchSubs"
section: "3pm"
platform: "linux"
package: "libace-perl"
version: "1.92-12+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Ace::Browser::SearchSubs"
---

# Ace::Browser::SearchSubs(3pm)

Subroutines for AceBrowser search scripts

## 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.
