![]() ![]() | ![]() |
pagelink added in echo_languate / echo_xslt
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: 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: 43: return self.entries 44: 45: def deleteEntry(self,nr): 46: """delete an entry""" 47: del(self.entries[nr]) 48: 49: 50: def appendEntry(self,fn,id,type,pagelink): 51: """append an entry""" 52: #check if last entry is complete 53: createNew=False 54: 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": 66: entry['master']=(fn,id,pagelink) 67: elif type=="slave": 68: entry['slave']=(fn,id,pagelink) 69: 70: entries=self.entries[0:] 71: entries[-1]=entry 72: self.entries=entries[0:] 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: 93: return "no collection: need parameter collection=COLLECTION_NAME" 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: 107: def addEntry(self,collection,fn,id,type,pagelink,fromurl=None,RESPONSE=None,REQUEST=None): 108: """add an entry""" 109: 110: col=getattr(self, collection,None) 111: if not col: 112: self._setObject(collection,Collection(collection)) 113: col=getattr(self, collection) 114: 115: col.appendEntry(fn,id,type,pagelink) 116: 117: if fromurl and RESPONSE: 118: 119: RESPONSE.setHeader("Expires",(DateTime()-1).rfc822()) 120: RESPONSE.setHeader("Cache-Control", "no-cache") 121: RESPONSE.redirect(fromurl) 122: 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: