Diff for /ECHO_content/ECHO_collection.py between versions 1.237 and 1.239

version 1.237, 2005/10/13 15:07:26 version 1.239, 2005/10/26 11:18:19
Line 67  import ECHO_helpers Line 67  import ECHO_helpers
 from ECHO_helpers import *  from ECHO_helpers import *
 from ECHO_language import *  from ECHO_language import *
 from ECHO_movie import *  from ECHO_movie import *
   import vlp_xmlhelpers #TODO: vlp elemente aus echo herausnehmen
 #regexp for extracting elements from xml  
 patternTXT=r"<\s*txt.*?>(.*?)</txt>"  
 regexpTXT = re.compile(patternTXT, re.IGNORECASE + re.DOTALL)  
 patternPage=r"<\s*page.*?>(.*?)</page>"  
 regexpPage = re.compile(patternPage, re.IGNORECASE + re.DOTALL)  
   
                           
   
Line 1563  class ECHO_collection(Folder, Persistent Line 1558  class ECHO_collection(Folder, Persistent
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
   
       def getTitleAndLabel(self):
           """gibt title und label zurueck"""
           return (getattr(self,'title',''),getattr(self,'label',''))
   
     def localizeObjects(self):      def localizeObjects(self):
             """localize all objects"""              """localize all objects"""
             contents=self.ZopeFind(self,obj_metatypes=['ECHO_externalLink','ECHO_link','ECHO_mapText'])              contents=self.ZopeFind(self,obj_metatypes=['ECHO_externalLink','ECHO_link','ECHO_mapText'])
Line 2576  class ECHO_root(Folder,Persistent,Implic Line 2575  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
           
     def findObjectFromFulltext(self,url=None,existUri=None):      
       def findObjectFromFulltext(self,existUri):
         '''          '''
                   
         @param url:          @param url:
         @param existUri:          @param existUri:
         '''          '''
   
           if existUri:
         #TODO: at the moment assume that the filename is unique, the whole has to changed to a system of ids.          #TODO: at the moment assume that the filename is unique, the whole has to changed to a system of ids.
         return None              filename=existUri.split("/")[-1]
           
           founds=self.resourceCatalog.search({'fullTextUrl':os.path.splitext(filename)[0]})  
           
           ret=[(found.title,found.getObject().absolute_url(),found.getObject().aq_parent.absolute_url()) for found in founds]
           
           return ret
                   
     def reindex(self,RESPONSE=None):      def reindex(self,RESPONSE=None):
         """indiziere alle Objecte neu"""          """indiziere alle Objecte neu"""
Line 3141  class ECHO_root(Folder,Persistent,Implic Line 3149  class ECHO_root(Folder,Persistent,Implic
         else:          else:
             return ""              return ""
                   
     def link2html(self,str):      link2html=vlp_xmlhelpers.link2html
         """link2html fuer VLP muss hier noch raus"""  
         if str:  
   
             str=re.sub("\&","&amp;",str)  
             dom=xml.dom.minidom.parseString("<?xml version='1.0' encoding='utf-8'?><txt>"+str+"</txt>")  
             links=dom.getElementsByTagName("link")  
               
   
             for link in links:  
                 link.tagName="a"  
                 ref=link.getAttribute("ref")  
                 pn=link.getAttribute("page")  
                           
                 if self.checkRef(ref):  
                         if pn:  
                                 link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&page="+pn)  
                         else:  
                                 link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref)  
   
   
             newxml=dom.toxml('utf-8')  
             
             retStr=regexpTXT.search(newxml)  
   
             return retStr.group(1)  
   
                              
         return ""  
   
     def xml2html(self,str,quote="yes"):  
         """link2html fuer VLP muss hier noch raus"""  
   
         if str:  
             if quote=="yes2":  
                 str=re.sub("\&","&amp;",str)  
             #dom=xml.dom.minidom.parseString(str)  
             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:  
                 #link.tagName="a"  
           
                 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 pn:  
                                 newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)  
                         else:  
                                 newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)  
   
             #str= dom.toxml('utf-8')  
             buf = cStringIO.StringIO()  
             PrettyPrint(dom, stream=buf)  
             str = buf.getvalue()  
             buf.close()  
             #str=PrettyPrint(dom.documentElement,encoding='UTF-8')  
             #print link.toxml('utf-8')  
             #print type(str)  
             retStr=regexpPage.search(str)  
               
             try: # hack warum fehtl manchmal page??  
                     return retStr.group(1)  
             except:  
                     return str  
         return ""  
   
     def checkRef(self,ref):      xml2html=vlp_xmlhelpers.xml2html
             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':" AND complete='yes'",'vl_sites':''}      checkRef=vlp_xmlhelpers.checkRef
             res=None  
             for db in dbs.keys():  
                     res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))  
             return res  
                                                                           
     #Ende Methode fuer vlp  #    def checkRef(self,ref):
   #            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':" AND complete='yes'",'vl_sites':''}
   #            res=None
   #            for db in dbs.keys():
   #                    res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))
   #            return res
   #                                    
   #    #Ende Methode fuer vlp
   
     def PgQuoteString(self,string):      def PgQuoteString(self,string):
         """Quote string"""          """Quote string"""

Removed from v.1.237  
changed lines
  Added in v.1.239


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