Diff for /documentViewer/MpdlXmlTextServer.py between versions 1.230 and 1.238.2.1

version 1.230, 2011/03/07 14:08:07 version 1.238.2.1, 2011/07/14 17:43:56
Line 2 Line 2
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile   from Products.PageTemplates.PageTemplateFile import PageTemplateFile 
 from Ft.Xml import EMPTY_NAMESPACE, Parse  from Ft.Xml import EMPTY_NAMESPACE, Parse
   from Ft.Xml.Domlette import NonvalidatingReader
   import Ft.Xml.Domlette
   import cStringIO
   
   import xml.etree.ElementTree as ET
   
 import md5  import md5
 import sys  import sys
 import logging  import logging
 import urllib  import urllib
 import documentViewer  import documentViewer
 from documentViewer import getTextFromNode, serializeNode  #from documentViewer import getTextFromNode, serializeNode
   
   def getText(node):
       """get the cdata content of a node"""
       if node is None:
           return ""
       # ET:
       text = node.text or ""
       for e in node:
           text += gettext(e)
           if e.tail:
               text += e.tail
   
       return text
   
   def serialize(node):
       """returns a string containing an XML snippet of node"""
       s = ET.tostring(node, 'UTF-8')
       # snip off XML declaration
       if s.startswith('<?xml'):
           i = s.find('?>')
           return s[i+3:]
   
       return s
   
   
   def getTextFromNode(node):
       """get the cdata content of a node"""
       if node is None:
           return ""
       # ET:
       #text = node.text or ""
       #for e in node:
       #    text += gettext(e)
       #    if e.tail:
       #        text += e.tail
   
       # 4Suite:
       nodelist=node.childNodes
       text = ""
       for n in nodelist:
           if n.nodeType == node.TEXT_NODE:
              text = text + n.data
       
       return text
   
   def serializeNode(node, encoding="utf-8"):
       """returns a string containing node as XML"""
       #s = ET.tostring(node)
       
       # 4Suite:
       stream = cStringIO.StringIO()
       Ft.Xml.Domlette.Print(node, stream=stream, encoding=encoding)
       s = stream.getvalue()
       stream.close()
   
       return s
   
   
 class MpdlXmlTextServer(SimpleItem):  class MpdlXmlTextServer(SimpleItem):
     """TextServer implementation for MPDL-XML eXist server"""      """TextServer implementation for MPDL-XML eXist server"""
Line 20  class MpdlXmlTextServer(SimpleItem): Line 82  class MpdlXmlTextServer(SimpleItem):
           
     manage_changeMpdlXmlTextServerForm = PageTemplateFile("zpt/manage_changeMpdlXmlTextServer", globals())      manage_changeMpdlXmlTextServerForm = PageTemplateFile("zpt/manage_changeMpdlXmlTextServer", globals())
                   
     def __init__(self,id,title="",serverUrl="http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/", serverName=None, timeout=40):      def __init__(self,id,title="",serverUrl="http://mpdl-system.mpiwg-berlin.mpg.de/mpdl/interface/", serverName=None, timeout=40):
       #def __init__(self,id,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de:30030/mpdl/interface/", serverName=None, timeout=40):    
           
         """constructor"""          """constructor"""
         self.id=id          self.id=id
         self.title=title          self.title=title
Line 39  class MpdlXmlTextServer(SimpleItem): Line 103  class MpdlXmlTextServer(SimpleItem):
         url = self.serverUrl+method          url = self.serverUrl+method
         return documentViewer.getHttpData(url,data,timeout=self.timeout)          return documentViewer.getHttpData(url,data,timeout=self.timeout)
   
     def getSearch(self, pageinfo=None,  docinfo=None,   lemma=None):      def getSearch(self, pageinfo=None,  docinfo=None):
         """get search list"""          """get search list"""
         docpath = docinfo['textURLPath']           docpath = docinfo['textURLPath'] 
         url = docinfo['url']          url = docinfo['url']
