1: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
2: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
3: from Globals import package_home
4: import string
5: import re
6: import os
7: import logging
8: from OFS.Folder import Folder
9: from AccessControl import ClassSecurityInfo
10: from MPIWGHelper import *
11: from ZODB import FileStorage, DB
12: import transaction
13:
14: # dummy definitions for backwards compatibility
15: import MPIWGFeature
16:
17: class MPIWGFeature(MPIWGFeature.MPIWGFeature):
18: """deprecated! use class in MPIWGFeature.py"""
19:
20: import MPIWGFolder
21:
22: class MPIWGFolder(MPIWGFolder.MPIWGFolder):
23: """deprecated! use class in MPIWGFolder.py"""
24:
25:
26:
27: class MPIWGTemplate(ZopePageTemplate):
28: """Create a layout Template for different purposes"""
29:
30: meta_type="MPIWGTemplate"
31:
32: manage_options=ZopePageTemplate.manage_options+(
33: {'label':'Change Weight','action':'changeWeightForm'},
34: )
35:
36: def changeWeightForm(self):
37: """change weight form"""
38: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self)
39: return pt()
40:
41: def changeWeight(self,weight,RESPONSE=None):
42: """change weight"""
43: self.weight=weight
44: if RESPONSE is not None:
45: RESPONSE.redirect('manage')
46:
47:
48: def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
49: self.id = str(id)
50: self.ZBindings_edit(self._default_bindings)
51: if text is None:
52: self._default_content_fn = os.path.join(package_home(globals()),
53: 'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType)
54: text = open(self._default_content_fn).read()
55: self.pt_edit(text, content_type)
56:
57:
58: def isActiveItem(self):
59: """teste ob ausgewaehlt"""
60: if self.absolute_url()==self.REQUEST['URL']:
61: return "aktiv"
62: else:
63: return ""
64:
65: getBreadcrumbs = getBreadcrumbs
66: getSection = getSection
67: getSubSection = getSubSection
68:
69: def harvest_page(self,mode="normal"):
70: """harvest main"""
71:
72:
73:
74: # Ensure that a 'userdb' key is present
75: # in the root
76:
77: templates = self.en.getHarvestCache()
78: #templates = getattr(self,'getHarvestCache',self.en.getHarvestCache)()
79: try:
80: rendered = self.pt_render()
81: templates[self.absolute_url()]=rendered
82: logging.debug("harvest:"+self.absolute_url())
83: transaction.commit()
84: return rendered
85: except:
86: logging.error("cannot harvest: %s"%self.absolute_url())
87:
88:
89:
90:
91:
92:
93: def manage_addMPIWGTemplateForm(self):
94: """Form for adding"""
95: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
96: return pt()
97:
98:
99:
100: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
101: "Add a Page Template with optional file content."
102: if type(MPIWGType)==StringType:
103: MPIWGTypes=[MPIWGType]
104: else:
105: MPIWGTypes=MPIWGType
106:
107: for singleType in MPIWGTypes:
108:
109:
110: if REQUEST is None:
111: self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
112: ob = getattr(self, id)
113:
114: if title:
115: ob.pt_setTitle(title)
116: return ob
117: else:
118: file = REQUEST.form.get('file')
119: headers = getattr(file, 'headers', None)
120: if headers is None or not file.filename:
121: zpt = MPIWGTemplate(id,MPIWGType=singleType)
122: else:
123: zpt = MPIWGTemplate(id, file, headers.get('content_type'))
124:
125: self._setObject(id, zpt)
126: ob = getattr(self, id)
127: if title:
128: ob.pt_setTitle(title)
129:
130: try:
131: u = self.DestinationURL()
132: except AttributeError:
133: u = REQUEST['URL1']
134:
135: ob = getattr(self, id)
136: ob.weight=weight
137:
138: REQUEST.RESPONSE.redirect(u+'/manage_main')
139: return ''
140:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>