The best way to handle this is to create a widget for nodes of name '#text', with a render widget of the following: <dtml-var getNodeValue> Change your <p> render method as you suggested: <p><dtml-var render_helper></p> Then, as the <p> node is traversed, it will render all element nodes within the <p> as well as spit out any paragraph content (nodes with nodename of #text). See my DocBookDocument product (and specifically the DocBookWidgets/xw__TEXT widget) for an example of this. http://www.zope.org/Members/rbickers/DocBookDocument Note that if you want the <table> element to render the same way in any context, you can delete the isNodeSupported() method. It comes in handy if you have mulitple widgets that handle the same <table> node in different contexts. _______________________ Ron Bickers Logic Etc, Inc. rbickers@logicetc.com
-----Original Message----- From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of Richard.Folwell@symbian.com Sent: Monday, May 15, 2000 7:30 AM To: zope@zope.org Subject: [Zope] XMLWidgets question
I am trying to use XMLWidgets to render some simple structured documentation, and am running into problems extending it. The problem I have is with trying to add new elements that can be included in <p> elements. For example, I have created a new element <table>, which works OK if inserted into a section, but produces no output (and no errors) if placed into a paragraph.
The isNodeSupported() method was changed to:
<dtml-return "getParentNode().getNodeName() == 'section'" || "getParentNode ().getNodeName() == 'p'">
so that it will be legal in both contexts. I guess the problem is that the render() method for <p> is:
<p><dtml-var text_content></p>
which of course will not produce anything for contained elements. However changing it to:
<p><dtml-var render_helper></p>
will not work because it will never get to the point where it will extract the paragraph content to display (though it will now display contained elements).
Am I going about this the wrong way, or am I just missing something obvious?