--- MPIWGWeb/Attic/MPIWGTemplate.py 2008/09/04 17:54:33 1.1.2.6 +++ MPIWGWeb/Attic/MPIWGTemplate.py 2008/09/08 08:40:05 1.1.2.7 @@ -35,6 +35,19 @@ def getSection(self): return sec +def getSubSection(self): + """returns the current subsection name""" + p = self + sec = None + subsec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type != 'MPIWGRoot': + subsec = sec + sec = p.getId() + p = p.aq_parent + + return subsec + class MPIWGTemplate(ZopePageTemplate): """Create a layout Template for different purposes""" @@ -75,9 +88,9 @@ class MPIWGTemplate(ZopePageTemplate): return "" getBreadcrumbs = getBreadcrumbs - getSection = getSection - + getSubSection = getSubSection + def harvest_page(self): """harvest main""" try: @@ -183,6 +196,8 @@ class MPIWGFolder(Folder): getBreadcrumbs = getBreadcrumbs getSection = getSection + + getSubSection = getSubSection def manage_addMPIWGFolderForm(self): @@ -236,15 +251,33 @@ class MPIWGFeature(Folder): def index_html(self): """default index page""" return self.getMain() + + def getFullTitle(self): + """returns the full title (from main.pt)""" + # get Language from MPIWGRoot + lang = self.getLang() + dir = getattr(self, lang, self.en) + pt = getattr(dir, 'main.pt') + t = pt.title + if not t: + t = self.title + + return t def getIntro(self, **args): """returns the intro as PageTemplate""" - pt = getattr(self.en, 'intro.pt') + # get Language from MPIWGRoot + lang = self.getLang() + dir = getattr(self, lang, self.en) + pt = getattr(dir, 'intro.pt') return pt(**args) def getMain(self, **args): """returns the main part as PageTemplate""" - pt = getattr(self.en, 'main.pt') + # get Language from MPIWGRoot + lang = self.getLang() + dir = getattr(self, lang, self.en) + pt = getattr(dir, 'main.pt') return pt(**args) def getFrontpageImg(self): @@ -276,7 +309,6 @@ class MPIWGFeature(Folder): """returns the URL of the image object for the sidebar thumbnail""" img = getattr(self, 'img-thumb.jpg') return img.absolute_url() - def changeWeight(self,weight,RESPONSE=None): """change weight""" @@ -284,7 +316,6 @@ class MPIWGFeature(Folder): if RESPONSE is not None: RESPONSE.redirect('manage_main') - def changeMPIWGFeature(self, title=None, weight=None, RESPONSE=None): """change everything""" if title is not None: @@ -294,9 +325,22 @@ class MPIWGFeature(Folder): if RESPONSE is not None: RESPONSE.redirect('manage_main') - getBreadcrumbs = getBreadcrumbs + def getBreadcrumbs(self): + """return list of breadcrumbs from here to the root""" + crumbs = [(self.getFullTitle(), self.absolute_url(), self)] + parent = self.aq_parent + if hasattr(parent, 'getBreadcrumbs'): + if self.title: + return parent.getBreadcrumbs() + crumbs + else: + # if there's no title, skip this level + return parent.getBreadcrumbs() + + return crumbs getSection = getSection + + getSubSection = getSubSection def manage_addMPIWGFeatureForm(self):