Changeset 1308 in products
- Timestamp:
- Sep 11, 2009 5:23:26 PM (15 years ago)
- Location:
- quintagroup.seoptimizer/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.seoptimizer/trunk/docs/HISTORY.txt
r1276 r1308 1 1 Changelog 2 2 ========= 3 4 2.0.10 (unreleased) 5 ------------------ 6 7 - Resolved metatags duplication 8 [liebster] 9 3 10 4 11 2.0.9 (2009-09-10) … … 7 14 - Fixed bugs in metatags viewlet 8 15 [liebster] 16 9 17 10 18 2.0.8 (2009-07-28) -
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/__init__.py
r392 r1308 1 1 from AccessControl import allow_module 2 from util import SortedDict 3 from Acquisition import aq_inner 4 from DateTime import DateTime 5 6 from Products.CMFCore.utils import getToolByName 2 7 3 8 allow_module('quintagroup.seoptimizer.util') 4 9 qSEO_globals = globals() 10 11 12 try: 13 from Products.CMFPlone.PloneTool import PloneTool, METADATA_DCNAME 14 _present = hasattr(PloneTool, "listMetaTags") 15 except ImportError: 16 _present = False 17 18 19 20 if _present: 21 old_lmt = PloneTool.listMetaTags 22 23 def listMetaTags(self, context): 24 """Lists meta tags helper. 25 26 Creates a mapping of meta tags -> values for the listMetaTags script. 27 """ 28 result = {} 29 site_props = getToolByName(self, 'portal_properties').site_properties 30 use_all = site_props.getProperty('exposeDCMetaTags', None) 31 32 if not use_all: 33 metadata_names = {'Description': METADATA_DCNAME['Description']} 34 else: 35 metadata_names = METADATA_DCNAME 36 37 for accessor, key in metadata_names.items(): 38 method = getattr(aq_inner(context).aq_explicit, accessor, None) 39 if not callable(method): 40 continue 41 42 # Catch AttributeErrors raised by some AT applications 43 try: 44 value = method() 45 except AttributeError: 46 value = None 47 48 if not value: 49 # No data 50 continue 51 if accessor == 'Publisher' and value == 'No publisher': 52 # No publisher is hardcoded (TODO: still?) 53 continue 54 if isinstance(value, (list, tuple)): 55 # convert a list to a string 56 value = ', '.join(value) 57 58 # Exclusion meta tag description and keywords 59 # # Special cases 60 # if accessor == 'Description': 61 # result['description'] = value 62 # elif accessor == 'Subject': 63 # result['keywords'] = value 64 65 if use_all: 66 result[key] = value 67 68 if use_all: 69 created = context.CreationDate() 70 71 try: 72 effective = context.EffectiveDate() 73 if effective == 'None': 74 effective = None 75 if effective: 76 effective = DateTime(effective) 77 except AttributeError: 78 effective = None 79 80 try: 81 expires = context.ExpirationDate() 82 if expires == 'None': 83 expires = None 84 if expires: 85 expires = DateTime(expires) 86 except AttributeError: 87 expires = None 88 89 # Filter out DWIMish artifacts on effective / expiration dates 90 if effective is not None and \ 91 effective > FLOOR_DATE and \ 92 effective != created: 93 eff_str = effective.Date() 94 else: 95 eff_str = '' 96 97 if expires is not None and expires < CEILING_DATE: 98 exp_str = expires.Date() 99 else: 100 exp_str = '' 101 102 if exp_str or exp_str: 103 result['DC.date.valid_range'] = '%s - %s' % (eff_str, exp_str) 104 105 return result 106 107 PloneTool.listMetaTags = listMetaTags -
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/configure.zcml
r1269 r1308 12 12 /> 13 13 14 < browser:viewlet14 <!--browser:viewlet 15 15 name="quintagroup.seoptimizer.http_equiv" 16 16 manager="plone.app.layout.viewlets.interfaces.IHtmlHead" … … 18 18 layer=".interfaces.IPloneSEOLayer" 19 19 permission="zope2.View" 20 / >20 /--> 21 21 22 < browser:viewlet22 <!--browser:viewlet 23 23 name="quintagroup.seoptimizer.base" 24 24 manager="plone.app.layout.viewlets.interfaces.IHtmlHead" … … 26 26 layer=".interfaces.IPloneSEOLayer" 27 27 permission="zope2.View" 28 / >28 /--> 29 29 30 < browser:viewlet30 <!--browser:viewlet 31 31 name="quintagroup.seoptimizer.generator" 32 32 manager="plone.app.layout.viewlets.interfaces.IHtmlHead" … … 34 34 layer=".interfaces.IPloneSEOLayer" 35 35 permission="zope2.View" 36 / >36 /--> 37 37 38 38 <browser:viewlet -
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/viewlets.py
r1265 r1308 49 49 return u"%s\n%s"%(qseo_title, qseo_comments) 50 50 51 class HTTPEquiv(ViewletBase):52 53 def charset( self ):54 context = self.context.aq_inner55 site_properties = getToolByName( context, 'portal_properties').site_properties56 return site_properties.getProperty('default_charset', 'utf-8')57 58 def render( self ):59 return """<meta http-equiv="Content-Type" content="text/html; charset=%s" />"""%self.charset()60 61 class BaseUrlViewlet( ViewletBase ):62 """63 simpel viewlet for base href rendering64 """65 def renderBase( self ):66 # returns correct base href67 context = self.context.aq_inner68 isFolder = getattr(context.aq_explicit, 'isPrincipiaFolderish', 0)69 base_url = context.absolute_url()70 71 # when accessing via WEBDAV you're not allowed to access aq_explicit72 try:73 return isFolder and '%s/'%base_url or base_url74 except (Unauthorized, 'Unauthorized'):75 pass76 77 def render( self ):78 return """<base href="%s" /><!--[if lt IE 7]></base><![endif]-->"""% self.renderBase()51 #class HTTPEquiv(ViewletBase): 52 # 53 # def charset( self ): 54 # context = self.context.aq_inner 55 # site_properties = getToolByName( context, 'portal_properties').site_properties 56 # return site_properties.getProperty('default_charset', 'utf-8') 57 # 58 # def render( self ): 59 # return """<meta http-equiv="Content-Type" content="text/html; charset=%s" />"""%self.charset() 60 # 61 #class BaseUrlViewlet( ViewletBase ): 62 # """ 63 # simpel viewlet for base href rendering 64 # """ 65 # def renderBase( self ): 66 # # returns correct base href 67 # context = self.context.aq_inner 68 # isFolder = getattr(context.aq_explicit, 'isPrincipiaFolderish', 0) 69 # base_url = context.absolute_url() 70 # 71 # # when accessing via WEBDAV you're not allowed to access aq_explicit 72 # try: 73 # return isFolder and '%s/'%base_url or base_url 74 # except (Unauthorized, 'Unauthorized'): 75 # pass 76 # 77 # def render( self ): 78 # return """<base href="%s" /><!--[if lt IE 7]></base><![endif]-->"""% self.renderBase() 79 79 80 80 class MetaTagsViewlet( ViewletBase ): … … 92 92 93 93 metaTags = SortedDict() 94 metaTags.update(pu.listMetaTags(context))94 #metaTags.update(pu.listMetaTags(context)) 95 95 metadataList = [ 96 96 ('seo_description', 'description'), … … 100 100 101 101 if exposeDCMetaTags: 102 metadataList.append((' qSEO_Distribution', 'DC.distribution'))102 metadataList.append(('seo_distribution', 'DC.distribution')) 103 103 104 104 seo_context = getMultiAdapter((self.context, self.request), name='seo_context') -
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/profiles/default/viewlets.xml
r958 r1308 2 2 <object> 3 3 <order manager="plone.htmlhead" skinname="*"> 4 < viewlet name="quintagroup.seoptimizer.http_equiv" />4 <!--viewlet name="quintagroup.seoptimizer.http_equiv" /--> 5 5 <viewlet name="plone.htmlhead.title" /> 6 < viewlet name="quintagroup.seoptimizer.base" />7 < viewlet name="quintagroup.seoptimizer.generator" />6 <!--viewlet name="quintagroup.seoptimizer.base" /--> 7 <!--viewlet name="quintagroup.seoptimizer.generator" /--> 8 8 <viewlet name="quintagroup.seoptimizer.metatags" /> 9 9 <viewlet name="quintagroup.seoptimizer.canonicalurl" />
Note: See TracChangeset
for help on using the changeset viewer.