12 # FOR A PARTICULAR PURPOSE. |
12 # FOR A PARTICULAR PURPOSE. |
13 # |
13 # |
14 ############################################################################## |
14 ############################################################################## |
15 |
15 |
16 |
16 |
17 # import standard packages |
17 from z3c.template.interfaces import IPageTemplate |
18 |
18 from z3c.template.template import getPageTemplate |
19 # import Zope3 interfaces |
|
20 |
|
21 # import local interfaces |
|
22 from ztfy.baseskin.interfaces.metas import IContentMetasHeaders, IContentMetaHeader, \ |
|
23 IHTTPEquivMetaHeader, IPropertyMetaHeader, \ |
|
24 ILinkMetaHeader, IPageMetasHeaders |
|
25 |
|
26 # import Zope3 packages |
|
27 from zope.component import adapts, getAdapters |
19 from zope.component import adapts, getAdapters |
28 from zope.interface import implements, Interface |
20 from zope.component._api import getMultiAdapter |
29 |
21 from zope.interface import Interface, implements |
30 # import local packages |
|
31 from ztfy.base.interfaces import IBaseContent |
22 from ztfy.base.interfaces import IBaseContent |
|
23 from ztfy.baseskin.interfaces.metas import IContentMetaHeader, IContentMetasHeaders, \ |
|
24 IHTTPEquivMetaHeader, ILinkMetaHeader, IPageMetasHeaders, IPropertyMetaHeader, IScriptMetaHeader |
32 |
25 |
33 |
26 |
34 class ContentMeta(object): |
27 class ContentMeta(object): |
35 """Base content meta header""" |
28 """Base content meta header""" |
36 |
29 |
87 return """<link rel="%(rel)s" type="%(type)s" href="%(href)s" />""" % {'rel': self.rel, |
80 return """<link rel="%(rel)s" type="%(type)s" href="%(href)s" />""" % {'rel': self.rel, |
88 'type': self.type, |
81 'type': self.type, |
89 'href': self.href} |
82 'href': self.href} |
90 |
83 |
91 |
84 |
|
85 class ScriptMeta(object): |
|
86 """Script meta header, based on a template""" |
|
87 |
|
88 implements(IScriptMetaHeader) |
|
89 |
|
90 template = getPageTemplate() |
|
91 |
|
92 def __init__(self, context, request): |
|
93 self.context = context |
|
94 self.request = request |
|
95 |
|
96 def render(self): |
|
97 if self.template is None: |
|
98 template = getMultiAdapter((self, self.request), IPageTemplate) |
|
99 return template(self) |
|
100 return self.template() |
|
101 |
|
102 |
92 class ContentMetasAdapter(object): |
103 class ContentMetasAdapter(object): |
93 """Generic content metas adapter""" |
104 """Generic content metas adapter""" |
94 |
105 |
95 adapts(Interface, Interface) |
106 adapts(Interface, Interface) |
96 implements(IPageMetasHeaders) |
107 implements(IPageMetasHeaders) |