view MPIWGLink.py @ 155:9e7bc0958fd8

fixed language switcher link.
author casties
date Mon, 03 Jun 2013 21:34:25 +0200
parents bca61e893fcc
children ee79f6ba8d01
line wrap: on
line source

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