Diff for /ECHO_content/ECHO_collection.py between versions 1.172 and 1.180

version 1.172, 2004/10/04 12:57:19 version 1.180, 2004/10/19 18:44:26
Line 31  from Globals import Persistent, package_ Line 31  from Globals import Persistent, package_
 from Acquisition import Implicit  from Acquisition import Implicit
 from ECHO_helpers import displayTypes  from ECHO_helpers import displayTypes
 import urllib  import urllib
   import smtplib
 import time  import time
   from Ft.Xml.Domlette import NonvalidatingReader
   from Ft.Xml.Domlette import PrettyPrint
   from Ft.Xml import EMPTY_NAMESPACE
   
   import Ft.Xml.XPath
   import cStringIO
   import zLOG
   
 try:  try:
     from psycopg import libpq      from psycopg import libpq
Line 583  class ECHO_layoutTemplate(ZopePageTempla Line 591  class ECHO_layoutTemplate(ZopePageTempla
   
 def manage_addECHO_layoutTemplateForm(self):  def manage_addECHO_layoutTemplateForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_layoutTemplate.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddECHO_layoutTemplate.zpt')).__of__(self)
     return pt()      return pt()
   
 from urllib import quote  from urllib import quote
Line 1135  class ECHO_resource(Folder,Persistent): Line 1143  class ECHO_resource(Folder,Persistent):
   
     def getFullTextXML(self,noredirect=None):      def getFullTextXML(self,noredirect=None):
         """getFullTextXML; gives the FullText as an XML Document, and <error></error> if somthing goes wrong."""          """getFullTextXML; gives the FullText as an XML Document, and <error></error> if somthing goes wrong."""
   
         try:          try:
               zLOG.LOG("ECHO Fulltext",zLOG.INFO,"open %s"%self.metalink)
             fh=ECHO_helpers.urlopen(self.metalink)              fh=ECHO_helpers.urlopen(self.metalink)
               zLOG.LOG("ECHO Fulltext",zLOG.INFO,"opened %s"%self.metalink)
             dom=xml.dom.minidom.parse(fh)              dom=xml.dom.minidom.parse(fh)
             texttools=dom.getElementsByTagName('texttool')              texttools=dom.getElementsByTagName('texttool')
             text=texttools[0].getElementsByTagName('text')              text=texttools[0].getElementsByTagName('text')
             texturl=getText(text[0].childNodes)              texturl=getText(text[0].childNodes)
   
               zLOG.LOG("ECHO Fulltext",zLOG.INFO,"found %s"%texturl)
                       fh.close()
               zLOG.LOG("ECHO Fulltext",zLOG.INFO,"closed fh")
   
             if not (texturl.split(":")[0] in ['http','ftp','file']):               if not (texturl.split(":")[0] in ['http','ftp','file']): 
                     texturl=re.sub("//","/",texturl)                          texturl=re.sub("//","/",texturl)    
                   #hack has to be corrected
                   texturl="http://echo.mpiwg-berlin.mpg.de"+texturl   
             #return texturl+"::"+texturl.split(":")[0]              #return texturl+"::"+texturl.split(":")[0]
             if not noredirect:              if not noredirect:
                             self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')                                self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')  
                       zLOG.LOG("ECHO Fulltext",zLOG.INFO,"redirect to:%s"%texturl)
                 self.REQUEST.RESPONSE.redirect(texturl)                  self.REQUEST.RESPONSE.redirect(texturl)
             else:              else:
                 return texturl                  return texturl
Line 1171  class ECHO_resource(Folder,Persistent): Line 1190  class ECHO_resource(Folder,Persistent):
             archivepath=getText(text[0].childNodes)              archivepath=getText(text[0].childNodes)
             archivepath=re.sub('/mpiwg/online/','',archivepath)               archivepath=re.sub('/mpiwg/online/','',archivepath) 
             imageurl="http://echo.mpiwg-berlin.mpg.de/zogilib?fn="+archivepath+"/"+imagetemp              imageurl="http://echo.mpiwg-berlin.mpg.de/zogilib?fn="+archivepath+"/"+imagetemp
               fh.close()
   
             if not noredirect:              if not noredirect:
                             self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')                                self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')  
                 self.REQUEST.RESPONSE.redirect(imageurl)                  self.REQUEST.RESPONSE.redirect(imageurl)
