--- ECHO_content/ECHO_language.py 2006/10/12 16:37:33 1.9 +++ ECHO_content/ECHO_language.py 2007/01/09 17:01:01 1.11 @@ -6,6 +6,7 @@ from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder import xml.parsers import os.path +import urlparse,urllib from Globals import package_home class ECHO_language: @@ -49,6 +50,15 @@ class Collection(SimpleItem): """delete an entry""" del(self.entries[nr]) + def changeEntry(self,nr,slaveUrl,masterID): + """change an entry, only slaveUrl""" + tmp=self.entries[nr] + tm=tmp['master'] + tmp['slave']=(slaveUrl,"","") + tmp['master']=(tm[0],tm[1],masterID) + entries=self.entries[0:] + entries[nr]=tmp + self.entries=entries[0:] def appendEntry(self,fn,id,type,pagelink): """append an entry""" @@ -89,7 +99,16 @@ class ECHO_linkCreator(Folder): return col.getEntries() + def getAllRefIDs(self,collection): + """return all refids""" + ret=[] + entries=self.getCollectionEntries(collection) + + for entry in entries: + ret.append('_pagelink='+entry['master'][2]) + return "&".join(ret) + def getCollectionXML(self,collection=None,RESPONSE=None): """exports the collection as an XML file""" if not collection: @@ -109,20 +128,31 @@ class ECHO_linkCreator(Folder): if entry.has_key('master'): ms=entry['master'] + + try: - ret+=""""""%(ms[0],ms[1]) - splitted=ms[2].split("/") - ret+=""""""%(splitted[0],splitted[-1]) - ret+="""""" + if urlparse.urlparse(ms[0])[0]=="http": # url + ret+=""""""%urllib.quote(ms[0]) + else: + ret+=""""""%(ms[0],ms[1]) + splitted=ms[2].split("/") + if (len(splitted)>3): + ret+=""""""%(splitted[0],splitted[3]) + + ret+="""""" except: #ohne pagelink& ret+=""""""%ms if entry.has_key('slave'): ms=entry['slave'] try: - ret+=""""""%(ms[0],ms[1]) - splitted=ms[2].split("/") - ret+=""""""%(splitted[0],splitted[-1]) - ret+="""""" + if urlparse.urlparse(ms[0])[0]=="http": # url + ret+=""""""%urllib.quote(ms[0]) + else: + ret+=""""""%(ms[0],ms[1]) + splitted=ms[2].split("/") + if (len(splitted)>3): + ret+=""""""%(splitted[0],splitted[3]) + ret+="""""" except: #ohne pagelink ret+=""""""%ms @@ -163,7 +193,16 @@ class ECHO_linkCreator(Folder): RESPONSE.setHeader("Expires",(DateTime()-1).rfc822()) RESPONSE.setHeader("Cache-Control", "no-cache") RESPONSE.redirect(fromurl) - + + + def changeEntry(self,collection,nr,slaveUrl,masterID,RESPONSE=None): + """change an entry 8only slaveUrl at the moment""" + col=getattr(self, collection,None) + col.changeEntry(nr,slaveUrl,masterID) + + if RESPONSE: + RESPONSE.redirect(self.absolute_url()+"?collection="+collection) + def removeEntry(self,collection,nr,RESPONSE=None): """remove an entry""" col=getattr(self, collection,None)