version 1.1, 2008/06/24 11:16:26
|
version 1.1.2.5, 2008/09/03 21:16:40
|
Line 0
|
Line 1
|
|
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 * |
|
|
|
|
|
def getBreadcrumbs(self): |
|
"""return list of breadcrumbs from here to the root""" |
|
crumbs = [(self.title, self.absolute_url(), self)] |
|
parent = self.aq_parent |
|
if hasattr(parent, 'getBreadcrumbs'): |
|
if self.title: |
|
return parent.getBreadcrumbs() + crumbs |
|
else: |
|
# if there's no title, skip this level |
|
return parent.getBreadcrumbs() |
|
|
|
return crumbs |
|
|
|
|
|
def getSection(self): |
|
"""returns the current section name""" |
|
p = self |
|
sec = None |
|
# descend parents to the root (and remember the last id) |
|
while p is not None and p.meta_type != 'MPIWGRoot': |
|
sec = p.getId() |
|
p = p.aq_parent |
|
|
|
return sec |
|
|
|
|
|
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 |
|
|
|
def harvest_page(self): |
|
"""harvest main""" |
|
try: |
|
return self.pt_render() |
|
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 '' |
|
|
|
|
|
|
|
class MPIWGFolder(Folder): |
|
"""special Folder object for MPIWG website """ |
|
|
|
meta_type="MPIWGFolder" |
|
|
|
manage_options=Folder.manage_options+( |
|
{'label':'Change Weight','action':'changeWeightForm'}, |
|
{'label':'Main Config','action':'changeForm'}, |
|
) |
|
|
|
changeWeightForm = PageTemplateFile('zpt/MPIWGFolderChangeWeight', globals()) |
|
changeForm = PageTemplateFile('zpt/MPIWGFolderConfig', globals()) |
|
|
|
def __init__(self, id, title=None, weight=0, canonicalName=None): |
|
self.id = str(id) |
|
self.weight = weight |
|
if title is None: |
|
self.title = id |
|
else: |
|
self.title = title |
|
|
|
if canonicalName is None: |
|
self.canonicalName = self.id |
|
else: |
|
self.canonicalName = canonicalName |
|
|
|
def changeWeight(self,weight,RESPONSE=None): |
|
"""change weight""" |
|
self.weight=weight |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
def changeMPIWGFolder(self, title=None, weight=None, canonicalName=None, RESPONSE=None): |
|
"""change everything""" |
|
if title is not None: |
|
self.title = title |
|
if weight is not None: |
|
self.weight = weight |
|
if canonicalName is not None: |
|
self.canonicalName = canonicalName |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
getBreadcrumbs = getBreadcrumbs |
|
|
|
getSection = getSection |
|
|
|
|
|
def manage_addMPIWGFolderForm(self): |
|
"""Form for adding""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFolder.zpt')).__of__(self) |
|
return pt() |
|
|
|
def manage_addMPIWGFolder(self, id, title=None,weight=0,RESPONSE=None): |
|
"Add a MPIWG Folder." |
|
newObj=MPIWGFolder(id,title,weight) |
|
self.Destination()._setObject(id,newObj) |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
class MPIWGFeature(Folder): |
|
"""special object for feature texts on the MPIWG website """ |
|
|
|
meta_type="MPIWGFeature" |
|
|
|
manage_options=Folder.manage_options+( |
|
{'label':'Change Weight','action':'changeWeightForm'}, |
|
{'label':'Main Config','action':'changeForm'}, |
|
) |
|
|
|
changeWeightForm = PageTemplateFile('zpt/MPIWGFeatureChangeWeight', globals()) |
|
changeForm = PageTemplateFile('zpt/MPIWGFeatureConfig', globals()) |
|
|
|
def __init__(self, id, title=None, weight=0): |
|
self.id = str(id) |
|
self.weight = weight |
|
if title is None: |
|
self.title = id |
|
else: |
|
self.title = title |
|
|
|
# add language folder and sample templates |
|
self.manage_addFolder('en') |
|
folder = getattr(self, 'en') |
|
introid = 'intro.pt' |
|
folder._setObject(introid, ZopePageTemplate(introid)) |
|
intro = getattr(folder,introid) |
|
intro.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_intro.zpt')).read(),'text/html') |
|
mainid = 'main.pt' |
|
folder._setObject(mainid, ZopePageTemplate(mainid)) |
|
main = getattr(folder,mainid) |
|
main.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_main.zpt')).read(),'text/html') |
|
|
|
|
|
def index_html(self): |
|
"""default index page""" |
|
return self.getMain() |
|
|
|
def getIntro(self, **args): |
|
"""returns the intro as PageTemplate""" |
|
pt = getattr(self.en, 'intro.pt') |
|
return pt(**args) |
|
|
|
def getMain(self, **args): |
|
"""returns the main part as PageTemplate""" |
|
pt = getattr(self.en, 'main.pt') |
|
return pt(**args) |
|
|
|
def getFrontpageImg(self): |
|
"""returns the image object for the frontpage""" |
|
img = getattr(self, 'img-frontpage.jpg') |
|
return img |
|
|
|
def getFrontpageImgUrl(self): |
|
"""returns the URL of the image object for the frontpage""" |
|
img = getattr(self, 'img-frontpage.jpg') |
|
return img.absolute_url() |
|
|
|
def getThumbImg(self): |
|
"""returns the image object for the frontpage thumbnail""" |
|
img = getattr(self, 'img-thumb.jpg') |
|
return img |
|
|
|
def getThumbImgUrl(self): |
|
"""returns the URL of the image object for the frontpage thumbnail""" |
|
img = getattr(self, 'img-thumb.jpg') |
|
return img.absolute_url() |
|
|
|
|
|
def changeWeight(self,weight,RESPONSE=None): |
|
"""change weight""" |
|
self.weight=weight |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
def changeMPIWGFeature(self, title=None, weight=None, RESPONSE=None): |
|
"""change everything""" |
|
if title is not None: |
|
self.title = title |
|
if weight is not None: |
|
self.weight = weight |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
getBreadcrumbs = getBreadcrumbs |
|
|
|
getSection = getSection |
|
|
|
|
|
def manage_addMPIWGFeatureForm(self): |
|
"""Form for adding""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFeature.zpt')).__of__(self) |
|
return pt() |
|
|
|
def manage_addMPIWGFeature(self, id, title=None,weight=0,RESPONSE=None): |
|
"Add a MPIWG Feature object" |
|
newObj=MPIWGFeature(id,title,weight) |
|
self.Destination()._setObject(id,newObj) |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|