1: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
2: from Products.PageTemplates.PageTemplate import PageTemplate
3: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
4: from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
5: from Products.ZCatalog.CatalogPathAwareness import CatalogAware
6: from OFS.Image import Image
7: from Globals import package_home
8: import urllib
9: import MPIWGStaff
10: import string
11: import re
12: import os
13: from types import *
14: import logging
15: import xmlhelper # Methoden zur Verwaltung der projekt xml
16: from OFS.SimpleItem import SimpleItem
17: from OFS.Folder import Folder
18: from Products.ZSQLMethods.SQL import SQLConnectionIDs
19: from AccessControl import ClassSecurityInfo
20: from bibliography import *
21: import time
22: import xml.dom.minidom
23: import sys
24: from Ft.Xml.XPath import Evaluate
25: from Ft.Xml.XPath.Context import Context
26: from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print
27: from Ft.Xml import EMPTY_NAMESPACE
28: import copy
29: import updatePersonalWWW
30: import MPIWGStaff
31:
32: from MPIWGHelper import *
33: class MPIWGLink(SimpleItem):
34: """create a symbolic link to another page"""
35:
36: meta_type="MPIWGLink"
37:
38: def isActiveItem(self):
39: """teste ob ausgewaehlt"""
40: #url1 beim link anstelle von url1, da link jeweils index_html als url hat.
41: if self.absolute_url()==self.REQUEST['URL1']:
42: return "aktiv"
43: else:
44: return ""
45:
46: def __init__(self,id,link,title='',weight=''):
47: """init mpiwglink"""
48: self.id=id
49: self.link=link
50: self.title=title
51: self.weight=weight
52:
53: def getObj(self):
54: """bekomme original"""
55: ## objpath=self.link.replace("/",".")
56: ## if objpath[0]!=".":
57: ## objpath="."+objpath
58:
59: ## print objpath
60: ## return eval("self"+objpath)
61:
62:
63: splitted=self.link.lstrip().split("/")
64: obj=self
65: for x in splitted:
66: if not x=="":
67: obj=getattr(obj,x)
68:
69: return obj
70:
71: def getWeight(self):
72: if self.linkWeight and self.linkWeight!="":
73: return self.linkWeight
74: else:
75: return self.getObj().weight
76:
77: manage_options=(
78: {'label':'main config','action':'changeLinkForm'},
79: )+SimpleItem.manage_options
80:
81:
82: def changeLinkForm(self):
83: """change MPIWG link"""
84: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGLinkChange.zpt')).__of__(self)
85: return pt()
86:
87: def changeLink(self,link,title,weight,RESPONSE=None):
88: """change links"""
89: self.link=link
90: self.title=title
91: self.weight=weight
92:
93: if RESPONSE is not None:
94: RESPONSE.redirect('manage')
95:
96: def index_html(self,**argv):
97: """index"""
98:
99:
100:
101: try:
102: return self.getObj().pt_render(extra_context={'here':self})
103: except:
104: self.REQUEST.RESPONSE.redirect(self.getObj().absolute_url())
105:
106:
107:
108: def manage_addMPIWGLinkForm(self):
109: """Form for adding link"""
110: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGLink.zpt')).__of__(self)
111: return pt()
112:
113: def manage_addMPIWGLink(self,id,link,title,weight,RESPONSE=None):
114: """add link"""
115: newObj=MPIWGLink(id,link,title,weight)
116:
117: self._setObject(id,newObj)
118:
119: if RESPONSE is not None:
120: RESPONSE.redirect('manage_main')
121:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>