Search

I'm trying to create a tumblog sort of thing with Symphony, and I'd like to have several sections, each with a different type of entry.

I want them to be displayed on the homepage, but instead of displaying them by sections, I need them to be displayed by date, all together.

So if I post to section A first, then section B, then section A, I want to display the entries as ABA not AAB.

How can I do this with Symphony?

This question has been answered and elaborated.

Okay, so I got it to work, but how does the pagination work with this?

Also, how can I use master.xsl with this?

I'm interested in this as well. How can I combine multiple datesources with pagination?

What is more, is there a way to create a datasource which has multiple sections as a source?

With regards to pagination — it can be done, but it isn't easy or efficient. Symphony's pagination works at the database level, therefore the DS returns only the correct page of results. If you want to merge data sets together (using the methods above, by merging in the XSLT) your DS's will need to return all entries, and you will need to write the paging logic using XSLT.

This is inefficient because for all DS's you are returning all entries. For example, if you are merging three Sections (with three DSs) and each section has 100 entries, you page XML will have all 300 entries in it; but your XSLT will only be displaying a subset (say, 10 per page). This means that for every page request the database is taking a pounding by building 300 entries. You will certainly see your Profile performance metrics shoot up.

The best way to mitigate this is to limit what each DS returns. Perhaps you could get away with returning only 20 entries from each. Obviously this is rather limiting since if you're sorting alphabetically, for example, the results might not make sense (you'd end up with entries A-E, not A-Z perhaps).

As far as I know there is no way of having a DS with multiple sections.

If your SQL and PHP is up to it, then perhaps this can be done with a custom DS. By querying the tables directly you might be able to join and paginate, but it's no trivial task!

The only achievable solution for me is #2. It means I have to limit what a DS returns. I'd like to filter by date and paginate, but in this way it'll list entries regardless of that.

The pages will display stuff in the right order only in a single page, and not concerning the whole. (i.e. domain.com/page/1, domain.com/page/2, domain.com/page/3 each page is correct but if you compare the data among them you'll see inconsistencies).

Basically the number of what a DS returns should be variable, it should consider entries from other sections. I wanted to create something like this in symphony: http://code.google.com/p/django-syncr/

Thanks anyway, your reply is really appreciated.

Sorry to revive an old topic, but I’m facing a similar problem and was wondering if anyone has a recommended solution to the original question. I’m pulling in multiple XML feeds and caching them in Symphony sections but want to use Infinite Scroll/pagination to reduce the load time of the page.

I had a look at this and this but couldn’t find a definitive answer. Any help appreciated!

Managed to solve this, the answer was pretty simple in the end. I just pulled all my data sources into an XML page, then subsequently imported that with XMLImporter to create a unified data source - which can then be paginated. Bit of a long process but does the job

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