Still going through my old inbox entries. This one talks about the history of filter classes and gives a bit of the rationale for the current design. Would it had been discussed a bit more (it could be smarter about left joins)...
From: hans@forumone.com
Subject: [classes] next generation filtering
Date: September 5, 2002 10:32:56 AM EDT
To: dev@forumone.com
Hi F1devers,
For those of you who have used the f1db_filter class, I have a new f1db
filter class available [built for PHlexDB, but does not depend on
PHlexDB framework] that is infinitely more flexible.
The current f1db_filters class has 1-level of filtering depth. I.e. you
can filter on docs related to a given author, or on authors related to a
given organization, but there is no way to filter on docs related to
people who are related to a given organization. For BYJ, Sandy hacked
the class to support 2-level deep filtering on picklists (I think it was
to add ability to filter on X related to X that has a certain picklist
value).
The new filtering paradigm has no limitations on levels of depth. Also
filter components can be re-used & re-combined to produce different
result sets.
It's pretty slick -- I've used this filtering framework extensively on
new project spaces "intranet" page, where you will be able to see, e.g.,
all documents which are related to a project of which you are a member.
Additionally, the new filtering class is actually a "search" class --
you can choose whether you want to filter (i.e. 'exclusive') or search
('inclusive') the records table.
Bear this in mind if you think you could use more flexible filtering
systems in a project.
Cheers,
Hans