Diff for /ECHO_content/VLPExtension.py between versions 1.25 and 1.29

version 1.25, 2004/09/09 16:56:37 version 1.29, 2004/10/13 14:55:15
Line 2  from Products.ECHO_content.ECHO_collecti Line 2  from Products.ECHO_content.ECHO_collecti
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
   from OFS.Image import File
 try:  try:
     from Products.zogiLib import zogiLib      from Products.zogiLib import zogiLib
 except:  except:
Line 11  except: Line 11  except:
 import xml.dom.minidom  import xml.dom.minidom
 import urllib  import urllib
 import xmlrpclib  import xmlrpclib
   import vlp_xmlhelpers
   from types import *
   
   
   
Line 27  def lemmatize(str): Line 28  def lemmatize(str):
   
                   
 def makeXML(str):  def makeXML(str):
         
         try:          try:
             dom=xml.dom.minidom.parseString(str)              dom=xml.dom.minidom.parseString(str)
             return str              return str
         except:          except:
                           str=str.replace("& ","& ")
             return """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><page>              return """<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><page>
                       %s                        %s
                   </page>"""%str                    </page>"""%str
                   
                   
           
 def getText(nodelist):  def getText(nodelist):
   
     rc = ""      rc = ""
Line 45  def getText(nodelist): Line 48  def getText(nodelist):
            rc = rc + node.data             rc = rc + node.data
     return rc      return rc
   
   class sendMailForm(ZopePageTemplate):
       """sendMailForm"""
       meta_type="sendMailForm"
   
       _default_content_fn = os.path.join(package_home(globals()), 'vlp/sendMail_template.zpt')
   
       manage_options = ZopePageTemplate.manage_options+(
           {'label':'Main Config','action':'main_configForm'},
           )
   
       main_configForm = PageTemplateFile(
       'vlp/changeSendMailForm', globals())
   
       def main_config(self, toAddrs,mailServer, subjectAdd=None, RESPONSE=None):
           """main_config"""
           self.toAddrs=toAddrs.split("\n")
           self.mailServer=mailServer
           self.subjectAdd=subjectAdd
           if RESPONSE:
               RESPONSE.redirect('manage_main')
   
       def sendForm(self,fromaddr,subject,content,nextPage="index_html",RESPONSE=None):
           """sendform"""
           fromaddr=fromaddr.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden
           subject=subject.strip("\r\n\t") # sicherstellen dass keine zusaetzlichen headerzeilen eingefuegt werden
           toaddrs=self.toAddrs
   
           subject="%s %s"%(self.subjectAdd,subject)
           
           msg = ("From: %s\r\nSubject: %s\r\nTo: %s\r\n\r\n"
                  % (fromaddr, subject, ", ".join(toaddrs)))
           server = smtplib.SMTP(self.mailServer)
               #server.set_debuglevel(1)
           msg=msg+content
           server.sendmail(fromaddr, toaddrs, msg)
           server.quit()
   
           if RESPONSE:
               RESPONSE.redirect(nextPage)
   
   manage_addSendMailFormForm = PageTemplateFile(
       'vlp/addSendMailForm', globals(), __name__='manage_addSendMailFormFrom')
   
   from urllib import quote
   
   def manage_addSendMailForm(self, id, toAddrs,mailServer, title=None, text=None, subjectAdd=None,
                              REQUEST=None, submit=None):
       "Add a Page Template with optional file content."
       toAddrsList=toAddrs.split("\n")
       id = str(id)
       if REQUEST is None:
           self._setObject(id, sendMailForm(id, text))
           ob = getattr(self, id)
           if title:
               ob.pt_setTitle(title)
       setattr(ob,'toAddrs',toAddrsList)
       setattr(ob,'mailServer',mailServer)
       setattr(ob,'subjectAdd',subjectAdd)
           return ob
       else:
           file = REQUEST.form.get('file')
           headers = getattr(file, 'headers', None)
           if headers is None or not file.filename:
               zpt = sendMailForm(id)
           else:
               zpt = sendMailForm(id, file, headers.get('content_type'))
   
           self._setObject(id, zpt)
   
           try:
               u = self.DestinationURL()
           except AttributeError:
               u = REQUEST['URL1']
   
           if submit == " Add and Edit ":
               u = "%s/%s" % (u, quote(id))
           
       ob = getattr(self, id)
           if title:
               ob.pt_setTitle(title)
           
       setattr(ob,'toAddrs',toAddrsList)
       setattr(ob,'mailServer',mailServer)
       setattr(ob,'subjectAdd',subjectAdd)
           REQUEST.RESPONSE.redirect(u+'/manage_main')
       return ''
   
       
 class VLP_essay(Folder):  class VLP_essay(Folder):
     """classe für VLP essays"""      """classe für VLP essays"""
   
