"Gregor" <vorlon@iglou.com> wrote:
I have a bunch of "link" objects (based on a ZClass) in a folder. Each has a "name", "description", "address", and "keywords" property (the latter is of type "tokens", which sounds good, but I have no idea if that's what it is for, since I have yet to find the docs on those types).
I can easily get the links sorted by name, e.g., <dtml-in "objectItems('Link')" sort=name>
So how would I get with something like this:
Keyword1: Link1 Link3 Link27 Link29
Keyword2: Link4 Link5 Link19 Link27
Note that Link27 has both Keyword1 and Keyword2 in the Keywords property.
I could certainly do something like this with an SQL thingy, but I'd just as soon use Zope's built in Object Database. Seems like less of a pain.
I don't know how I would do this in "pure" DTML -- if the Link objects are cataloged, with the Keywords property cataloged as a KeywordIndex, then you could wrap it up in nested catalog queries, something like (untested): <!-- loop over [ 'Keyword1', 'Keyword2', ... ] <ul> <dtml-in "Catalog.uniqueValuesFor( 'Keywords' )"> <dtml-let kwd=sequence-item> <li> <dtml-var kwd>: </li> <ul> <dtml-in "Catalog( Keywords=kwd )"> <li> <dtml-var id> </li> </dtml-in> </ul> </dtml-in> </ul> -- ========================================================= Tres Seaver tseaver@palladion.com 713-523-6582 Palladion Software http://www.palladion.com