Line 3017  class ECHO_root(Folder,Persistent,Implic Line 3038  class ECHO_root(Folder,Persistent,Implic
     #return "http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"      #return "http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"
     ###END CDLI add      ###END CDLI add
   
       def sendForm(self,fromaddr,content,server='mail.mpiwg-berlin.mpg.de'):
           """sendform"""
           toaddrs=["dwinter@mpiwg-berlin.mpg.de"]
           
           msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n"
              % (fromaddr, ", ".join(toaddrs),"testsub"))
           server = smtplib.SMTP(server)
           #server.set_debuglevel(1)
           msg=msg+content
           server.sendmail(fromaddr, toaddrs, msg)
           server.quit()
           
     def generateFromRDFForm(self):      def generateFromRDFForm(self):
         """change form"""          """change form"""
Line 3520  class ECHO_root(Folder,Persistent,Implic Line 3552  class ECHO_root(Folder,Persistent,Implic
   
     def xml2html(self,str,quote="yes"):      def xml2html(self,str,quote="yes"):
         """link2html fuer VLP muss hier noch raus"""          """link2html fuer VLP muss hier noch raus"""
     #print str  
   
         if str:          if str:
             if quote=="yes2":              if quote=="yes2":
                 str=re.sub("\&","&amp;",str)                  str=re.sub("\&","&amp;",str)
             dom=xml.dom.minidom.parseString(str)              #dom=xml.dom.minidom.parseString(str)
             links=dom.getElementsByTagName("link")          dom = NonvalidatingReader.parseString(str,"http://www.mpiwg-berlin.mpg.de/")
                           #links=dom.getElementsByTagName("link")
               links=Ft.Xml.XPath.Evaluate(".//link", contextNode=dom)
             for link in links:              for link in links:
                 link.tagName="a"                  #link.tagName="a"
                 ref=link.getAttribute("ref")      
         pn=link.getAttribute("page")                  ref=link.getAttributeNS(EMPTY_NAMESPACE,"ref")
           pn=link.getAttributeNS(EMPTY_NAMESPACE,"page")
   
           cns=link.childNodes[0:]
           
           newLink=dom.createElementNS(EMPTY_NAMESPACE,"a")
           for x in cns:
               newLink.appendChild(x)
           
               
   
           link.parentNode.replaceChild(newLink,link)
                 if self.checkRef(ref):                  if self.checkRef(ref):
             if pn:              if pn:
                 link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)                  newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)
             else:              else:
                 link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)                  newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
   
             str= dom.toxml()  
                   
               #str= dom.toxml('utf-8')
           buf = cStringIO.StringIO()
           PrettyPrint(dom, stream=buf, encoding='UTF-8')
           str = buf.getvalue()
           buf.close()
           #str=PrettyPrint(dom.documentElement,encoding='UTF-8')
         #print link.toxml('utf-8')          #print link.toxml('utf-8')
           #print type(str)
         retStr=regexpPage.search(str)          retStr=regexpPage.search(str)
           try: # hack warum fehtl manchmal page??
         return retStr.group(1)          return retStr.group(1)
           except:
               return str
         return ""          return ""
   
     def checkRef(self,ref):      def checkRef(self,ref):
         dbs={'vl_literature':'AND CD LIKE \'%lise%\'','vl_technology':'','vl_people':'','vl_sites':''}          if ref[0:3]=='lit':
               if len(self.library_data({ 'id':ref}))>0:
                   return 1
           try:
               if ref[0:7]=="tec_cat":
                   return 1
           except:
               """nothing"""
               
           dbs={'vl_technology':'','vl_people':'','vl_sites':''}
         res=None          res=None
         for db in dbs.keys():          for db in dbs.keys():
   
             res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))              res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))
         return res          return res
                                                                           

Removed from v.1.172  
changed lines
  Added in v.1.180


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