File:  [Repository] / MPIWGWeb / Attic / MPIWGLink.py
Revision 1.1.2.1: download - view: text, annotated - select for diffs - revision graph
Tue Jun 24 11:16:26 2008 UTC (15 years, 11 months ago) by dwinter
Branches: r2
MPIWGProducts in einzelne Teile zerlegt, so dass alle Hauptklassen nun in einzelnen Files sind.

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')


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>