|
|
| version 1.44, 2010/04/08 11:04:51 | version 1.45, 2010/04/19 13:13:13 |
|---|---|
| Line 102 class documentViewer(Folder): | Line 102 class documentViewer(Folder): |
| changeDocumentViewerForm = PageTemplateFile('zpt/changeDocumentViewer', globals()) | changeDocumentViewerForm = PageTemplateFile('zpt/changeDocumentViewer', globals()) |
| def __init__(self,id,imageScalerUrl=None,textServerName=None,title="",digilibBaseUrl=None,thumbcols=2,thumbrows=10,authgroups="mpiwg"): | def __init__(self,id,imageScalerUrl=None,textServerName=None,title="",digilibBaseUrl=None,thumbcols=2,thumbrows=5,authgroups="mpiwg"): |
| """init document viewer""" | """init document viewer""" |
| self.id=id | self.id=id |
| self.title=title | self.title=title |
| Line 163 class documentViewer(Folder): | Line 163 class documentViewer(Folder): |
| return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) | return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) |
| security.declareProtected('View','index_html') | security.declareProtected('View','index_html') |
| def index_html(self,url,mode="texttool",viewMode="auto",tocMode="thumbs",start=None,pn=1,mk=None): | def index_html(self,url,mode="texttool",viewMode="auto",tocMode="thumbs",start=None,pn=1,mk=None, query=None, querySearch=None): |
| ''' | ''' |
| view it | view it |
| @param mode: defines how to access the document behind url | @param mode: defines how to access the document behind url |
| @param url: url which contains display information | @param url: url which contains display information |
| @param viewMode: if images display images, if text display text, default is auto (text,images or auto) | @param viewMode: if images display images, if text display text, default is auto (text,images or auto) |
| @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures) | @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, search) |
| @param querySearch: type of different search modes (fulltext, fulltextMorph, xpath, xquery, ftIndex, ftIndexMorph) | |
| ''' | ''' |
| logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn)) | logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn)) |
| Line 649 class documentViewer(Folder): | Line 650 class documentViewer(Folder): |
| pageinfo['viewMode'] = viewMode | pageinfo['viewMode'] = viewMode |
| pageinfo['tocMode'] = tocMode | pageinfo['tocMode'] = tocMode |
| pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '10') | pageinfo['query'] = self.REQUEST.get('query',' ') |
| pageinfo['queryType'] = self.REQUEST.get('queryType',' ') | |
| pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext') | |
| pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30') | |
| pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '20') | |
| pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1') | pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1') |
| pageinfo['searchPN'] =self.REQUEST.get('searchPN','1') | |
| pageinfo['sn'] =self.REQUEST.get('sn','1') | |
| return pageinfo | return pageinfo |
| def getSearch(self, pn=1, pageinfo=None, docinfo=None, query=None, queryType=None): | |
| """get search list""" | |
| docpath = docinfo['textURLPath'] | |
| pagesize = pageinfo['queryPageSize'] | |
| pn = pageinfo['searchPN'] | |
| sn = pageinfo['sn'] | |
| query =pageinfo['query'] | |
| queryType =pageinfo['queryType'] | |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn) ,outputUnicode=False) | |
| pagedom = Parse(pagexml) | |
| #pagedivs = pagedom.xpath("//div[@class='queryResultPage']") | |
| return pagexml | |
| #if len(pagedivs) > 0: | |
| # pagenode = pagedom[0] | |
| # return serializeNode(pagenode) | |
| #else: | |
| # return "xaxa" | |
| def getNumPages(self,docinfo=None): | def getNumPages(self,docinfo=None): |
| """get list of pages from fulltext and put in docinfo""" | """get list of pages from fulltext and put in docinfo""" |
| Line 673 class documentViewer(Folder): | Line 698 class documentViewer(Folder): |
| textmode = mode | textmode = mode |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn), outputUnicode=False) | pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn), outputUnicode=False) |
| ####### | |
| #textpython = pagexml.replace('page-fragment.xql?document=/echo/la/Benedetti_1585.xml','?url=/mpiwg/online/permanent/library/163127KK&tocMode='+str(tocMode)+'&queryResultPN='+str(queryResultPN)+'&viewMode='+str(viewMode)) | |
| #textnew =textpython.replace('mode=text','mode=texttool') | |
| ####### | |
| # post-processing downloaded xml | # post-processing downloaded xml |
| pagedom = Parse(pagexml) | pagedom = Parse(pagexml) |
| # plain text mode | # plain text mode |
| if mode == "text": | if mode == "text": |
| # first div contains text | # first div contains text |
| pagedivs = pagedom.xpath("/div") | pagedivs = pagedom.xpath("/div") |
| #queryResultPage | |
| if len(pagedivs) > 0: | if len(pagedivs) > 0: |
| pagenode = pagedivs[0] | pagenode = pagedivs[0] |
| return serializeNode(pagenode) | return serializeNode(pagenode) |
| Line 741 class documentViewer(Folder): | Line 771 class documentViewer(Folder): |
| #docinfo['tocDiv_%s'%mode] = tocDiv | #docinfo['tocDiv_%s'%mode] = tocDiv |
| return docinfo | return docinfo |
| def getTocPage(self, mode="toc", pn=1, pageinfo=None, docinfo=None): | def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None): |
| """returns single page from the table of contents""" | """returns single page from the table of contents""" |
| # TODO: this should use the cached TOC | # TODO: this should use the cached TOC |
| if mode == "text": | if mode == "text": |
| Line 763 class documentViewer(Folder): | Line 793 class documentViewer(Folder): |
| return "No TOC!" | return "No TOC!" |
| def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=10,authgroups='mpiwg',RESPONSE=None): | def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None): |
| """init document viewer""" | """init document viewer""" |
| self.title=title | self.title=title |
| self.digilibBaseUrl = digilibBaseUrl | self.digilibBaseUrl = digilibBaseUrl |