File:  [Repository] / MPIWGWeb / Attic / MPIWGTemplate.py
Revision 1.1.2.8: download - view: text, annotated - select for diffs - revision graph
Thu Apr 16 15:55:19 2009 UTC (15 years, 2 months ago) by casties
Branches: r2
refactored MPIWGFeature and -Folder to have their own files
getFeatures takes number of features to return

    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>