Thorsten Scherler wrote:
What I tell you is just a quick thought that I was having while
lunch. ;-)

I saw your commits and still have to check your code. Anyway here it
goes.

On Wed, 2005-08-31 at 12:20 +0100, Ross Gardler wrote:
<snip introduction>

We need to be able to present different views on each source file. For example, the blogs.xml resume needs to be presented with a number of different views. Each view will have different content, for example, the "complete" view will have all project history with full details of all projects no matter how long ago they took place. The "recent" view will show the full details of the most recent job and a summary of each of the earlier projects.

I'm not at all sure how to do this. I guess the view name will be provided in the URL:

http://domain.com/resume/complete_view/blogs.html
http://domain.com/resume/summary_view/blogs.html

Any hints on how I then pass that to the view resolver in the internal.view plugin?


Actually I did a similar thing once. What you can do is create the
directories resume/complete_view and resume/summary_view in your project
and add the views. If you use the default.fv (or the name you have
choosen) in this directories then all the pages will use this view.

What happens here is that the plugin will deliver the main content when
requesting above links (not the project file system) and the view
resolver will match the views in the directory structure.

Actually this approach only works if the content is coming from a plugin
and you have a project. Not 100% true because the is a way to implement
it against a file structure, but that is not what you requested, or?

Does that makes sense to you?

I think I understand, is this what you mean...

<map:match pattern="resume/*/**.xml">
  <map:generate src="cocoon://resume/{2}.xml"/>
  <map:serialize type="xml"/>
</map:match>

Thus we strip the theme from the URL, but it is still present when the view does its stuff. Then we can have:

--+ resume
     |
     +-- blogs.xml
     +-- doh.xml
     +-- default.fv
     +-- complete
     |     |
     |     +-- default.fv
     +-- summary
           |
           +-- default.fv

I'm pretty sure this will work, but I have to admit it feels like a hack since I'm touching the project sitemap *and* the directory structure.

Of course, a hack is a quick solution, if we find this truly useful then we can find a way of getting this into the view-resolver so the directory structure will be:

--+ resume
     |
     +-- blogs.xml
     +-- doh.xml
     +-- default.fv
     +-- complete.fv
     +-- summary.fv

and there will be no need to touch the project sitemap (the match will be in the plugin sitemap).

Thanks for the pointer.

Ross

Reply via email to