--- ECHO_content/ECHO_language.py 2006/09/14 14:31:53 1.7
+++ ECHO_content/ECHO_language.py 2006/10/12 16:37:33 1.9
@@ -22,6 +22,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"""
@@ -31,6 +35,14 @@ 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):
+ entry['master']=(entry['master'][0],entry['master'][1],'')
+ if entry.has_key('slave') and (len(entry['slave'])<3):
+ entry['slave']=(entry['slave'][0],entry['slave'][1],'')
+
return self.entries
def deleteEntry(self,nr):
@@ -38,11 +50,11 @@ class Collection(SimpleItem):
del(self.entries[nr])
- def appendEntry(self,fn,id,type):
+ def appendEntry(self,fn,id,type,pagelink):
"""append an entry"""
#check if last entry is complete
createNew=False
- print "Here",fn,id,type
+
if len(self.entries)==0: #noch gar kein Eintrag
createNew=True
else:
@@ -54,11 +66,13 @@ class Collection(SimpleItem):
self.entries.append({})
entry=self.entries[-1]
if type=="master":
- entry['master']=(fn,id)
+ entry['master']=(fn,id,pagelink)
elif type=="slave":
- entry['slave']=(fn,id)
+ entry['slave']=(fn,id,pagelink)
- self.entries[-1]=entry
+ entries=self.entries[0:]
+ entries[-1]=entry
+ self.entries=entries[0:]
class ECHO_linkCreator(Folder):
"""creator for links"""
@@ -75,11 +89,52 @@ class ECHO_linkCreator(Folder):
return col.getEntries()
-
+
+ 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:
+ ret+=""""""%(ms[0],ms[1])
+ splitted=ms[2].split("/")
+ ret+=""""""%(splitted[0],splitted[-1])
+ 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+=""""""
+ 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:
- return "no collection"
+ return "no collection: need parameter collection=COLLECTION_NAME"
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_linkCreator_main')).__of__(self)
@@ -93,18 +148,22 @@ class ECHO_linkCreator(Folder):
return pt(collection=collection,masterUrl=masterUrl,slaveUrl=slaveUrl)
- def addEntry(self,collection,fn,id,type,fromurl=None,RESPONSE=None):
+ def addEntry(self,collection,fn,id,type,pagelink,fromurl=None,RESPONSE=None,REQUEST=None):
"""add an entry"""
- print "hello"
+
col=getattr(self, collection,None)
if not col:
self._setObject(collection,Collection(collection))
col=getattr(self, collection)
- print "XXXXX2",col
- col.appendEntry(fn,id,type)
+
+ col.appendEntry(fn,id,type,pagelink)
if fromurl and RESPONSE:
+
+ RESPONSE.setHeader("Expires",(DateTime()-1).rfc822())
+ RESPONSE.setHeader("Cache-Control", "no-cache")
RESPONSE.redirect(fromurl)
+
def removeEntry(self,collection,nr,RESPONSE=None):
"""remove an entry"""
col=getattr(self, collection,None)
@@ -122,8 +181,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"""