1: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
2: from Globals import package_home
3: import string
4: import re
5: import os
6: import logging
7: from OFS.Folder import Folder
8: from AccessControl import ClassSecurityInfo
9: from MPIWGHelper import *
10:
11: class MPIWGFeature(Folder):
12: """special object for feature texts on the MPIWG website """
13:
14: meta_type="MPIWGFeature"
15:
16: manage_options=Folder.manage_options+(
17: {'label':'Change Weight','action':'changeWeightForm'},
18: {'label':'Main Config','action':'changeForm'},
19: )
20:
21: changeWeightForm = PageTemplateFile('zpt/MPIWGFeatureChangeWeight', globals())
22: changeForm = PageTemplateFile('zpt/MPIWGFeatureConfig', globals())
23:
24: def __init__(self, id, title=None, weight=0):
25: self.id = str(id)
26: self.weight = weight
27: if title is None:
28: self.title = id
29: else:
30: self.title = title
31:
32: # add language folder and sample templates
33: self.manage_addFolder('en')
34: folder = getattr(self, 'en')
35: introid = 'intro.pt'
36: folder._setObject(introid, ZopePageTemplate(introid))
37: intro = getattr(folder,introid)
38: intro.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_intro.zpt')).read(),'text/html')
39: mainid = 'main.pt'
40: folder._setObject(mainid, ZopePageTemplate(mainid))
41: main = getattr(folder,mainid)
42: main.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_main.zpt')).read(),'text/html')
43:
44:
45: def index_html(self):
46: """default index page"""
47: return self.getMain()
48:
49: def getFullTitle(self):
50: """returns the full title (from main.pt)"""
51: # get Language from MPIWGRoot
52: lang = self.getLang()
53: dir = getattr(self, lang, self.en)
54: pt = getattr(dir, 'main.pt')
55: t = pt.title
56: if not t:
57: t = self.title
58:
59: return t
60:
61: def getIntro(self, **args):
62: """returns the intro as PageTemplate"""
63: # get Language from MPIWGRoot
64: lang = self.getLang()
65: dir = getattr(self, lang, self.en)
66: pt = getattr(dir, 'intro.pt')
67: return pt(**args)
68:
69: def getMain(self, **args):
70: """returns the main part as PageTemplate"""
71: # get Language from MPIWGRoot
72: lang = self.getLang()
73: dir = getattr(self, lang, self.en)
74: pt = getattr(dir, 'main.pt')
75: return pt(**args)
76:
77: def getFrontpageImg(self):
78: """returns the image object for the frontpage"""
79: img = getattr(self, 'img-frontpage.jpg')
80: return img
81:
82: def getFrontpageImgUrl(self):
83: """returns the URL of the image object for the frontpage"""
84: img = getattr(self, 'img-frontpage.jpg')
85: return img.absolute_url()
86:
87: def getFrontpageThumb(self):
88: """returns the image object for the frontpage thumbnail"""
89: img = getattr(self, 'img-frontthumb.jpg')
90: return img
91:
92: def getFrontpageThumbUrl(self):
93: """returns the URL of the image object for the frontpage thumbnail"""
94: img = getattr(self, 'img-frontthumb.jpg')
95: return img.absolute_url()
96:
97: def getThumbImg(self):
98: """returns the image object for the sidebar thumbnail"""
99: img = getattr(self, 'img-thumb.jpg')
100: return img
101:
102: def getThumbImgUrl(self):
103: """returns the URL of the image object for the sidebar thumbnail"""
104: img = getattr(self, 'img-thumb.jpg')
105: return img.absolute_url()
106:
107: def changeWeight(self,weight,RESPONSE=None):
108: """change weight"""
109: self.weight=weight
110: if RESPONSE is not None:
111: RESPONSE.redirect('manage_main')
112:
113: def changeMPIWGFeature(self, title=None, weight=None, RESPONSE=None):
114: """change everything"""
115: if title is not None:
116: self.title = title
117: if weight is not None:
118: self.weight = weight
119: if RESPONSE is not None:
120: RESPONSE.redirect('manage_main')
121:
122: def getBreadcrumbs(self):
123: """return list of breadcrumbs from here to the root"""
124: crumbs = [(self.getFullTitle(), self.absolute_url(), self)]
125: parent = self.aq_parent
126: if hasattr(parent, 'getBreadcrumbs'):
127: if self.title:
128: return parent.getBreadcrumbs() + crumbs
129: else:
130: # if there's no title, skip this level
131: return parent.getBreadcrumbs()
132:
133: return crumbs
134:
135: getSection = getSection
136:
137: getSubSection = getSubSection
138:
139:
140: def manage_addMPIWGFeatureForm(self):
141: """Form for adding"""
142: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFeature.zpt')).__of__(self)
143: return pt()
144:
145: def manage_addMPIWGFeature(self, id, title=None,weight=0,RESPONSE=None):
146: "Add a MPIWG Feature object"
147: newObj=MPIWGFeature(id,title,weight)
148: self.Destination()._setObject(id,newObj)
149: if RESPONSE is not None:
150: RESPONSE.redirect('manage_main')
151:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>