source: products/quintagroup.seoptimizer/branches/3.0.1-cleanup/quintagroup/seoptimizer/adapters.py @ 2262

Last change on this file since 2262 was 2262, checked in by crchemist, 14 years ago

refactor seo_context from view to multiadapter

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1import re
2
3from zope.interface import implements
4from zope.component import queryAdapter
5from zope.component import queryMultiAdapter
6
7from quintagroup.seoptimizer.util import SortedDict
8from quintagroup.seoptimizer.interfaces import IMetaKeywords, IMappingMetaTags
9from quintagroup.seoptimizer.browser.seo_configlet import ISEOConfigletSchema
10
11from browser.interfaces import ISEOContext
12
13METADATA_MAPS = dict([
14    ("DC.publisher", "Publisher"),
15    ("DC.description", "Description"),
16    ("DC.contributors", "Contributors"),
17    ("DC.creator", "Creator"),
18    ("DC.format", "Format"),
19    ("DC.rights", "Rights"),
20    ("DC.language", "Language"),
21    ("DC.date.modified", "ModificationDate"),
22    ("DC.date.created", "CreationDate"),
23    ("DC.type", "Type"),
24    ("DC.subject", "Subject"),
25    ("DC.distribution", "seo_distribution"),
26    ("description", "seo_description"),
27    ("keywords", "meta_keywords"),
28    ("robots", "seo_robots"),
29    ("distribution", "seo_distribution")])
30
31class MetaKeywordsAdapter(object):
32    implements(IMetaKeywords)
33
34    def __init__(self, context):
35        self.context = context
36
37    def getMetaKeywords(self):
38        """ See interface.
39        """
40        meta_keywords = []
41        seo_context = queryMultiAdapter((self.context, self.context.REQUEST), ISEOContext)
42        if seo_context:
43            meta_keywords = list(seo_context['meta_keywords'])
44        return ', '.join(meta_keywords)
45
46
47class MappingMetaTags(object):
48    implements(IMappingMetaTags)
49
50    def __init__(self, context):
51        self.context = context
52        pps = queryMultiAdapter((self.context, self.context.REQUEST),
53                                name="plone_portal_state")
54        self.gseo = queryAdapter(pps.portal(), ISEOConfigletSchema)
55
56    def getMappingMetaTags(self):
57        """ See interface.
58        """
59        metadata_name = SortedDict()
60        if self.gseo:
61            for mt in self.gseo.metatags_order:
62                if METADATA_MAPS.has_key(mt):
63                    metadata_name[mt] = METADATA_MAPS[mt]
64        return metadata_name
Note: See TracBrowser for help on using the repository browser.