Line 52  class MpdlXmlTextServer(SimpleItem): Line 116  class MpdlXmlTextServer(SimpleItem):
         viewMode=  pageinfo['viewMode']          viewMode=  pageinfo['viewMode']
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         characterNormalization = pageinfo['characterNormalization']          characterNormalization = pageinfo['characterNormalization']
         optionToggle = pageinfo['optionToggle']          #optionToggle = pageinfo['optionToggle']
         tocPN = pageinfo['tocPN']          tocPN = pageinfo['tocPN']
         selfurl = self.absolute_url()          selfurl = self.absolute_url()
         data = self.getServerData("doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&characterNormalization=%s&optionToggle=%s&highlightQuery=%s"%(docpath, 'text', queryType, urllib.quote(query), pagesize, pn, sn, viewMode,characterNormalization,optionToggle ,urllib.quote(highlightQuery)))          data = self.getServerData("doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&characterNormalization=%s&highlightQuery=%s"%(docpath, 'text', queryType, urllib.quote(query), pagesize, pn, sn, viewMode,characterNormalization, urllib.quote(highlightQuery)))
         pagexml = data.replace('?document=%s'%str(docpath),'?url=%s'%url)          pagexml = data.replace('?document=%s'%str(docpath),'?url=%s'%url)
         pagedom = Parse(pagexml)          pagedom = Parse(pagexml)
                   
Line 83  class MpdlXmlTextServer(SimpleItem): Line 147  class MpdlXmlTextServer(SimpleItem):
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         if href.startswith('page-fragment.xql'):                          if href.startswith('page-fragment.xql'):
                             selfurl = self.absolute_url()                                          selfurl = self.absolute_url()            
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle,characterNormalization))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN, characterNormalization))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                                                         hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                           
                 #logging.debug("PUREXML :%s"%(serializeNode(pagenode)))                  #logging.debug("PUREXML :%s"%(serializeNode(pagenode)))
                 return serializeNode(pagenode)                          return serializeNode(pagenode)        
Line 98  class MpdlXmlTextServer(SimpleItem): Line 162  class MpdlXmlTextServer(SimpleItem):
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         if href.startswith('page-fragment.xql'):                          if href.startswith('page-fragment.xql'):
                             selfurl = self.absolute_url()                                     selfurl = self.absolute_url()       
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle,characterNormalization))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,characterNormalization))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)  
                         if href.startswith('../lt/lemma.xql'):                          if href.startswith('../lt/lemma.xql'):
                             hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma_New'%(selfurl))                                      hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_query'%(selfurl))        
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onClick', 'popupWin.focus();')                                l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')  
                 pagedivs = pagedom.xpath("//div[@class='queryResultMorphExpansion']")                                  pagedivs = pagedom.xpath("//div[@class='queryResultMorphExpansion']")                
                 return serializeNode(pagenode)                          return serializeNode(pagenode)        
         if (queryType=="ftIndex")or(queryType=="ftIndexMorph"):          if (queryType=="ftIndex")or(queryType=="ftIndexMorph"):
Line 116  class MpdlXmlTextServer(SimpleItem): Line 180  class MpdlXmlTextServer(SimpleItem):
                     hrefNode = l.getAttributeNodeNS(None, u"href")                      hrefNode = l.getAttributeNodeNS(None, u"href")
                     if hrefNode:                      if hrefNode:
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,tocMode,tocPN,pn,optionToggle,characterNormalization))                                       hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s&characterNormalization=%s'%(viewMode,tocMode,tocPN,pn,characterNormalization))             
                         if href.startswith('../lt/lex.xql'):                          if href.startswith('../lt/lex.xql'):
                             hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)                                       hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_lex'%selfurl)         
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onClick', 'popupWin.focus();')                              l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
                         if href.startswith('../lt/lemma.xql'):                          if href.startswith('../lt/lemma.xql'):
                             hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma'%selfurl)                                      hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma'%(selfurl))        
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onClick', 'popupWin.focus();')                              l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
                 return serializeNode(pagenode)                        return serializeNode(pagenode)      
         return "no text here"             return "no text here"   
                         
