src/ztfy/baseskin/metas.py
changeset 4 7561b24c28c1
parent 0 747fc65e13e2
equal deleted inserted replaced
3:40834e55f1d1 4:7561b24c28c1
    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)