Line 132  class VLP_essay(Folder): Line 223  class VLP_essay(Folder):
         pages.sort(sortFind)          pages.sort(sortFind)
         #print str(pages[int(pagenum)][1]())          #print str(pages[int(pagenum)][1]())
         if pages[int(pagenum)-1][1].meta_type=='File':          if pages[int(pagenum)-1][1].meta_type=='File':
           
         #return makeXML(str(pages[int(pagenum)-1][1]))          #return makeXML(str(pages[int(pagenum)-1][1]))
         print "A"          #txt=pages[int(pagenum)-1][1].data.decode('utf-8')
         return self.xml2html(makeXML(str(pages[int(pagenum)-1][1])),quote="no")          txt=pages[int(pagenum)-1][1].data
           #print txt.encode('utf-8')
           
           return self.xml2html(makeXML(txt),quote="no")
         else:          else:
         print "B"          
         #return makeXML(str(pages[int(pagenum)-1][1]))          
   
         return self.xml2html(makeXML(pages[int(pagenum)-1][1]()),quote="no")          return self.xml2html(makeXML(pages[int(pagenum)-1][1]()),quote="no")
                   
     def nextPage(self,pagenum,url):      def nextPage(self,pagenum,url):
Line 180  def manage_addVLP_essay(self, id,title,l Line 276  def manage_addVLP_essay(self, id,title,l
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
           
   
   class VLP_encyclopaedia(VLP_essay):
       """essay"""
   
       meta_type="VLP_encyclopaedia"
       
       manage_options = VLP_essay.manage_options+(
           {'label':'Load File','action':'loadNewFileForm'},
           )
   
       
       def loadNewFileForm(self):
           """Neues XML-File einlesen"""
           pt=PageTemplateFile('Products/ECHO_content/vlp/VLP_newfile.zpt').__of__(self)
           return pt()
   
       def loadNewFile(self,RESPONSE=None):
           """einlesen des neuen files"""
           fileupload=self.REQUEST['fileupload']
           if fileupload:
               file_name=fileupload.filename
               filedata=fileupload.read()
   
               argv=vlp_xmlhelpers.proj2hash(self,filedata)
               textsStr=string.join(argv['text']).encode('utf-8')
               
               texts=textsStr.split("<pb/>")
               
               i=0
               for text in texts:
                   i+=1
                   pageName='page%03d.xml'%i
                   pages=self.ZopeFind(self,obj_ids=[pageName])
                   if pages:
                       pages[0][1].update_data(text)
   
                   else:
                       zt=File(pageName,pageName,text,content_type="text/plain")
                       self._setObject(pageName,zt)
                   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
               
       
   def manage_addVLP_encycForm(self):
       """Form for adding"""
       pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_encyc.zpt').__of__(self)
       return pt()
   
   def manage_addVLP_encyc(self, id,title,label,RESPONSE=None):
       """add the copyright"""
   
       
       self._setObject(id, VLP_encyclopaedia(id, title,label))
   
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
       
   
 class VLP_collection(ECHO_collection):  class VLP_collection(ECHO_collection):
     """VLP spezifische Erweiterung der Collection"""      """VLP spezifische Erweiterung der Collection"""
Line 348  class VLP_resource(ECHO_resource): Line 501  class VLP_resource(ECHO_resource):
         """show the rendered file"""          """show the rendered file"""
   
         if self.REQUEST.get('p',None):          if self.REQUEST.get('p',None):
             self.REQUEST.set('pn',self.file2page(self.REQUEST.get('p',None)))              #self.REQUEST.set('pn',self.file2page(self.REQUEST.get('p',None)))
           self.REQUEST.RESPONSE.redirect(self.REQUEST['URL']+"?pn="+self.file2page(self.REQUEST.get('p',None)))
   
                         
     if hasattr(self,'libraryTemplate.html'):      if hasattr(self,'libraryTemplate.html'):
         return getattr(self,'libraryTemplate.html')()          return getattr(self,'libraryTemplate.html')()

Removed from v.1.25  
changed lines
  Added in v.1.29


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