Line 183  class MpdlXmlTextServer(SimpleItem): Line 247  class MpdlXmlTextServer(SimpleItem):
         name = docinfo.get('name',None)          name = docinfo.get('name',None)
         pn =pageinfo['current']          pn =pageinfo['current']
         sn = pageinfo['sn']          sn = pageinfo['sn']
           #optionToggle =pageinfo ['optionToggle']
         highlightQuery = pageinfo['highlightQuery']          highlightQuery = pageinfo['highlightQuery']
         #mode = pageinfo ['viewMode']          #mode = pageinfo ['viewMode']
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
Line 199  class MpdlXmlTextServer(SimpleItem): Line 264  class MpdlXmlTextServer(SimpleItem):
             textParam +="&highlightQuery=%s&sn=%s"%(urllib.quote(highlightQuery),sn)                         textParam +="&highlightQuery=%s&sn=%s"%(urllib.quote(highlightQuery),sn)           
                   
         pagexml = self.getServerData("page-fragment.xql",textParam)          pagexml = self.getServerData("page-fragment.xql",textParam)
         dom = Parse(pagexml)          dom = ET.fromstring(pagexml)
           #dom = NonvalidatingReader.parseStream(pagexml)
           
         #original Pages          #original Pages
         pagedivs = dom.xpath("//div[@class='pageNumberOrig']")          #pagedivs = dom.xpath("//div[@class='pageNumberOrig']")       
           
         """if pagedivs == dom.xpath("//div[@class='pageNumberOrig']"):          """if pagedivs == dom.xpath("//div[@class='pageNumberOrig']"):
             if len(pagedivs)>0:              if len(pagedivs)>0:
                 docinfo['pageNumberOrig']= getTextFromNode(pagedivs[0])                  docinfo['pageNumberOrig']= getTextFromNode(pagedivs[0])
