ft_get_page_nav
Module Development
You may find yourself in a position where you have too much information to display on a single page and need to group them into pages, with the standard « 1 2 3 ... pagination links. This function is written for precisely this purpose. It works for showing pagination links for ANY lists of data.
It works by passing certain values - like the current page, the number of items per page and so on - to the pagination.tpl template (found in the theme folder root), which generates the pagination HTML / JS. As with all Smarty templates, if the pagination.tpl file isn't found in the theme's root, it will use the default pagination.tpl file in the /themes/default theme.
The function is called in your PHP, like so:
$page_vars["pagination"] = ft_get_page_nav($num_results, $num_per_page, $page);
The function parameters are the following:
- the number of results in the total result set (required)
- the number of lines that appear per page (required)
- the current page number (required)
- any additional string you want to have passed along via the query string when the user clicks on one of the pagination links (optional)
- the key used to identify the page number, passed via the query string, e.g. index.php?page=5. The default is the string "page", but you can use whatever string you want (optional)
- the theme with which to render the HTML. This defaults to whatever theme the user is currently using, but in case you need a specific pagination.tpl file, you can specify the theme folder name (optional).
The "pagination" key has to be passed to the template via the ft_display_module_page function, like so:
ft_display_module_page("your_template.tpl", $page_vars); // where $page_vars contains "pagination"
Lastly, in your template just use the $pagination variable to display it:
{$pagination}
And you're done!