--- documentViewer/documentViewer.py 2010/11/09 11:38:25 1.156 +++ documentViewer/documentViewer.py 2010/12/22 11:54:46 1.162 @@ -147,10 +147,12 @@ class documentViewer(Folder): toc_text = PageTemplateFile('zpt/toc_text', globals()) toc_figures = PageTemplateFile('zpt/toc_figures', globals()) page_main_images = PageTemplateFile('zpt/page_main_images', globals()) + page_main_double = PageTemplateFile('zpt/page_main_double', globals()) page_main_text = PageTemplateFile('zpt/page_main_text', globals()) page_main_text_dict = PageTemplateFile('zpt/page_main_text_dict', globals()) page_main_gis =PageTemplateFile ('zpt/page_main_gis', globals()) page_main_xml = PageTemplateFile('zpt/page_main_xml', globals()) + page_main_pureXml = PageTemplateFile('zpt/page_main_pureXml', globals()) head_main = PageTemplateFile('zpt/head_main', globals()) docuviewer_css = PageTemplateFile('css/docuviewer.css', globals()) info_xml = PageTemplateFile('zpt/info_xml', globals()) @@ -211,10 +213,6 @@ class documentViewer(Folder): """get query""" return self.template.fulltextclient.getQueryResultHitsFigures(**args) - def getPDF(self, **args): - """get query""" - return self.template.fulltextclient.getPDF(**args) - def getSearch(self, **args): """get search""" return self.template.fulltextclient.getSearch(**args) @@ -231,6 +229,18 @@ class documentViewer(Folder): """get original page number """ return self.template.fulltextclient.getOrigPages(**args) + def getAllPlaces(self, **args): + """get original page number """ + return self.template.fulltextclient.getAllPlaces(**args) + + def getTocEntries(self, **args): + """get original page number """ + return self.template.fulltextclient.getTocEntries(**args) + + def getFigureEntries(self, **args): + """get original page number """ + return self.template.fulltextclient.getFigureEntries(**args) + def getNumPages(self, docinfo): """get numpages""" return self.template.fulltextclient.getNumPages(docinfo) @@ -282,7 +292,7 @@ class documentViewer(Folder): pt = getattr(self.template, 'thumbs_main_rss') if viewMode=="auto": # automodus gewaehlt - if docinfo.has_key("textURL") or docinfo.has_key('textURLPath'): #texturl gesetzt und textViewer konfiguriert + if docinfo.has_key("textURL") or docinfo.get('textURLPath',None): #texturl gesetzt und textViewer konfiguriert viewMode="text" else: viewMode="images" @@ -290,7 +300,7 @@ class documentViewer(Folder): return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) security.declareProtected('View','index_html') - def index_html(self,url,mode="texttool",viewMode="auto",tocMode="thumbs",start=None,pn=1,mk=None, query=None, querySearch=None, characterNormalization="", optionToggle=None): + def index_html(self,url,mode="texttool",viewMode="auto",tocMode="thumbs",start=None,pn=1,mk=None): ''' view it @param mode: defines how to access the document behind url @@ -318,7 +328,7 @@ class documentViewer(Folder): docinfo = self.getToc(mode=tocMode, docinfo=docinfo) if viewMode=="auto": # automodus gewaehlt - if docinfo.has_key('textURL') or docinfo.has_key('textURLPath'): #texturl gesetzt und textViewer konfiguriert + if docinfo.has_key('textURL') or docinfo.get('textURLPath',None): #texturl gesetzt und textViewer konfiguriert viewMode="text_dict" else: viewMode="images" @@ -341,10 +351,8 @@ class documentViewer(Folder): def getBrowser(self): """getBrowser the version of browser """ - names="" - names = browserCheck(self) - #logging.debug("XXXXXXXXXXXXXXXX: %s"%names) - return names + bt = browserCheck(self) + return bt def findDigilibUrl(self): """try to get the digilib URL from zogilib""" @@ -363,41 +371,48 @@ class documentViewer(Folder): else: return style - def getLink(self,param=None,val=None): - """link to documentviewer with parameter param set to val""" - params=self.REQUEST.form.copy() + def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): + """returns URL to documentviewer with parameter param set to val or from dict params""" + # copy existing request params + urlParams=self.REQUEST.form.copy() + # change single param if param is not None: if val is None: - if params.has_key(param): - del params[param] + if urlParams.has_key(param): + del urlParams[param] else: - params[param] = str(val) + urlParams[param] = str(val) - if params.get("mode", None) == "filepath": #wenn beim erst Aufruf filepath gesetzt wurde aendere das nun zu imagepath - params["mode"] = "imagepath" - params["url"] = getParentDir(params["url"]) + # change more params + if params is not None: + for k in params.keys(): + v = params[k] + if v is None: + # val=None removes param + if urlParams.has_key(k): + del urlParams[k] + + else: + urlParams[k] = v + + # FIXME: does this belong here? + if urlParams.get("mode", None) == "filepath": #wenn beim erst Aufruf filepath gesetzt wurde aendere das nun zu imagepath + urlParams["mode"] = "imagepath" + urlParams["url"] = getParentDir(urlParams["url"]) - # quote values and assemble into query string - #ps = "&".join(["%s=%s"%(k,urllib.quote(v)) for (k, v) in params.items()]) - ps = urllib.urlencode(params) - url=self.REQUEST['URL1']+"?"+ps + # quote values and assemble into query string (not escaping '/') + ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(v,'/')) for (k, v) in urlParams.items()]) + #ps = urllib.urlencode(urlParams) + if baseUrl is None: + baseUrl = self.REQUEST['URL1'] + + url = "%s?%s"%(baseUrl, ps) return url - def getLinkAmp(self,param=None,val=None): + + def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None): """link to documentviewer with parameter param set to val""" - params=self.REQUEST.form.copy() - if param is not None: - if val is None: - if params.has_key(param): - del params[param] - else: - params[param] = str(val) - - # quote values and assemble into query string - logging.debug("XYXXXXX: %s"%repr(params.items())) - ps = "&".join(["%s=%s"%(k,urllib.quote(v)) for (k, v) in params.items()]) - url=self.REQUEST['URL1']+"?"+ps - return url + return self.getLink(param, val, params, baseUrl, '&') def getInfo_xml(self,url,mode): """returns info about the document as XML""" @@ -795,13 +810,17 @@ class documentViewer(Folder): else: logging.error("documentViewer (getdocinfo) unknown mode: %s!"%mode) raise ValueError("Unknown mode %s! Has to be one of 'texttool','imagepath','filepath'."%(mode)) - + + # FIXME: fake texturlpath + if not docinfo.has_key('textURLPath'): + docinfo['textURLPath'] = None + logging.debug("documentViewer (getdocinfo) docinfo: %s"%docinfo) #logging.debug("documentViewer (getdocinfo) docinfo: %s"%) self.REQUEST.SESSION['docinfo'] = docinfo return docinfo - def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None,characterNormalization=""): + def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None): """returns pageinfo with the given parameters""" pageinfo = {} current = getInt(current) @@ -825,7 +844,7 @@ class documentViewer(Folder): pageinfo['numgroups'] += 1 pageinfo['viewMode'] = viewMode pageinfo['tocMode'] = tocMode - pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','') + pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','') pageinfo['query'] = self.REQUEST.get('query','') pageinfo['queryType'] = self.REQUEST.get('queryType','')