I’m slowly getting into the presentation side of the Fabulator system. While it’s relatively easy to include data in a page, I didn’t have a good way to produce something more dynamic, such as an Exhibit timeline, until now. While the extensions aren’t quite finished, a first run at the problem is available through the Fabulator Exhibit extension and the Fabulator Exhibit Radiant extension. The first provides the core data management while the latter ties it in with persistant storage and the Radiant environment.
The two together allow us to do the following in an application:
<ex:item ex:id="f:name(.)" ex:label="f:name(.)" ex:type="Word">
<ex:value ex:name="count" f:select="." />
<ex:value ex:name="location" f:select="./path" />
<ex:type ex:name="Word" ex:pluralLabel="Words" />
<ex:property ex:name="count" ex:valueType="numeric" />
The structure should be familiar to anyone who has worked with JSON-encoded Exhibit data sources. It captures all of the relavent information without necessarily imposing the structure of the JSON. You can add items, types, and properties anywhere within the <ex:database/> element.
Speaking of which, I would like to get rid of the <ex:database/> element eventually. It wraps its body so that the Exhibit database is loaded and saved when needed. I’d prefer the framework auto-magically figuring out what needs to be loaded and saved.
The next step is to provide the Radiant page tags that help embed the exhibit in the page with a reference to the exhibit database.