Pagerfanta

Documentation

Templates

Pagerfanta defines Pagerfanta\View\Template\TemplateInterface which is an abstraction layer for building the markup for different sections of a pagination list.

The interface requires several methods to be implemented:

  • setRouteGenerator: Injects the route generator to use while rendering the template
  • setOptions: Sets options for the template
  • container: Generates the wrapping container for the pagination list
  • page: Generates the markup for a single page in the pagination list
  • pageWithText: Generates the markup for a single page with the specified text label
  • previousDisabled: Generates the markup for the previous page button in the disabled state
  • previousEnabled: Generates the markup for the previous page button in the enabled state
  • nextDisabled: Generates the markup for the next page button in the disabled state
  • nextEnabled: Generates the markup for the next page button in the enabled state
  • first: Generates the markup for the first page button
  • last: Generates the markup for the last page button
  • current: Generates the markup for the current page button
  • separator: Generates the markup for a separator button, used to represent a break in a list of pages (i.e. 1, 2, ..., 6, 7)
<?php

namespace Pagerfanta\View\Template;

use Pagerfanta\RouteGenerator\RouteGeneratorInterface;

interface TemplateInterface
{
    /**
     * Sets the route generator used while rendering the template.
     *
     * @param callable|RouteGeneratorInterface $routeGenerator
     */
    public function setRouteGenerator(callable $routeGenerator): void;

    /**
     * Sets the options for the template, overwriting keys that were previously set.
     */
    public function setOptions(array $options): void;

    /**
     * Renders the container for the pagination.
     *
     * The %pages% placeholder will be replaced by the rendering of pages.
     */
    public function container(): string;

    /**
     * Renders a given page.
     */
    public function page(int $page): string;

    /**
     * Renders a given page with a specified text.
     */
    public function pageWithText(int $page, string $text, ?string $rel = null): string;

    /**
     * Renders the disabled state of the previous page.
     */
    public function previousDisabled(): string;

    /**
     * Renders the enabled state of the previous page.
     */
    public function previousEnabled(int $page): string;

    /**
     * Renders the disabled state of the next page.
     */
    public function nextDisabled(): string;

    /**
     * Renders the enabled state of the next page.
     */
    public function nextEnabled(int $page): string;

    /**
     * Renders the first page.
     */
    public function first(): string;

    /**
     * Renders the last page.
     */
    public function last(int $page): string;

    /**
     * Renders the current page.
     */
    public function current(int $page): string;

    /**
     * Renders the separator between pages.
     */
    public function separator(): string;
}