Before some days, I was worked on one site and In this I need to add pagination on some pages in which only some contents were displaying at a time.so what I have done to add pagination in those pages in Joomla, want to share with you so you get some idea to use default Joomla pagination.
First of all, I have taken one variable $limit and define My Per page limit in it.
1 2 3 | $limit = 10; |
After then I have to create offset for start limit
1 2 3 | $offset = JRequest::getVar('limitstart', 0, '', 'int'); |
Let me explain about getVar function, the getVar function is used to GET data from the request uri.
SYNTAX:
1 2 3 | getVar(Uri_field,Default_value, Value_type,Variable_type); |
Uri_field: The field name you get value in it. i.e, index.php?limitstart = 0
Default_value: Default value that will be returned if the query name is not exist.
Value_type: HTTP request type(get or post or request) By deafult,its GET.
Variable_type: Data Type of the variable.
Next, I have written a database query to get number of rows and to retrieve all records
Basically, To get Pagination in you need to execute query two times.The first query is to count a total number of rows without LIMIT. The second query is exactly the same as the first, just without LIMIT and it will actually retrieve required data. It’s difficult to use two query when you have the complex query that joins several tables.if you don’t want to execute complex query twice and don’t want to waste server resources, you can use SQL_CALC_FOUND_ROWS option of MySQL
SQL_CALC_FOUND_ROWS is a one feature of the MySql used to count total number of rows disregarding LIMIT clause in the SELECT statement
and Now, FOUND_ROWS() returns the total number of rows in the result set returned by that statement.
Note: SQL_CALC_FOUND_ROWS and FOUND_ROWS statements are much faster
Next, SQL queries to get total rows
JPagination is the core class of Joomla used to add pagination to the Front-end and Back-end.JPagination has three parameters, first is the total records, the second is offset(or start limit) and the third parameter is rows per page.
Last,
1 2 3 4 5 6 | $content = $pageNav->getListFooter(); //Display Limit dropdown, the Pages Links and the Pages Counter foreach ($resultSet as $row) { // To display retrieved data } |
Suggested Reading:
About Module Position in Joomla
Free shipping for specific Country in Virtuemart Joomla
Custom Query with Joomla
Hope above contents has helped you to use default Joomla pagination in your site.
Comments (7)