Hello Valentino,

You wrote:
Ok but this should be accomplished in a different way IMHO. You should have a Fragments container somewhere and lookup stuff in there. It doesn't make too much sense to have fragment children IMHO.

Why not? I often have 'sub-templates', like you see in my example, where the hierarchy for URL 'www.mysite.com/foo/bar.html' would be:

autohandler > foo/autohandler > foo/bar.html

'autohandler' is never going to include 'foo/bar.html' directly. And both 'autohandler' as well as 'foo/autohandler' should always have a child to include somewhere.

To clarify the concepts of Pages and Fragments, the top level template (the 'autohandler') does not exactly look like a 'Fragment' to me, since it includes all the <html><head .../><body .../><html> tags.

Well... Pages can be used in place of the Fragments but they will be considered as Fragments with no extra functionality (even if the code is there) thus it's better to stick with Fragments entirely for this usecase.

Uhm... but I can add render_xy and data_xy to Fragments, can't I?

As you can see in my example, I've written my own 'locateFragmentChild()' method which does exactly what I'm describing above.

Well but you just need to lookup stuff here and there,

No, I need to look stuff up in the Fragment, then that Fragment again needs to lookup it's 'child'.

It's not like using a Fragment for the top navigation, one for the breadcrumbs and one for the content. Although I could do it that way, it would be confusing, because I would always have to check the URL (or the segments in nevow). I'd loose the hierarchy information in my code.

if you need to include different fragments in a particular fragment then I guess this locateFragmentChild is sort of useful although the name is not the best I can think of, simply locateFragment should be enough (but as I can see there's really no fixed hiararchy of Fragments and you shouldn't use the same mechanism used in locateChild, I'd rather go with a dictionary containing all of them because in the end that's what you are actually doing, including a fragment depending on the url segment).

Well, I think you got it by now: I just really, really, really want to arrange my Fragments hierarchically. :-)

<snipped my example>

I don't see a connection between this and the fragments though.

For me these also looks more like Pages. But I can't set
docFactory = ['autohandler', 'foo/autohandler', 'foo/bar.html']

Or would that probably be an alternative? Write a DocFactory which processes multiple templates, which include their child with a special content renderer... Or just read all the templates and output one Stan tree, doing the multiple-template-connecting in the DocFactory?

Yes, they are a recent addition for a usecase in Quotient. You can pass arguments by using closures of course. But inserting renderers is a strage usecase, I've never needed it and pre-processors were added to change urls on the fly (I think for caching purposes) when loading templates, not for changing templates in that hard way. You might find some problems in doing that, but I've never tried.

Why should that lead to problems? Seems like a very clever concept to me (adding renderers or data on the fly with preprocessors).

I'm also changing urls on the fly, the relative ones. If I can pass arguments to the preprocessor, I can easily get away without adding a renderer.

Thank you for your help, I'll have a look at your nevow sources.

Markus


_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

Reply via email to