--- documentViewer/documentViewer.py 2011/03/01 14:53:15 1.170 +++ documentViewer/documentViewer.py 2012/01/04 07:38:17 1.178 @@ -7,7 +7,7 @@ from AccessControl import getSecurityMan from Globals import package_home from Products.zogiLib.zogiLib import browserCheck -from Ft.Xml import EMPTY_NAMESPACE, Parse +from Ft.Xml import EMPTY_NAMESPACE, Parse import Ft.Xml.Domlette import os.path import sys @@ -46,10 +46,10 @@ def getTextFromNode(nodename): def serializeNode(node, encoding="utf-8"): """returns a string containing node as XML""" stream = cStringIO.StringIO() - logging.debug("BUF: %s"%(stream)) - Ft.Xml.Domlette.PrettyPrint(node, stream=stream, encoding=encoding) + #logging.debug("BUF: %s"%(stream)) + Ft.Xml.Domlette.Print(node, stream=stream, encoding=encoding) s = stream.getvalue() - logging.debug("BUF: %s"%(s)) + #logging.debug("BUF: %s"%(s)) stream.close() return s @@ -230,7 +230,15 @@ class documentViewer(Folder): def getTextPage(self, **args): """get page""" return self.template.fulltextclient.getTextPage(**args) + + def getOrigPages(self, **args): + """get page""" + return self.template.fulltextclient.getOrigPages(**args) + def getOrigPagesNorm(self, **args): + """get page""" + return self.template.fulltextclient.getOrigPagesNorm(**args) + def getQuery(self, **args): """get query in search""" return self.template.fulltextclient.getQuery(**args) @@ -255,6 +263,14 @@ class documentViewer(Folder): """get lemma""" return self.template.fulltextclient.getLemma(**args) + def getLemmaQuery(self, **args): + """get query""" + return self.template.fulltextclient.getLemmaQuery(**args) + + def getLex(self, **args): + """get lex""" + return self.template.fulltextclient.getLex(**args) + def getToc(self, **args): """get toc""" return self.template.fulltextclient.getToc(**args) @@ -579,7 +595,7 @@ class documentViewer(Folder): def getBibinfoFromIndexMeta(self,path,docinfo=None,dom=None,cut=0): """gets bibliographical info from the index.meta file at path or given by dom""" - logging.debug("documentViewer (getbibinfofromindexmeta) path: %s"%(path)) + #logging.debug("documentViewer (getbibinfofromindexmeta) path: %s"%(path)) if docinfo is None: docinfo = {} @@ -591,7 +607,7 @@ class documentViewer(Folder): docinfo['indexMetaPath']=self.getIndexMetaPath(path); - logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path)) + #logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path)) # put in all raw bib fields as dict "bib" bib = dom.xpath("//bib/*") if bib and len(bib)>0: @@ -611,8 +627,8 @@ class documentViewer(Folder): bibtype=bibtype.replace("-"," ") # wrong typesiin index meta "-" instead of " " (not wrong! ROC) docinfo['bib_type'] = bibtype bibmap=metaData.generateMappingForType(bibtype) - logging.debug("documentViewer (getbibinfofromindexmeta) bibmap:"+repr(bibmap)) - logging.debug("documentViewer (getbibinfofromindexmeta) bibtype:"+repr(bibtype)) + #logging.debug("documentViewer (getbibinfofromindexmeta) bibmap:"+repr(bibmap)) + #logging.debug("documentViewer (getbibinfofromindexmeta) bibtype:"+repr(bibtype)) # if there is no mapping bibmap is empty (mapping sometimes has empty fields) if len(bibmap) > 0 and len(bibmap['author'][0]) > 0: try: @@ -624,7 +640,7 @@ class documentViewer(Folder): try: docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0]) except: pass - logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype) + #logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype) try: docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0]) except: @@ -669,9 +685,10 @@ class documentViewer(Folder): docinfo['isbn_issn']=getTextFromNode(dom.xpath("//bib/isbn_issn")[0]) except: docinfo['isbn_issn']='' + #logging.debug("I NEED BIBTEX %s"%docinfo) return docinfo - + def getNameFromIndexMeta(self,path,docinfo=None,dom=None,cut=0): """gets name info from the index.meta file at path or given by dom""" if docinfo is None: @@ -760,7 +777,20 @@ class documentViewer(Folder): textUrl = textUrl.replace("/mpiwg/online", '', 1) docinfo['textURL'] = textUrl - + + + #TODO: hack-DW for annalen + if (textUrl is not None) and (textUrl.startswith("/permanent/einstein/annalen")): + textUrl=textUrl.replace("/permanent/einstein/annalen/","/diverse/de/") + splitted=textUrl.split("/fulltext") + textUrl=splitted[0]+".xml" + textUrlkurz = string.split(textUrl, ".")[0] + docinfo['textURLPathkurz'] = textUrlkurz + docinfo['textURLPath'] = textUrl + logging.debug("hack") + logging.debug(textUrl) + + # new style text-url-path textUrls = dom.xpath("//texttool/text-url-path") if textUrls and (len(textUrls) > 0): @@ -775,6 +805,7 @@ class documentViewer(Folder): presentationUrls = dom.xpath("//texttool/presentation") docinfo = self.getBibinfoFromIndexMeta(url, docinfo=docinfo, dom=dom) # get info von bib tag + #docinfo = self.getDownloadfromDocinfoToBibtex(url, docinfo=docinfo, dom=dom) docinfo = self.getNameFromIndexMeta(url, docinfo=docinfo, dom=dom) @@ -830,6 +861,7 @@ class documentViewer(Folder): #path ist the path to the images it assumes that the index.meta file is one level higher. docinfo = self.getBibinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1) + #docinfo = self.getDownloadfromDocinfoToBibtex(pathorig,docinfo=docinfo,cut=cut+1) docinfo = self.getAuthinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1) return docinfo @@ -890,12 +922,18 @@ class documentViewer(Folder): pageinfo['viewMode'] = viewMode pageinfo['tocMode'] = tocMode pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') - pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','') + #pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','1') pageinfo['query'] = self.REQUEST.get('query','') pageinfo['queryType'] = self.REQUEST.get('queryType','') pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext') pageinfo['textPN'] = self.REQUEST.get('textPN','1') pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','') + + pageinfo ['highlightElementPos'] = self.REQUEST.get('highlightElementPos','') + pageinfo ['highlightElement'] = self.REQUEST.get('highlightElement','') + + pageinfo ['xpointer'] = self.REQUEST.get('xpointer','') + pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30') pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10') pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1') @@ -912,7 +950,8 @@ class documentViewer(Folder): tocPages=tocSize/tocPageSize pageinfo['tocPN'] = min (tocPages,toc) pageinfo['searchPN'] =self.REQUEST.get('searchPN','1') - pageinfo['sn'] =self.REQUEST.get('sn','') + #pageinfo['sn'] =self.REQUEST.get('sn','') + pageinfo['s'] =self.REQUEST.get('s','') return pageinfo def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):