Changeset 128:4db49915d825 in documentViewer
- Timestamp:
- Jun 11, 2010, 10:34:24 AM (14 years ago)
- Branch:
- default
- Tags:
- Root_modularisierung
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentViewer.py
r127 r128 640 640 self.REQUEST.SESSION['docinfo'] = docinfo 641 641 return docinfo 642 643 642 644 643 def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None): 645 644 """returns pageinfo with the given parameters""" … … 662 661 pageinfo['numgroups'] = int(np / grpsize) 663 662 if np % grpsize > 0: 664 pageinfo['numgroups'] += 1 665 666 663 pageinfo['numgroups'] += 1 667 664 pageinfo['viewMode'] = viewMode 668 665 pageinfo['tocMode'] = tocMode … … 681 678 tocSize = int(docinfo['tocSize_%s'%tocMode]) 682 679 tocPageSize = int(pageinfo['tocPageSize']) 683 # cached toc 684 680 # cached toc 685 681 if tocSize%tocPageSize>0: 686 682 tocPages=tocSize/tocPageSize+1 687 683 else: 688 684 tocPages=tocSize/tocPageSize 689 pageinfo['tocPN'] = min (tocPages,toc) 690 685 pageinfo['tocPN'] = min (tocPages,toc) 691 686 pageinfo['searchPN'] =self.REQUEST.get('searchPN','1') 692 687 pageinfo['sn'] =self.REQUEST.get('sn','') 693 694 688 return pageinfo 695 689 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): 697 691 """get search list""" 698 692 docpath = docinfo['textURLPath'] … … 726 720 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)) 727 721 hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl) 728 return serializeNode(pagenode) 729 722 return serializeNode(pagenode) 730 723 if (queryType=="fulltextMorph"): 731 724 pagedivs = pagedom.xpath("//div[@class='queryResult']") … … 742 735 hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl) 743 736 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)) 746 738 l.setAttributeNS(None, 'target', '_blank') 747 739 l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;") 748 740 l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();') 749 741 pagedivs = pagedom.xpath("//div[@class='queryResultMorphExpansion']") 750 return serializeNode(pagenode) 751 742 return serializeNode(pagenode) 752 743 if (queryType=="ftIndex")or(queryType=="ftIndexMorph"): 753 744 pagedivs= pagedom.xpath("//div[@class='queryResultPage']") … … 759 750 if hrefNode: 760 751 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)) 763 753 if href.startswith('../lt/lex.xql'): 764 754 hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl) … … 791 781 tocPN = pageinfo['tocPN'] 792 782 selfurl = self.absolute_url() 793 794 #pn = pageinfo['searchPN']795 796 783 if mode == "text_dict": 797 784 textmode = "textPollux" … … 801 788 textParam = "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn) 802 789 if highlightQuery is not None: 803 textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn) 804 790 textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn) 805 791 pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False) 806 792 pagedom = Parse(pagexml) … … 809 795 # first div contains text 810 796 pagedivs = pagedom.xpath("/div") 811 #queryResultPage812 797 if len(pagedivs) > 0: 813 798 pagenode = pagedivs[0] … … 815 800 for l in links: 816 801 hrefNode = l.getAttributeNodeNS(None, u"href") 817 818 802 if hrefNode: 819 803 href= hrefNode.nodeValue 820 804 if href.startswith('#note-'): 821 805 hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn)) 822 823 806 return serializeNode(pagenode) 824 807 if mode == "xml": … … 855 838 l.setAttributeNS(None, 'target', '_blank') 856 839 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();') 859 841 if href.startswith('lt/lemma.xql'): 860 842 selfurl = self.absolute_url() … … 862 844 l.setAttributeNS(None, 'target', '_blank') 863 845 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();') 866 847 if href.startswith('#note-'): 867 848 hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn)) 868 869 870 849 return serializeNode(pagenode) 871 872 850 return "no text here" 873 851 … … 880 858 """simular words lemma """ 881 859 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))) 883 865 return pagexml 884 866 … … 890 872 query =pageinfo['query'] 891 873 queryType =pageinfo['queryType'] 892 893 874 tocSearch = 0 894 875 tocDiv = None 895 876 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 897 877 pagedom = Parse(pagexml) 898 878 numdivs = pagedom.xpath("//div[@class='queryResultHits']") … … 906 886 logging.debug("documentViewer (gettoc) mode: %s"%(mode)) 907 887 if mode == "none": 908 return docinfo 909 888 return docinfo 910 889 if 'tocSize_%s'%mode in docinfo: 911 890 # cached toc … … 930 909 if len(numdivs) > 0: 931 910 tocSize = int(getTextFromNode(numdivs[0])) 932 # div contains text933 #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")934 #if len(pagedivs) > 0:935 # tocDiv = pagedivs[0]936 937 911 docinfo['tocSize_%s'%mode] = tocSize 938 #docinfo['tocDiv_%s'%mode] = tocDiv939 912 return docinfo 940 913 941 914 def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None): 942 915 """returns single page from the table of contents""" 943 916 # TODO: this should use the cached TOC … … 947 920 queryType = mode 948 921 docpath = docinfo['textURLPath'] 949 path = docinfo['textURLPath'] 950 #logging.debug("documentViewer (gettoc) pathNomer: %s"%(pathNomer)) 922 path = docinfo['textURLPath'] 951 923 pagesize = pageinfo['tocPageSize'] 952 924 pn = pageinfo['tocPN'] … … 955 927 viewMode= pageinfo['viewMode'] 956 928 tocMode = pageinfo['tocMode'] 957 tocPN = pageinfo['tocPN'] 958 929 tocPN = pageinfo['tocPN'] 959 930 pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False) 960 931 page = pagexml.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN)) 961 932 text = page.replace('mode=image','mode=texttool') 962 933 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 935 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None): 974 936 """init document viewer""" 975 937 self.title=title … … 980 942 if RESPONSE is not None: 981 943 RESPONSE.redirect('manage_main') 982 983 984 944 985 945 def manage_AddDocumentViewerForm(self): … … 996 956 RESPONSE.redirect('manage_main') 997 957 998 999 ##1000 958 ## DocumentViewerTemplate class 1001 ##1002 959 class DocumentViewerTemplate(ZopePageTemplate): 1003 960 """Template for document viewer"""
Note: See TracChangeset
for help on using the changeset viewer.