I found a small issue with this. When $show-rotation is enabled, $disabled class is added to prev and next buttons although it shouldn't. It's rotation after all.

To fix this, change line 118 from

<xsl:if test="$page-next = 2">


<xsl:if test="$page-next = 2 and $show-rotation != true()">

and line 154 from

<xsl:if test="$page-next = 1">


<xsl:if test="$page-next = 1 and $show-rotation != true()">

Hi, I have used pagination utility on other sites when used symphony, but now I just can't do anything because of this general error

This page could not be rendered due to the following XSLT processing errors:

GeneralDebug XSLTProcessor::transformToXml(): Invalid type xmlXPathCompiledEval: 1 objects left on the stack.

I imported the utility into my page, everything works fine. But when I call the pagination template I get that error. Any idea ?

<xsl:call-template name="pagination">
<xsl:with-param name="pagination-element" select="cat/pagination" />
<xsl:with-param name="display-number" select="'12'" />
<xsl:with-param name="url" select="concat('/articles/', $cat, '/$')"/>

And yes, there are a lot of entries, I get the correct xml, the system pagination is added, it is working if I go to /2 without the pagination utility added.

Using symphony 2.3 and the utility version is 1.4

UPDATE : Forget about it, I just copied <xsl:with-param name="pagination-element"... but didn't noticed it actually should be pagination not pagination-element. Not sure how I missed it :)

So I have an issue with pagination. My page is a page called Blog that already has a URL parameter called $title. When adding pagination I created a second url-parameter called $page so my entry is: page/title. The pagination works this way but then breaks my article titles, because the URL structure is:

How can I have a page that still routes titles correctly as well as has a url-parameter for $page? Am I missing something?

I think you should keep the first URL parameter $title as it is and use ?page=x (where x is a number corresponding to the current page number) in place of the second one $page: it will create a new param named url-param which you can use in the pagination without interfering with the title of the article.

Awesome, thanks for the feedback. I actually solved the issue by finding a way in my logic to use $title for both pagination and article links. Simplifies and streamlines everything. Don't see any downsides to this. It is working here:

@jdsimcoe I am interested as to how you did this. I too would like my news items to work in the same way i.e. news/1 for page one of news list and news/news-title for the detailed news view. I have used the get parameter method but the urls don't look as clean. If there are no downsides I would be interested in implementing your solution.

Bump. Does anyone have any ideas how I can implement pagination and titles into a url. I would like my url to be /news/1 for the pagination and /news/news-title-id for the detail. At the moment I have news/1/news-title-id for the detail page. Thanks in advance

I recommend using a page called news for the list of news. Here you can paginate with a Page Parameter: /1, /2 etc

Use another page to display one news entry only. Give it a handle single and set the parent to news.

Use URL Router to make this happen. In attachment are the 2 routes you should use.

First route matches /news/__any_integer_number_of_max_3_digits__/ which must be a pagination URL and routes to news page.

Second route matches /news/__anything__ and routes to news_single.

Symphony – URL Router - Google Chrome_2013-03-06_19-19-30.jpg

Thanks for this, it sounds just what I was looking for. I'll try and get some time to take a look this week.

Thanks again for your help, much appreciated.

For me, I think it's helpful to be able to hide the page numbers in some cases (sometimes you just want previous/next links). I added a parameter ("show-numbers") that makes it easy to turn on and off the numbers. I've attached the updated file.

Take a peek. If you like it, use it.


I'm having troubles at making this [nice] utility work...
I have set the utility to call myurl/?p=$ but don't know hot to tell the datasource to understand that p. In fact, how do I filter the datasource? I get always the same result set...

I think I made it, I had to put {$p} in the Sort and Limiting > Return Page field.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details