"""Methoden fuer Language Technologies""" from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.ECHO_content.analyseAndTag.analyseAndTag import DonatusFile from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder import xml.parsers import os.path from Globals import package_home class ECHO_language: """language methods""" def tagLex(self,nr="1",id=None): """gerateword tags""" df=DonatusFile(txt=self.getPage(_pn=nr,_id=id),baseUri=self.baseUri) return df.convertedXML() #return DonatusFile(txt=self.getPage(_pn=nr)).convertedXML() class Collection(SimpleItem): def __init__(self,id): """initialise""" self.id=id self.entries=[] def getEntries(self): """get the entries""" return self.entries def deleteEntry(self,nr): """delete an entry""" del(self.entries[nr]) def appendEntry(self,fn,id,type): """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: entry=self.entries[-1] if entry.get('master',None) and entry.get('slave',None): createNew=True if createNew: self.entries.append({}) entry=self.entries[-1] if type=="master": entry['master']=(fn,id) elif type=="slave": entry['slave']=(fn,id) self.entries[-1]=entry class ECHO_linkCreator(Folder): """creator for links""" meta_type="ECHO_linkCreator" def getCollectionEntries(self,collection): col=getattr(self,collection,None) if not col: return [] return col.getEntries() def index_html(self,collection=None): """show create links""" if not collection: return "no collection" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_linkCreator_main')).__of__(self) col=getattr(self,collection,None) if not col: return [] masterUrl=getattr(col,'masterUrl','') slaveUrl=getattr(col,'slaveUrl','') return pt(collection=collection,masterUrl=masterUrl,slaveUrl=slaveUrl) def addEntry(self,collection,fn,id,type,fromurl=None,RESPONSE=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) if fromurl and RESPONSE: RESPONSE.redirect(fromurl) def removeEntry(self,collection,nr,RESPONSE=None): """remove an entry""" col=getattr(self, collection,None) col.deleteEntry(nr) if RESPONSE: RESPONSE.redirect(self.absolute_url()+"?collection="+collection) def setUrls(self,collection,masterUrl,slaveUrl,RESPONSE=None): """set the urls for the document viewer""" col=getattr(self, collection,None) setattr(col,'masterUrl',masterUrl) setattr(col,'slaveUrl',slaveUrl) if RESPONSE: RESPONSE.redirect(self.absolute_url()+"?collection="+collection) #self.index_html(collection) def manage_addECHO_linkCreatorForm(self,RESPONSE=None): """Form for adding""" manage_addECHO_linkCreator(self,RESPONSE) def manage_addECHO_linkCreator(self,RESPONSE=None): """Add an ECHO_main""" id='linkCreator' self._setObject(id,ECHO_linkCreator(id)) if RESPONSE is not None: RESPONSE.redirect('manage_main')