diff MPIWGLink.py @ 0:bca61e893fcc

first checkin of MPIWGWeb r2 branch from CVS into mercurial
author casties
date Thu, 10 Jan 2013 17:52:13 +0100
parents
children ee79f6ba8d01
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MPIWGLink.py	Thu Jan 10 17:52:13 2013 +0100
@@ -0,0 +1,121 @@
+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')
+