Changeset 128:4db49915d825 in documentViewer


Ignore:
Timestamp:
Jun 11, 2010, 10:34:24 AM (14 years ago)
Author:
abukhman
Branch:
default
Tags:
Root_modularisierung
Message:

Last lemma

File:
1 edited

Legend:

Unmodified
Added
Removed
  • documentViewer.py

    r127 r128  
    640640        self.REQUEST.SESSION['docinfo'] = docinfo
    641641        return docinfo
    642        
    643        
     642               
    644643    def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None):
    645644        """returns pageinfo with the given parameters"""
     
    662661            pageinfo['numgroups'] = int(np / grpsize)
    663662            if np % grpsize > 0:
    664                 pageinfo['numgroups'] += 1
    665        
    666          
     663                pageinfo['numgroups'] += 1       
    667664        pageinfo['viewMode'] = viewMode
    668665        pageinfo['tocMode'] = tocMode
     
    681678            tocSize = int(docinfo['tocSize_%s'%tocMode])
    682679            tocPageSize = int(pageinfo['tocPageSize'])
    683             # cached toc
    684            
     680            # cached toc           
    685681            if tocSize%tocPageSize>0:
    686682                tocPages=tocSize/tocPageSize+1
    687683            else:
    688684                tocPages=tocSize/tocPageSize
    689             pageinfo['tocPN'] = min (tocPages,toc)
    690                      
     685            pageinfo['tocPN'] = min (tocPages,toc)                   
    691686        pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')
    692687        pageinfo['sn'] =self.REQUEST.get('sn','')
    693 
    694688        return pageinfo
    695689               
    696     def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None):
     690    def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None, lemma=None):
    697691        """get search list"""
    698692        docpath = docinfo['textURLPath']
     
    726720                            pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s'%(viewMode,queryType,query,pagesize,pn,tocMode,pn,tocPN))
    727721                            hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                           
    728                 return serializeNode(pagenode)
    729        
     722                return serializeNode(pagenode)       
    730723        if (queryType=="fulltextMorph"):
    731724            pagedivs = pagedom.xpath("//div[@class='queryResult']")
     
    742735                            hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl) 
    743736                        if href.startswith('../lt/lemma.xql'):
    744                            
    745                             hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma'%selfurl)       
     737                            hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma_New'%(selfurl))       
    746738                            l.setAttributeNS(None, 'target', '_blank')
    747739                            l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
    748740                            l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();') 
    749741                pagedivs = pagedom.xpath("//div[@class='queryResultMorphExpansion']")               
    750                 return serializeNode(pagenode)
    751        
     742                return serializeNode(pagenode)       
    752743        if (queryType=="ftIndex")or(queryType=="ftIndexMorph"):
    753744            pagedivs= pagedom.xpath("//div[@class='queryResultPage']")
     
    759750                    if hrefNode:
    760751                        href = hrefNode.nodeValue
    761                         hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s'%(viewMode,tocMode,tocPN,pn))
    762                        
     752                        hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s'%(viewMode,tocMode,tocPN,pn))             
    763753                        if href.startswith('../lt/lex.xql'):
    764754                            hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)         
     
    791781        tocPN = pageinfo['tocPN']
    792782        selfurl = self.absolute_url()   
    793        
    794         #pn = pageinfo['searchPN']
    795      
    796783        if mode == "text_dict":
    797784            textmode = "textPollux"
     
    801788        textParam = "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn)
    802789        if highlightQuery is not None:
    803             textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn)
    804            
     790            textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn)           
    805791        pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False)
    806792        pagedom = Parse(pagexml)
     
    809795            # first div contains text
    810796            pagedivs = pagedom.xpath("/div")
    811             #queryResultPage
    812797            if len(pagedivs) > 0:     
    813798                pagenode = pagedivs[0]
     
    815800                for l in links:
    816801                    hrefNode = l.getAttributeNodeNS(None, u"href")
    817 
    818802                    if hrefNode:
    819803                        href= hrefNode.nodeValue
    820804                        if href.startswith('#note-'):
    821805                            hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn))
    822                
    823806                return serializeNode(pagenode)
    824807        if mode == "xml":
     
    855838                            l.setAttributeNS(None, 'target', '_blank')
    856839                            l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")
    857                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
    858                            
     840                            l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')     
    859841                        if href.startswith('lt/lemma.xql'):   
    860842                            selfurl = self.absolute_url()
     
    862844                            l.setAttributeNS(None, 'target', '_blank')
    863845                            l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")
    864                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
    865                        
     846                            l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')   
    866847                        if href.startswith('#note-'):
    867848                            hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn))   
    868                            
    869                            
    870849                return serializeNode(pagenode)
    871        
    872850        return "no text here"
    873851
     
    880858        """simular words lemma """
    881859        pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma)))
    882         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","lemma=%s&language=%s"%(lemma,language),outputUnicode=False)
     860        return pagexml
     861   
     862    def getLemmaNew(self, query=None, language=None):
     863        """simular words lemma """
     864        pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query)))
    883865        return pagexml
    884866
     
    890872         query =pageinfo['query']
    891873         queryType =pageinfo['queryType']
    892 
    893874         tocSearch = 0
    894875         tocDiv = None
    895876         pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, query, pagesize, pn) ,outputUnicode=False)
    896          
    897877         pagedom = Parse(pagexml)
    898878         numdivs = pagedom.xpath("//div[@class='queryResultHits']")
     
    906886        logging.debug("documentViewer (gettoc) mode: %s"%(mode))
    907887        if mode == "none":
    908             return docinfo
    909        
     888            return docinfo       
    910889        if 'tocSize_%s'%mode in docinfo:
    911890            # cached toc
     
    930909        if len(numdivs) > 0:
    931910            tocSize = int(getTextFromNode(numdivs[0]))
    932             # div contains text
    933             #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")
    934             #if len(pagedivs) > 0:
    935             #    tocDiv = pagedivs[0]
    936 
    937911        docinfo['tocSize_%s'%mode] = tocSize
    938         #docinfo['tocDiv_%s'%mode] = tocDiv
    939912        return docinfo
    940913   
    941     def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None):
     914def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None):
    942915        """returns single page from the table of contents"""
    943916        # TODO: this should use the cached TOC
     
    947920            queryType = mode
    948921        docpath = docinfo['textURLPath']
    949         path = docinfo['textURLPath']
    950         #logging.debug("documentViewer (gettoc) pathNomer: %s"%(pathNomer))
     922        path = docinfo['textURLPath']       
    951923        pagesize = pageinfo['tocPageSize']
    952924        pn = pageinfo['tocPN']
     
    955927        viewMode=  pageinfo['viewMode']
    956928        tocMode = pageinfo['tocMode']
    957         tocPN = pageinfo['tocPN']
    958    
     929        tocPN = pageinfo['tocPN']   
    959930        pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False)
    960931        page = pagexml.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN))
    961932        text = page.replace('mode=image','mode=texttool')
    962933        return text
    963         # post-processing downloaded xml
    964         #pagedom = Parse(text)
    965         # div contains text
    966         #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")
    967         #if len(pagedivs) > 0:
    968         #    pagenode = pagedivs[0]
    969         #    return serializeNode(pagenode)
    970         #else:
    971         #    return "No TOC!"
    972    
    973     def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):
     934   
     935def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):
    974936        """init document viewer"""
    975937        self.title=title
     
    980942        if RESPONSE is not None:
    981943            RESPONSE.redirect('manage_main')
    982    
    983    
    984944       
    985945def manage_AddDocumentViewerForm(self):
     
    996956        RESPONSE.redirect('manage_main')
    997957
    998 
    999 ##
    1000958## DocumentViewerTemplate class
    1001 ##
    1002959class DocumentViewerTemplate(ZopePageTemplate):
    1003960    """Template for document viewer"""
Note: See TracChangeset for help on using the changeset viewer.