changeset 30:21a88f0c01df

Hide sidebar when not defined, allow chanign sidebar page with #pragma (ported from the gugiel theme)
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 24 Jun 2008 19:16:13 +0200
parents 9ae8db751803
children c20fa2bdcea0
files mandarin.py
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mandarin.py	Tue Jun 24 19:07:29 2008 +0200
+++ b/mandarin.py	Tue Jun 24 19:16:13 2008 +0200
@@ -126,17 +126,23 @@
         return u''.join(parts)
 
     def sidebar(self, d, **keywords):
+        """ Display page called SideBar as an additional element on every page
+
+        @param d: parameter dictionary
+        @rtype: string
+        @return: sidebar html
+        """
         request = self.request
         _ = self.request.getText
-        sidebar = 'SideBar';
+        sidebar = request.getPragma('sidebar') or u'SideBar';
         page = Page(request, sidebar)
+        if not page.exists():
+            return u""
+        import StringIO
         buff = StringIO.StringIO()
         request.redirect(buff)
         try:
-            try:
-                page.send_page(request, content_only=1, content_id="sidebar")
-            except TypeError:
-                page.send_page(content_only=1, content_id="sidebar")
+            page.send_page(content_only=1, content_id="sidebar")
         finally:
             request.redirect()
         return u'<div class="sidebar">%s</div>' % buff.getvalue()