--- ECHO_content/ECHO_language.py 2006/10/11 16:55:26 1.8
+++ 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:
@@ -22,6 +23,10 @@ class ECHO_language:
#return DonatusFile(txt=self.getPage(_pn=nr)).convertedXML()
class Collection(SimpleItem):
+ def getCollectionXML(self,RESPONSE=None):
+
+ """get collection as xml"""
+ return self.aq_parent.getCollectionXML(collection=self.getId(),RESPONSE=RESPONSE)
def __init__(self,id):
"""initialise"""
@@ -32,7 +37,6 @@ class Collection(SimpleItem):
def getEntries(self):
"""get the entries"""
entries=self.entries
-
for entry in entries: #backward compatibility, cannot be removed a.s.a.p.
print entry
if entry.has_key('master') and (len(entry['master'])<3):
@@ -46,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"""
@@ -86,7 +99,68 @@ 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:
+ return "no collection: need parameter collection=COLLECTION_NAME"
+
+ i=0
+ ret=""
+ ret+=""""""
+ ret+=""""""
+ ret+="""%s"""%collection
+ ret+=""""""%self.getUrls(collection)[0]
+ ret+=""""""%self.getUrls(collection)[1]
+
+ for entry in self.getCollectionEntries(collection):
+ ret+=""""""%i
+ i+=1
+
+ if entry.has_key('master'):
+ ms=entry['master']
+
+
+ try:
+ if urlparse.urlparse(ms[0])[0]=="http": # url
+ ret+=""""""%urllib.quote(ms[0])
+ else:
+ ret+=""""""
+ except: #ohne pagelink&
+ ret+=""""""%ms
+ if entry.has_key('slave'):
+ ms=entry['slave']
+ try:
+ 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
+
+ ret+=""
+ ret+=""""""
+ if RESPONSE:
+ RESPONSE.setHeader("Content-Type","text/xml")
+ return ret
def index_html(self,collection=None):
"""show create links"""
if not collection:
@@ -119,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)
@@ -137,8 +220,12 @@ class ECHO_linkCreator(Folder):
if RESPONSE:
RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
-
- #self.index_html(collection)
+ def getUrls(self,collection,RESPONSE=None):
+ """set the urls for the document viewer"""
+ col=getattr(self, collection,None)
+ x=getattr(col,'masterUrl')
+ y=getattr(col,'slaveUrl')
+ return x,y
def manage_addECHO_linkCreatorForm(self,RESPONSE=None):
"""Form for adding"""