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:
81: rendered = self.pt_render()
82: templates[self.absolute_url()]=rendered
83: logging.debug("harvest:"+self.absolute_url())
84: transaction.commit()
85: return rendered
86: except:
87: logging.error("cannot harvest: %s"%self.absolute_url())
88:
89:
90:
91:
92:
93:
94: def manage_addMPIWGTemplateForm(self):
95: """Form for adding"""
96: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
97: return pt()
98:
99:
100:
101: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
102: "Add a Page Template with optional file content."
103: if type(MPIWGType)==StringType:
104: MPIWGTypes=[MPIWGType]
105: else:
106: MPIWGTypes=MPIWGType
107:
108: for singleType in MPIWGTypes:
109:
110:
111: if REQUEST is None:
112: self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
113: ob = getattr(self, id)
114:
115: if title:
116: ob.pt_setTitle(title)
117: return ob
118: else:
119: file = REQUEST.form.get('file')
120: headers = getattr(file, 'headers', None)
121: if headers is None or not file.filename:
122: zpt = MPIWGTemplate(id,MPIWGType=singleType)
123: else:
124: zpt = MPIWGTemplate(id, file, headers.get('content_type'))
125:
126: self._setObject(id, zpt)
127: ob = getattr(self, id)
128: if title:
129: ob.pt_setTitle(title)
130:
131: try:
132: u = self.DestinationURL()
133: except AttributeError:
134: u = REQUEST['URL1']
135:
136: ob = getattr(self, id)
137: ob.weight=weight
138:
139: REQUEST.RESPONSE.redirect(u+'/manage_main')
140: return ''
141:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>