from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder from Products.ZCatalog.CatalogPathAwareness import CatalogAware from OFS.Image import Image from Globals import package_home import urllib import MPIWGStaff import string import re import os from types import * import logging import xmlhelper # Methoden zur Verwaltung der projekt xml from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder from Products.ZSQLMethods.SQL import SQLConnectionIDs from AccessControl import ClassSecurityInfo from bibliography import * import time import xml.dom.minidom import sys from Ft.Xml.XPath import Evaluate from Ft.Xml.XPath.Context import Context from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print from Ft.Xml import EMPTY_NAMESPACE import copy import updatePersonalWWW import MPIWGStaff from MPIWGHelper import * class MPIWGLink(SimpleItem): """create a symbolic link to another page""" meta_type="MPIWGLink" def isActiveItem(self): """teste ob ausgewaehlt""" #url1 beim link anstelle von url1, da link jeweils index_html als url hat. if self.absolute_url()==self.REQUEST['URL1']: return "aktiv" else: return "" def __init__(self,id,link,title='',weight=''): """init mpiwglink""" self.id=id self.link=link self.title=title self.weight=weight def getObj(self): """bekomme original""" ## objpath=self.link.replace("/",".") ## if objpath[0]!=".": ## objpath="."+objpath ## print objpath ## return eval("self"+objpath) splitted=self.link.lstrip().split("/") obj=self for x in splitted: if not x=="": obj=getattr(obj,x) return obj def getWeight(self): if self.linkWeight and self.linkWeight!="": return self.linkWeight else: return self.getObj().weight manage_options=( {'label':'main config','action':'changeLinkForm'}, )+SimpleItem.manage_options def changeLinkForm(self): """change MPIWG link""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGLinkChange.zpt')).__of__(self) return pt() def changeLink(self,link,title,weight,RESPONSE=None): """change links""" self.link=link self.title=title self.weight=weight if RESPONSE is not None: RESPONSE.redirect('manage') def index_html(self,**argv): """index""" try: return self.getObj().pt_render(extra_context={'here':self}) except: self.REQUEST.RESPONSE.redirect(self.getObj().absolute_url()) def manage_addMPIWGLinkForm(self): """Form for adding link""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGLink.zpt')).__of__(self) return pt() def manage_addMPIWGLink(self,id,link,title,weight,RESPONSE=None): """add link""" newObj=MPIWGLink(id,link,title,weight) self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')