1) Create a Pier hierarchy of pages which mirror the
model and potentially
duplicate the data within it
That's a limitation of the Pier structure hierarchy, it is a tree.
Btw, the structure is the name for different kinds of pages, such as
blogs, files, pages, components, etc.
2) Use the Pier page hierarchy as the model
You can do that. Pier internally models most of its things like that
because they naturally fit into a tree. This is not a requirement
though, you can easily have an independent model and reference it from
your structures.
3) Use the model to dynamically create Pier pages
during a request.
That could probably be done, but Pier is not really designed to
support that. It would require some significant work on the Pier side
I assume.
Solution (2) mixes model and view.
I don't see why this mixes model and view?
- Model: PRStructure and subclasses + some external code
- Controller: PRCommand and subclasses + some external code
- View: PRViewComponent and subclasses + some external code (Seaside mostly)
In you case you would just add your own model classes to your own
PRStructure subclasses that somehow interoperate with your model.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch