Index: /quintagroup.seoptimizer/trunk/docs/HISTORY.txt
===================================================================
--- /quintagroup.seoptimizer/trunk/docs/HISTORY.txt (revision 1051)
+++ /quintagroup.seoptimizer/trunk/docs/HISTORY.txt (revision 1052)
@@ -3,8 +3,10 @@
-2.0.6 (unreleased)
+2.0.6 (2009-05-19)
------------------
-- Nothing changed yet.
+- Fix page title tag, now it is not duplicated in case
+ site and current page have equal titles
+ [piv]
Index: /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/viewlets.py
===================================================================
--- /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/viewlets.py (revision 1051)
+++ /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/viewlets.py (revision 1052)
@@ -1,2 +1,3 @@
+from cgi import escape
from zope.component import getMultiAdapter
from zope.viewlet.interfaces import IViewlet
@@ -21,8 +22,16 @@
self.override_comments = self.context.hasProperty('qSEO_html_comment')
+ def std_title(self):
+ portal_title = safe_unicode(self.portal_title())
+ page_title = safe_unicode(self.page_title())
+ if page_title == portal_title:
+ return u"
%s" % (escape(portal_title))
+ else:
+ return u"%s — %s" % (
+ escape(safe_unicode(page_title)),
+ escape(safe_unicode(portal_title)))
+
def render(self):
- std_title = u"%s — %s" % ( safe_unicode(self.page_title()),
- safe_unicode(self.portal_title())
- )
+ std_title = self.std_title()
seo_context = getMultiAdapter((self.context, self.request), name='seo_context')
if not self.override_title:
Index: /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testQSEOptimizer.py
===================================================================
--- /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testQSEOptimizer.py (revision 1051)
+++ /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testQSEOptimizer.py (revision 1052)
@@ -185,7 +185,22 @@
self.html = self.publish(abs_path, self.basic_auth).getBody()
+ # now setup page with title equal to plone site's title
+ my_doc2 = self.portal.invokeFactory('Document', id='my_doc2')
+ my_doc2 = self.portal['my_doc2']
+ my_doc2.update(title=self.portal.Title())
+ wf_tool.doActionFor(my_doc2, 'publish')
+ abs_path2 = "/%s" % my_doc2.absolute_url(1)
+ self.html2 = self.publish(abs_path2, self.basic_auth).getBody()
+
def testTitle(self):
m = re.match('.*\\s*hello world\\s*', self.html, re.S|re.M)
self.assert_(m, 'Title not set in')
+
+ def testTitleDuplication(self):
+ """If we are not overriding page title and current page title equals title of the plone site
+ then there should be no concatenation of both titles. Only one should be displayed.
+ """
+ m = re.match('.*\\s*%s\\s*' % self.portal.Title(), self.html2, re.S|re.M)
+ self.assert_(m, 'Title is not set correctly, perhaps it is duplicated with plone site title')
def testDescription(self):
Index: /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/version.txt
===================================================================
--- /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/version.txt (revision 1051)
+++ /quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/version.txt (revision 1052)
@@ -1,1 +1,1 @@
-2.0.6 dev
+2.0.6