History for DTMLAsRootNode
??changed:
-
Problem:
99% of all pages start with <dtml-var standard_html_header>
and end with <dtml-var standard_html_footer>.
Couldn't a document start with <dtml> and end with </dtml>?
There is no explict need for this. You can achieve this by creating an XML Document which is rendered using the XMLWidgets render subsystem. Check out this [Zope] pages for more details:
* http://www.zope.org/Members/faassen/XMLWidgets/xmlwidgets-0.6.tgz/info/more_info
* http://www.zope.org/Members/NoneToBe/VisualZope/index_html
Both these products are under development so be warned :)
-- NonetoBe
Besides going XML, it's not hard to place this index_html in your root folder:
<dtml-var standard_html_header>
<dtml-var body_html>
<dtml-var standard_html_footer>
And now thanks to the wonders of acquisition, you can use body_html in your folders instead
of index_html, and you don't need to include any headers or footers anymore. Of course you can always go back to the previous situation if you use index_html somewhere explicitly. And of course another consequence is that each document tends to have its own folder.
Alternatively, you could create a ZClass that automagically includes the header and the
footer.
-- MartijnF
Sure, but this only addresses index_html, not the other documents, or (with a ZClass) doesn't take into account that sometimes you don't *want* a header and a footer. The proposed syntax is also newbie-friendly.
-- MindLace
And and and!, says *jeffrey-p-shell*, many layouts are more complex than just a "header" and a "footer". standard_html_header/footer rub me a million times the wrong way. My own solution to this is the (still unreleased) dtml-component tag, which let DTML be sortof like formatted documents in that you named another DTML Method to render the contents. *It just is really really painful to have a complex layout have to be split into two "files".*
What I have done as a compromise is to create a somewhat more intelligent
standard_html-header that checks properties to determine what it should do
or look like. For instance, my header/footer usually insert a navigation bar at the top (My own original idea!™ 8^) and a legal disclaimer at the bottom along with the requisite HTML preamble stuff. But, if I don't want the nav bar/disclaimer for a given page, I put a boolean property
called no_nav_bar in the DTML Document. The header/footer methods detect
the property and omits the nav bar.
-- [Caseman]
How about something like
standard_html_template::
<html>
<head>
<title><dtml-var title_or_id></title>
</head>
<body><dtml-var body></body>
</html>
some_random_page_html::
<dtml-template standard_html_template>
<dtml-part body><p>This is just Some Random Page.</p></dtml-part>
</dtml-template>
Of course the terminology probably needs some work. --[zigg]