Annotation of ECHO_content/ECHO_language.py, revision 1.8
1.1 dwinter 1: """Methoden fuer Language Technologies"""
1.2 dwinter 2:
1.7 dwinter 3: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
1.4 dwinter 4: from Products.ECHO_content.analyseAndTag.analyseAndTag import DonatusFile
1.7 dwinter 5: from OFS.SimpleItem import SimpleItem
6: from OFS.Folder import Folder
1.4 dwinter 7: import xml.parsers
1.7 dwinter 8: import os.path
9: from Globals import package_home
1.4 dwinter 10:
1.2 dwinter 11: class ECHO_language:
1.3 dwinter 12: """language methods"""
13:
1.4 dwinter 14:
1.7 dwinter 15: def tagLex(self,nr="1",id=None):
1.5 dwinter 16: """gerateword tags"""
1.7 dwinter 17:
1.4 dwinter 18:
1.7 dwinter 19: df=DonatusFile(txt=self.getPage(_pn=nr,_id=id),baseUri=self.baseUri)
1.4 dwinter 20:
1.5 dwinter 21: return df.convertedXML()
1.4 dwinter 22: #return DonatusFile(txt=self.getPage(_pn=nr)).convertedXML()
23:
1.7 dwinter 24: class Collection(SimpleItem):
25:
26: def __init__(self,id):
27: """initialise"""
28: self.id=id
29: self.entries=[]
30:
31:
32: def getEntries(self):
33: """get the entries"""
1.8 ! dwinter 34: entries=self.entries
! 35:
! 36: for entry in entries: #backward compatibility, cannot be removed a.s.a.p.
! 37: print entry
! 38: if entry.has_key('master') and (len(entry['master'])<3):
! 39: entry['master']=(entry['master'][0],entry['master'][1],'')
! 40: if entry.has_key('slave') and (len(entry['slave'])<3):
! 41: entry['slave']=(entry['slave'][0],entry['slave'][1],'')
! 42:
1.7 dwinter 43: return self.entries
44:
45: def deleteEntry(self,nr):
46: """delete an entry"""
47: del(self.entries[nr])
48:
49:
1.8 ! dwinter 50: def appendEntry(self,fn,id,type,pagelink):
1.7 dwinter 51: """append an entry"""
52: #check if last entry is complete
53: createNew=False
1.8 ! dwinter 54:
1.7 dwinter 55: if len(self.entries)==0: #noch gar kein Eintrag
56: createNew=True
57: else:
58: entry=self.entries[-1]
59: if entry.get('master',None) and entry.get('slave',None):
60: createNew=True
61: if createNew:
62:
63: self.entries.append({})
64: entry=self.entries[-1]
65: if type=="master":
1.8 ! dwinter 66: entry['master']=(fn,id,pagelink)
1.7 dwinter 67: elif type=="slave":
1.8 ! dwinter 68: entry['slave']=(fn,id,pagelink)
1.7 dwinter 69:
1.8 ! dwinter 70: entries=self.entries[0:]
! 71: entries[-1]=entry
! 72: self.entries=entries[0:]
1.7 dwinter 73:
74: class ECHO_linkCreator(Folder):
75: """creator for links"""
76:
77: meta_type="ECHO_linkCreator"
78:
79:
80:
81:
82: def getCollectionEntries(self,collection):
83: col=getattr(self,collection,None)
84: if not col:
85: return []
86:
87: return col.getEntries()
88:
89:
90: def index_html(self,collection=None):
91: """show create links"""
92: if not collection:
1.8 ! dwinter 93: return "no collection: need parameter collection=COLLECTION_NAME"
1.7 dwinter 94:
95:
96: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_linkCreator_main')).__of__(self)
97:
98: col=getattr(self,collection,None)
99: if not col:
100: return []
101:
102: masterUrl=getattr(col,'masterUrl','')
103: slaveUrl=getattr(col,'slaveUrl','')
104:
105: return pt(collection=collection,masterUrl=masterUrl,slaveUrl=slaveUrl)
106:
1.8 ! dwinter 107: def addEntry(self,collection,fn,id,type,pagelink,fromurl=None,RESPONSE=None,REQUEST=None):
1.7 dwinter 108: """add an entry"""
1.8 ! dwinter 109:
1.7 dwinter 110: col=getattr(self, collection,None)
111: if not col:
112: self._setObject(collection,Collection(collection))
113: col=getattr(self, collection)
1.8 ! dwinter 114:
! 115: col.appendEntry(fn,id,type,pagelink)
1.7 dwinter 116:
117: if fromurl and RESPONSE:
1.8 ! dwinter 118:
! 119: RESPONSE.setHeader("Expires",(DateTime()-1).rfc822())
! 120: RESPONSE.setHeader("Cache-Control", "no-cache")
1.7 dwinter 121: RESPONSE.redirect(fromurl)
1.8 ! dwinter 122:
1.7 dwinter 123: def removeEntry(self,collection,nr,RESPONSE=None):
124: """remove an entry"""
125: col=getattr(self, collection,None)
126: col.deleteEntry(nr)
127:
128: if RESPONSE:
129: RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
130:
131: def setUrls(self,collection,masterUrl,slaveUrl,RESPONSE=None):
132: """set the urls for the document viewer"""
133: col=getattr(self, collection,None)
134: setattr(col,'masterUrl',masterUrl)
135: setattr(col,'slaveUrl',slaveUrl)
136:
137: if RESPONSE:
138: RESPONSE.redirect(self.absolute_url()+"?collection="+collection)
139:
140:
141: #self.index_html(collection)
142:
143: def manage_addECHO_linkCreatorForm(self,RESPONSE=None):
144: """Form for adding"""
145: manage_addECHO_linkCreator(self,RESPONSE)
146:
147: def manage_addECHO_linkCreator(self,RESPONSE=None):
148: """Add an ECHO_main"""
149: id='linkCreator'
150: self._setObject(id,ECHO_linkCreator(id))
151:
152:
153: if RESPONSE is not None:
154: RESPONSE.redirect('manage_main')
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>