Am Freitag, 19. Januar 2007 01:12 schrieb Philipp von Weitershausen: > On 18 Jan 2007, at 22:10 , Florian Lindner wrote: > > Am Donnerstag, 18. Januar 2007 16:24 schrieb Philipp von > > > > Weitershausen: > >> Marius Gedminas wrote: > >>> On Wed, Jan 17, 2007 at 09:50:58PM +0100, Florian Lindner wrote: > >>>> Hello, > >>>> I have a ressourceDirectory with a file styles.css > >>>> > >>>> <resourceDirectory > >>>> directory="files" > >>>> name="files" > >>>> /> > >>>> > >>>> I refer to it in my default template: > >>>> > >>>> <link rel="stylesheet" type="text/css" tal:attributes="href > >>>> context/@@/files/styles.css" /> > >>> > >>> That's no good. The /@@/ view only works when context is a site. > >>> Besides, I'm not sure you can use it in a TALES expression like > >>> this. > >>> > >>> You want > >>> > >>> <link rel="stylesheet" type="text/css" > >>> tal:attributes="href context/++resource++files/ > >>> styles.css" /> > >>> > >>> I think. (I'm sure "href context/++resource++name.css" is the right > >>> solution for plain resource files, but I haven't used > >>> resourceDirectory > >>> much.) > >> > >> It works like that for resourceDirectory resources as well. > > > > Yes, it works fine but now I have another problem: > > > > The tempate contains links like: > > Which template? > > > <a tal:attributes="href context/@@contact.html/ > > @@absolute_url">kontakt</a> > > > > contact.html is registered for the interface (IXGM) of the object > > in which the > > object that should use the template (IBlog) resides. But in the > > IBlog context > > there is no contact.html. > > What is the best way to work around this? > > > > - Register contact HTML for all interfaces? > > - Make them static (no TAL) links? > > > > Both are ways I don't really like. > > I'm not getting this. Before you asked about resources, now all of a > sudden it's about a template?
Ok, the entire situation is: I have a template template.pt which should be applied to all site watched in the skin xgm. <page for="*" name="standard_macros" permission="zope.Public" class=".views.StandardMacros" layer="xgm.interfaces.IXGMSkin" allowed_interface="zope.interface.common.mapping.IItemMapping" /> <page for="*" name="skin_macros" permission="zope.Public" layer="xgm.interfaces.IXGMSkin" template="template.pt" /> and class StandardMacros(BaseMacros): macro_pages = ('skin_macros', ) the template.pt is the one also used on xgm.de: <metal:block define-macro="page"> <metal:block define-macro="view"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <title metal:define-slot="title">Testtitle</title> <link rel="stylesheet" type="text/css" tal:attributes="href context/++resource++files/styles.css" /> </head> <body> <ul id="navigation"> <li>[ <a tal:attributes="href context/@@index.html/@@absolute_url">home</a> ]</li> </ul> <div id="content"> <metal:block define-slot="body"> This is the content. </metal:block> </div> </body> </html> </metal:block> </metal:block> (shortened a bit) The styles.css is the ressource my last posts were about. index.html is registered like that: <pages for="xgm.interfaces.IXGM" layer="xgm.interfaces.IXGMSkin" permission="zope.Public" class=".views.ViewClass" > <page name="index.html" template="index.pt" /> </pages> This works perfect as far as only pages use this template who are registered on the same interface like the other ines (IXGM). Now I have a third party package (Blog) which should generally be independent to all that but should use the template.pt which called with ++skin++xgm. <html metal:use-macro="views/standard_macros/view"> <body> <div metal:fill-slot="body"> <h1 tal:content="context/title"></h1> <div tal:content="context/description" /> <div class="row" tal:repeat="item view/getSortedBlogEntries" tal:content="structure item/@@details.html" /> </div> </body> </html> is registered on the default layer. Since the xgm layer derives from the default layer it correctly uses my template.pt. But the problem is now when a view from the Blog object are called links in the template like <a tal:attributes="href context/@@index.html/@@absolute_url">home</a> do not work anymore, since context is the Blog and not a IXGM object anymore. Therefore the lookup fails. Sorry for the long mail, I hope I was able to explain what my problem is. Thanks, Florian _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users