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