Faceted navigation with fabrik - custom devs

Hi,

Following my last post on fabrik filters... we thought that it may be the right time to look for a better navigation through lists (well we've been thinking of it for 2 years now).

For us, the best solution, would be to use faceted navigation based on filters params.

Ex : I have a trip list and would like to have 2 filters : countries and departure month.
I would set the 2 fields to show as filters and I would get this 2 filters on the list with checkboxes :
Countries
Country 1 (2 trips)
Country 2 (5 trips)
Departure month
Month 1 (1 trip)
Month 2 (6 trips)
...

-> we only show filters that have at least 1 result
-> when we select a filter value, the list is reloaded with AJAX and the filters calculation is re-done (filters with no result disappears)
-> ideally, the filters variables are added to the page url onclick (so that we can share the filtered list and use the browser back button)
-> we can still use fabrik filtering through url
-> we have to find a way that it works with pagination or get rid of pagination and load following rows with AJAX (for example with a link "load following x rows" at the bottom of the first x rows)

Would it be doable with fabrik current filter system ? With another standalone dev ?
How much work would it needs ?

We can pay for custom work (if someone is interested, we can share the dev costs).
Thanks,
Th?o
 
Last edited:
To be honest, I have absolutely no clue how long that would take to do. As you've no doubt discovered, nothing to do with filtering is simple. It's one of the hardest parts of the Fabrik code to work on, because of the sheer complexity of how so many things have to hang together - posted element filters, session filters, list pre-filters, menu pre-filters, query string filters, global searches, advanced filtering, search all, and navigation, taking into account multiple contexts (more than one list on a page), with or without AJAX, etc etc. and then turning that into actual MySQL WHERE clauses, potentially involving multiple joined many-to-many relationships.

It would take me a couple of hours of poking around and experimenting to even come up with a realistic estimate. If I tried to give you an estimate now, it would just be a made up number, based on a worst case guess (think of a number, triple it, then double it, then add 50% for good luck) so I didn't lose my shirt on the deal.

So this is one of those tough ones, where I'd have to charge just to figure out how much to charge.

An alternative might be to break it down into much more manageable chunks, like (say) figure out the whole query string thing within the existing filter / pagination model. That would get something tangible done, and give me the opportunity to look at all that code with an eye to achieving the other aims, and have a much clearer idea of whether it's possible, and if so what it would take.

-- hugh
 
Hi,
Indeed that is a big one... but filters are very important for our customers and we use it on several websites already.

I didn't exactly understood what you mean by "figure out the whole query string thing within the existing filter / pagination model", but we could start adressing a first bug :
Currently the ajax filters aren't working on my custom list templates (see page /pays.html) on my dev demo website : I don't know why but the filters returns the same row several times (but the rows number is correct). Seems to be related to my default_row.php file.
I guess that the first part of the devs would be to fix this bug.

... maybe that would give you an idea of the whole thing... but if not, we can afford paying 2 hours more for an estimate on the second part.

Then, the second part would be to create a new filter type (in element list params) that would return the filter as facets = checkbox type + result number per checkbox + AJAX reloading of the page onclick on a checkbox.
Well things as stated above...
The important thing is that the new facet filter has to be usable for any field.

Thanks,
Th?o
 
Hi Hugh,
Do you think that you will have enough time to adress the first part of my request in the next few days or should I contact someone else ?
Thanks,
Th?o
 
We are in need of some funding.
More details.

Thank you.

Members online

Back
Top