Line 215  class MpdlXmlTextServer(SimpleItem): Line 283  class MpdlXmlTextServer(SimpleItem):
                 logging.debug("ORIGINAL PAGE NORM: %s"%(docinfo['pageNumberOrigNorm']))                  logging.debug("ORIGINAL PAGE NORM: %s"%(docinfo['pageNumberOrigNorm']))
         """          """
         #figureEntries          #figureEntries
         pagedivs = dom.xpath("//div[@class='countFigureEntries']")  #        pagedivs = dom.xpath("//div[@class='countFigureEntries']")
         if pagedivs == dom.xpath("//div[@class='countFigureEntries']"):  #        if pagedivs == dom.xpath("//div[@class='countFigureEntries']"):
             if len(pagedivs)>0:  #            if len(pagedivs)>0:
                 docinfo['countFigureEntries'] = getTextFromNode(pagedivs[0])  #                docinfo['countFigureEntries'] = getTextFromNode(pagedivs[0])
                 s = getTextFromNode(pagedivs[0])  #                s = getTextFromNode(pagedivs[0])
                 if s=='0':  #                if s=='0':
                     try:  #                    try:
                         docinfo['countFigureEntries'] = int(s)  #                        docinfo['countFigureEntries'] = int(s)
                     except:  #                    except:
                         docinfo['countFigureEntries'] = 0  #                        docinfo['countFigureEntries'] = 0
                 else:  #                else:
                     s1 = int(s)/30+1  #                    s1 = int(s)/30+1
                     try:  #                    try:
                         docinfo['countFigureEntries'] = int(s1)  #                        docinfo['countFigureEntries'] = int(s1)
                     except:  #                    except:
                         docinfo['countFigureEntries'] = 0        #                        docinfo['countFigureEntries'] = 0      
           #        
         #allPlaces  #        #allPlaces
         pagedivs = dom.xpath("//div[@class='countPlaces']")  #        pagedivs = dom.xpath("//div[@class='countPlaces']")
         if pagedivs == dom.xpath("//div[@class='countPlaces']"):  #        if pagedivs == dom.xpath("//div[@class='countPlaces']"):
             if len(pagedivs)>0:  #            if len(pagedivs)>0:
                 docinfo['countPlaces']= getTextFromNode(pagedivs[0])  #                docinfo['countPlaces']= getTextFromNode(pagedivs[0])
                 s = getTextFromNode(pagedivs[0])  #                s = getTextFromNode(pagedivs[0])
                 try:  #                try:
                     docinfo['countPlaces'] = int(s)  #                    docinfo['countPlaces'] = int(s)
                 except:  #                except:
                     docinfo['countPlaces'] = 0  #                    docinfo['countPlaces'] = 0
           #        
         #tocEntries  #        #tocEntries
         pagedivs = dom.xpath("//div[@class='countTocEntries']")  #        pagedivs = dom.xpath("//div[@class='countTocEntries']")
         if pagedivs == dom.xpath("//div[@class='countTocEntries']"):  #        if pagedivs == dom.xpath("//div[@class='countTocEntries']"):
             if len(pagedivs)>0:  #            if len(pagedivs)>0:
                 docinfo['countTocEntries'] = int(getTextFromNode(pagedivs[0]))  #                docinfo['countTocEntries'] = int(getTextFromNode(pagedivs[0]))
                 s = getTextFromNode(pagedivs[0])  #                s = getTextFromNode(pagedivs[0])
                 if s=='0':  #                if s=='0':
                     try:  #                    try:
                         docinfo['countTocEntries'] = int(s)  #                        docinfo['countTocEntries'] = int(s)
                     except:  #                    except:
                         docinfo['countTocEntries'] = 0  #                        docinfo['countTocEntries'] = 0
                 else:  #                else:
                     s1 = int(s)/30+1  #                    s1 = int(s)/30+1
                     try:  #                    try:
                         docinfo['countTocEntries'] = int(s1)  #                        docinfo['countTocEntries'] = int(s1)
                     except:  #                    except:
                         docinfo['countTocEntries'] = 0  #                        docinfo['countTocEntries'] = 0
                   
         #numTextPages          #numTextPages
         pagedivs = dom.xpath("//div[@class='countPages']")          #pagedivs = dom.xpath("//div[@class='countPages']")
         if pagedivs == dom.xpath("//div[@class='countPages']"):          alldivs = dom.findall(".//div")
             if len(pagedivs)>0:          pagediv = None
                 docinfo['numPages'] = getTextFromNode(pagedivs[0])          for div in alldivs:
                 s = getTextFromNode(pagedivs[0])              dc = div.get('class')
               if dc == 'pageContent':
                   pagediv = div
                                   
               if dc == 'countPages':
                 try:                  try:
                     docinfo['numPages'] = int(s)                      np = int(div.text)                    
                     #logging.debug("PAGE NUMBER: %s"%(s))                      docinfo['numPages'] = np
                   
                     np = docinfo['numPages']  
                     pageinfo['end'] = min(pageinfo['end'], np)                      pageinfo['end'] = min(pageinfo['end'], np)
                     pageinfo['numgroups'] = int(np / pageinfo['groupsize'])                      pageinfo['numgroups'] = int(np / pageinfo['groupsize'])
                     if np % pageinfo['groupsize'] > 0:                      if np % pageinfo['groupsize'] > 0:
                         pageinfo['numgroups'] += 1                                          pageinfo['numgroups'] += 1                
                                  
                 except:                  except:
                     docinfo['numPages'] = 0                      docinfo['numPages'] = 0
                                       
         else:                  break
          #no full text -- init to 0                    
             docinfo['pageNumberOrig'] = 0  # ROC: why?                  
             docinfo['countFigureEntries'] = 0  #            else:
             docinfo['countPlaces'] = 0  #                #no full text -- init to 0
             docinfo['countTocEntries'] = 0  #                docinfo['pageNumberOrig'] = 0
             docinfo['numPages'] = 0  #                docinfo['countFigureEntries'] = 0
             docinfo['pageNumberOrigNorm'] = 0  #                docinfo['countPlaces'] = 0
         #return docinfo  #                docinfo['countTocEntries'] = 0
   #                docinfo['numPages'] = 0
   #                docinfo['pageNumberOrigNorm'] = 0
   #                #return docinfo
                   
         # plain text mode          # plain text mode
         if mode == "text":          if mode == "text":
             # first div contains text              #pagedivs = dom.xpath("/div")
             pagedivs = dom.xpath("/div")              if pagediv:
             if len(pagedivs) > 0:                        links = pagediv.findall(".//a")
                 pagenode = pagedivs[0]  
                 links = pagenode.xpath("//a")  
                 for l in links:                  for l in links:
                     hrefNode = l.getAttributeNodeNS(None, u"href")                      href = l.get('href')
                     if hrefNode:                      if href and href.startswith('#note-'):
                         href= hrefNode.nodeValue                          href = href.replace('#note-',"?url=%s&viewMode=text&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,tocMode,tocPN,pn))
                         if href.startswith('#note-'):                          l.set('href', href)
                             hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=text&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,tocMode,tocPN,pn))                  logging.debug("page=%s"%ET.tostring(pagediv, 'UTF-8'))
                 return serializeNode(pagenode)                  return serialize(pagediv)
               
         if mode == "xml":          if mode == "xml":
               # first div contains text              if pagediv:
               pagedivs = dom.xpath("/div")                  return serialize(pagediv)
               if len(pagedivs) > 0:              
                   pagenode = pagedivs[0]          if mode == "pureXml":
                   return serializeNode(pagenode)              if pagediv:
                   return serialize(pagediv)
                     
         if mode == "gis":          if mode == "gis":
               # first div contains text              if pagediv:
               pagedivs = dom.xpath("/div")                  # check all a-tags
               if len(pagedivs) > 0:                  links = pagediv.findall(".//a")
                   pagenode = pagedivs[0]  
                   links =pagenode.xpath("//a")  
                   for l in links:                    for l in links:
                       hrefNode =l.getAttributeNodeNS(None, u"href")                      href = l.get('href')
                       if hrefNode:                      if href:
                           href=hrefNode.nodeValue  
                           if href.startswith('http://chinagis.mpiwg-berlin.mpg.de'):                            if href.startswith('http://chinagis.mpiwg-berlin.mpg.de'):
                               hrefNode.nodeValue =href.replace('chinagis_REST/REST/db/chgis/mpdl','chinagis/REST/db/mpdl/%s'%name)                              l.set('href', href.replace('chinagis_REST/REST/db/chgis/mpdl','chinagis/REST/db/mpdl/%s'%name))
                               l.setAttributeNS(None, 'target', '_blank')                               l.set('target', '_blank') 
                   return serializeNode(pagenode)                              
                   return serialize(pagenode)
                                           
         if mode == "pureXml":  
               # first div contains text  
               pagedivs = dom.xpath("/div")  
               if len(pagedivs) > 0:  
                   pagenode = pagedivs[0]  
                   return serializeNode(pagenode)        
         # text-with-links mode          # text-with-links mode
         if mode == "text_dict":          if mode == "text_dict":
             # first div contains text              if pagediv:
             #mode = pageinfo ['viewMode']  
             pagedivs = dom.xpath("/div")  
             if len(pagedivs) > 0:  
                 pagenode = pagedivs[0]  
                 # check all a-tags                  # check all a-tags
                 links = pagenode.xpath("//a")                  links = pagediv.findall(".//a")
                 for l in links:                  for l in links:
                     hrefNode = l.getAttributeNodeNS(None, u"href")                      href = l.get('href')
                     if hrefNode:                      
                       if href:
                         # is link with href                          # is link with href
                         href = hrefNode.nodeValue                          if href.startswith('http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/lt/wordInfo.xql'):
                         if href.startswith('lt/lex.xql'):  
                             # is pollux link                              # is pollux link
                             selfurl = self.absolute_url()                              selfurl = self.absolute_url()
                             # change href                              # change href
                             hrefNode.nodeValue = href.replace('lt/lex.xql','%s/template/head_main_voc'%selfurl)                              l.set('href', href.replace('http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/lt/wordInfo.xql','%s/head_main_voc'%selfurl))
                             # add target                              # add target
                             l.setAttributeNS(None, 'target', '_blank')                              l.set('target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")                                                            
                             l.setAttributeNS(None, 'onClick', 'popupWin.focus();')                                if href.startswith('http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/lt/lemma.xql'):    
                         if href.startswith('lt/lemma.xql'):      
                             selfurl = self.absolute_url()                              selfurl = self.absolute_url()
                             hrefNode.nodeValue = href.replace('lt/lemma.xql','%s/template/head_main_lemma'%selfurl)                              l.set('href', href.replace('http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/lt/lemma.xql','%s/head_main_lemma'%selfurl))
                             l.setAttributeNS(None, 'target', '_blank')                              l.set('target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")                              l.set('onclick',"popupWin = window.open(this.href, 'InfoWindow', 'menubar=no, location,width=500,height=600,top=180, left=700, toolbar=no, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onClick', 'popupWin.focus();')                                 l.set('ondblclick', 'popupWin.focus();')   
                       
                         if href.startswith('#note-'):                          if href.startswith('#note-'):
                             hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=text_dict&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,tocMode,tocPN,pn))                                  l.set('href', href.replace('#note-',"?url=%s&viewMode=text_dict&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,tocMode,tocPN,pn)))
                 return serializeNode(pagenode)                                
                   return serialize(pagediv)
               
         return "no text here"          return "no text here"
           
     def getOrigPages(self, docinfo=None, pageinfo=None):      def getOrigPages(self, docinfo=None, pageinfo=None):
Line 390  class MpdlXmlTextServer(SimpleItem): Line 454  class MpdlXmlTextServer(SimpleItem):
                 return docinfo['pageNumberOrigNorm']                  return docinfo['pageNumberOrigNorm']
   
                                   
     def getTranslate(self, query=None, language=None):      def getTranslate(self, word=None, language=None):
         """translate into another languages"""          """translate into another languages"""
         data = self.getServerData("lt/lex.xql","document=&language="+str(language)+"&query="+urllib.quote(query))          data = self.getServerData("lt/wordInfo.xql","language="+str(language)+"&word="+urllib.quote(word)+"&output=html")
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lex.xql","document=&language="+str(language)+"&query="+url_quote(str(query)))          #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lex.xql","document=&language="+str(language)+"&query="+url_quote(str(query)))
         return data          return data
           
     def getLemma(self, lemma=None, language=None):      def getLemma(self, lemma=None, language=None):
         """simular words lemma """          """simular words lemma """
         data = self.getServerData("lt/lemma.xql","document=&language="+str(language)+"&lemma="+urllib.quote(lemma))          data = self.getServerData("lt/lemma.xql","language="+str(language)+"&lemma="+urllib.quote(lemma)+"&output=html")
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma)))  
         return data          return data
           
     def getLemmaNew(self, query=None, language=None):      def getLemmaQuery(self, query=None, language=None):
         """simular words lemma """          """simular words lemma """
         data = self.getServerData("lt/lemma.xql","document=&language="+str(language)+"&lemma="+urllib.quote(query))          data = self.getServerData("lt/lemma.xql","language="+str(language)+"&query="+urllib.quote(query)+"&output=html")
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query)))          return data
       
       def getLex(self, query=None, language=None):
           #simular words lemma
           data = self.getServerData("lt/lex.xql","document=&language="+str(language)+"&query="+urllib.quote(query))
         return data          return data
           
     def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1, optionToggle=None):      def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1):
          #number of           #number of
          docpath = docinfo['textURLPath']            docpath = docinfo['textURLPath'] 
          pagesize = pageinfo['queryPageSize']           pagesize = pageinfo['queryPageSize']
