File:  [Repository] / MPIWGWeb / Attic / MPIWGFeature.py
Revision 1.1.2.1: 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.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>