src/ztfy/baseskin/metas.py
changeset 4 7561b24c28c1
parent 0 747fc65e13e2
--- 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"""