diff -r 40834e55f1d1 -r 7561b24c28c1 src/ztfy/baseskin/metas.py --- a/src/ztfy/baseskin/metas.py Wed Nov 25 10:38:26 2015 +0100 +++ b/src/ztfy/baseskin/metas.py Fri Jan 31 12:08:47 2020 +0100 @@ -14,21 +14,14 @@ ############################################################################## -# import standard packages - -# import Zope3 interfaces - -# import local interfaces -from ztfy.baseskin.interfaces.metas import IContentMetasHeaders, IContentMetaHeader, \ - IHTTPEquivMetaHeader, IPropertyMetaHeader, \ - ILinkMetaHeader, IPageMetasHeaders - -# import Zope3 packages +from z3c.template.interfaces import IPageTemplate +from z3c.template.template import getPageTemplate from zope.component import adapts, getAdapters -from zope.interface import implements, Interface - -# import local packages +from zope.component._api import getMultiAdapter +from zope.interface import Interface, implements from ztfy.base.interfaces import IBaseContent +from ztfy.baseskin.interfaces.metas import IContentMetaHeader, IContentMetasHeaders, \ + IHTTPEquivMetaHeader, ILinkMetaHeader, IPageMetasHeaders, IPropertyMetaHeader, IScriptMetaHeader class ContentMeta(object): @@ -89,6 +82,24 @@ 'href': self.href} +class ScriptMeta(object): + """Script meta header, based on a template""" + + implements(IScriptMetaHeader) + + template = getPageTemplate() + + def __init__(self, context, request): + self.context = context + self.request = request + + def render(self): + if self.template is None: + template = getMultiAdapter((self, self.request), IPageTemplate) + return template(self) + return self.template() + + class ContentMetasAdapter(object): """Generic content metas adapter"""