from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Globals import package_home import string import re import os import logging from OFS.Folder import Folder from AccessControl import ClassSecurityInfo from MPIWGHelper import * from ZODB import FileStorage, DB import transaction # dummy definitions for backwards compatibility import MPIWGFeature class MPIWGFeature(MPIWGFeature.MPIWGFeature): """deprecated! use class in MPIWGFeature.py""" import MPIWGFolder class MPIWGFolder(MPIWGFolder.MPIWGFolder): """deprecated! use class in MPIWGFolder.py""" class MPIWGTemplate(ZopePageTemplate): """Create a layout Template for different purposes""" meta_type="MPIWGTemplate" manage_options=ZopePageTemplate.manage_options+( {'label':'Change Weight','action':'changeWeightForm'}, ) def changeWeightForm(self): """change weight form""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self) return pt() def changeWeight(self,weight,RESPONSE=None): """change weight""" self.weight=weight if RESPONSE is not None: RESPONSE.redirect('manage') def __init__(self, id, text=None, content_type="text/html",MPIWGType=None): self.id = str(id) self.ZBindings_edit(self._default_bindings) if text is None: self._default_content_fn = os.path.join(package_home(globals()), 'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType) text = open(self._default_content_fn).read() self.pt_edit(text, content_type) def isActiveItem(self): """teste ob ausgewaehlt""" if self.absolute_url()==self.REQUEST['URL']: return "aktiv" else: return "" getBreadcrumbs = getBreadcrumbs getSection = getSection getSubSection = getSubSection def harvest_page(self,mode="normal"): """harvest main""" # Ensure that a 'userdb' key is present # in the root templates = self.en.getHarvestCache() #templates = getattr(self,'getHarvestCache',self.en.getHarvestCache)() try: rendered = self.pt_render() templates[self.absolute_url()]=rendered logging.debug("harvest:"+self.absolute_url()) transaction.commit() return rendered except: logging.error("cannot harvest: %s"%self.absolute_url()) def manage_addMPIWGTemplateForm(self): """Form for adding""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self) return pt() def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None): "Add a Page Template with optional file content." if type(MPIWGType)==StringType: MPIWGTypes=[MPIWGType] else: MPIWGTypes=MPIWGType for singleType in MPIWGTypes: if REQUEST is None: self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType)) ob = getattr(self, id) if title: ob.pt_setTitle(title) return ob else: file = REQUEST.form.get('file') headers = getattr(file, 'headers', None) if headers is None or not file.filename: zpt = MPIWGTemplate(id,MPIWGType=singleType) else: zpt = MPIWGTemplate(id, file, headers.get('content_type')) self._setObject(id, zpt) ob = getattr(self, id) if title: ob.pt_setTitle(title) try: u = self.DestinationURL() except AttributeError: u = REQUEST['URL1'] ob = getattr(self, id) ob.weight=weight REQUEST.RESPONSE.redirect(u+'/manage_main') return ''