Line 471  class MpdlXmlTextServer(SimpleItem): Line 538  class MpdlXmlTextServer(SimpleItem):
         selfurl = self.absolute_url()            selfurl = self.absolute_url()  
         viewMode=  pageinfo['viewMode']          viewMode=  pageinfo['viewMode']
         characterNormalization = pageinfo ['characterNormalization']          characterNormalization = pageinfo ['characterNormalization']
         optionToggle =pageinfo ['optionToggle']          #optionToggle =pageinfo ['optionToggle']
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         tocPN = pageinfo['tocPN']            tocPN = pageinfo['tocPN']  
                   
         data = self.getServerData("doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s&characterNormalization=regPlusNorm&optionToggle=1"%(docpath,queryType, pagesize, pn))            data = self.getServerData("doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s&characterNormalization=regPlusNorm"%(docpath,queryType, pagesize, pn))  
         page = data.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&optionToggle=1'%(selfurl,url, viewMode, tocMode, tocPN))          page = data.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN))
         text = page.replace('mode=image','mode=texttool')          text = page.replace('mode=image','mode=texttool')
         return text          return text
           
     def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):      def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):
       #def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de:30030/mpdl/interface/",timeout=40,RESPONSE=None):
         """change settings"""          """change settings"""
         self.title=title          self.title=title
         self.timeout = timeout          self.timeout = timeout
Line 494  def manage_addMpdlXmlTextServerForm(self Line 562  def manage_addMpdlXmlTextServerForm(self
     pt = PageTemplateFile("zpt/manage_addMpdlXmlTextServer", globals()).__of__(self)      pt = PageTemplateFile("zpt/manage_addMpdlXmlTextServer", globals()).__of__(self)
     return pt()      return pt()
   
 def manage_addMpdlXmlTextServer(self,id,title="",serverUrl="http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):  def manage_addMpdlXmlTextServer(self,id,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):
   #def manage_addMpdlXmlTextServer(self,id,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de:30030/mpdl/interface/",timeout=40,RESPONSE=None):    
     """add zogiimage"""      """add zogiimage"""
     newObj = MpdlXmlTextServer(id,title,serverUrl,timeout)      newObj = MpdlXmlTextServer(id,title,serverUrl,timeout)
     self.Destination()._setObject(id, newObj)      self.Destination()._setObject(id, newObj)

Removed from v.1.230  
changed lines
  Added in v.1.238.2.1


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