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

    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:          

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