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:
12:
13:
14: class MPIWGTemplate(ZopePageTemplate):
15: """Create a layout Template for different purposes"""
16:
17: meta_type="MPIWGTemplate"
18:
19: manage_options=ZopePageTemplate.manage_options+(
20: {'label':'Change Weight','action':'changeWeightForm'},
21: )
22:
23: def changeWeightForm(self):
24: """change weight form"""
25: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self)
26: return pt()
27:
28: def changeWeight(self,weight,RESPONSE=None):
29: """change weight"""
30: self.weight=weight
31: if RESPONSE is not None:
32: RESPONSE.redirect('manage')
33:
34:
35: def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
36: self.id = str(id)
37: self.ZBindings_edit(self._default_bindings)
38: if text is None:
39: self._default_content_fn = os.path.join(package_home(globals()),
40: 'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType)
41: text = open(self._default_content_fn).read()
42: self.pt_edit(text, content_type)
43:
44:
45: def isActiveItem(self):
46: """teste ob ausgewaehlt"""
47: if self.absolute_url()==self.REQUEST['URL']:
48: return "aktiv"
49: else:
50: return ""
51:
52: getBreadcrumbs = getBreadcrumbs
53: getSection = getSection
54: getSubSection = getSubSection
55:
56: def harvest_page(self):
57: """harvest main"""
58: try:
59: return self.pt_render()
60: except:
61: logging.error("cannot harvest: %s"%self.absolute_url())
62:
63:
64:
65: def manage_addMPIWGTemplateForm(self):
66: """Form for adding"""
67: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
68: return pt()
69:
70:
71:
72: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
73: "Add a Page Template with optional file content."
74: if type(MPIWGType)==StringType:
75: MPIWGTypes=[MPIWGType]
76: else:
77: MPIWGTypes=MPIWGType
78:
79: for singleType in MPIWGTypes:
80:
81:
82: if REQUEST is None:
83: self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
84: ob = getattr(self, id)
85:
86: if title:
87: ob.pt_setTitle(title)
88: return ob
89: else:
90: file = REQUEST.form.get('file')
91: headers = getattr(file, 'headers', None)
92: if headers is None or not file.filename:
93: zpt = MPIWGTemplate(id,MPIWGType=singleType)
94: else:
95: zpt = MPIWGTemplate(id, file, headers.get('content_type'))
96:
97: self._setObject(id, zpt)
98: ob = getattr(self, id)
99: if title:
100: ob.pt_setTitle(title)
101:
102: try:
103: u = self.DestinationURL()
104: except AttributeError:
105: u = REQUEST['URL1']
106:
107: ob = getattr(self, id)
108: ob.weight=weight
109:
110: REQUEST.RESPONSE.redirect(u+'/manage_main')
111: return ''
112:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>