File:  [Repository] / ECHO_content / ECHO_language.py
Revision 1.8: download - view: text, annotated - select for diffs - revision graph
Wed Oct 11 16:55:26 2006 UTC (17 years, 8 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
pagelink added in echo_languate / echo_xslt

"""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"""
             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):
             """delete an entry"""
             del(self.entries[nr])
           
             
         def appendEntry(self,fn,id,type,pagelink):
             """append an entry"""
             #check if last entry is complete
             createNew=False
            
             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,pagelink)
             elif type=="slave":
                 entry['slave']=(fn,id,pagelink)
             
             entries=self.entries[0:]
             entries[-1]=entry 
             self.entries=entries[0:]
             
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: need parameter collection=COLLECTION_NAME"
         
              
         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,pagelink,fromurl=None,RESPONSE=None,REQUEST=None):
         """add an entry"""
        
         col=getattr(self, collection,None)
         if not col:
             self._setObject(collection,Collection(collection))
             col=getattr(self, collection)
         
         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)
         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')      
         
         
         
         
         
         
         
         
         
         
         
         
         
         

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>