--- documentViewer/documentViewer.py 2010/06/17 18:34:36 1.72 +++ documentViewer/documentViewer.py 2010/08/24 09:38:45 1.90 @@ -7,7 +7,7 @@ from AccessControl import getSecurityMan from Globals import package_home from Ft.Xml import EMPTY_NAMESPACE, Parse -from Ft.Xml.Domlette import PrettyPrint, Print +import Ft.Xml.Domlette import os.path import sys import urllib @@ -43,7 +43,7 @@ def getTextFromNode(nodename): def serializeNode(node, encoding='utf-8'): """returns a string containing node as XML""" buf = cStringIO.StringIO() - Print(node, stream=buf, encoding=encoding) + Ft.Xml.Domlette.Print(node, stream=buf, encoding=encoding) s = buf.getvalue() buf.close() return s @@ -119,6 +119,7 @@ class documentViewer(Folder): page_main_images = PageTemplateFile('zpt/page_main_images', 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()) head_main = PageTemplateFile('zpt/head_main', globals()) docuviewer_css = PageTemplateFile('css/docuviewer.css', globals()) @@ -232,6 +233,7 @@ class documentViewer(Folder): @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 tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) + @param characterNormalization type of text display (reg, norm, none) @param querySearch: type of different search modes (fulltext, fulltextMorph, xpath, xquery, ftIndex, ftIndexMorph, fulltextMorphLemma) ''' @@ -266,7 +268,7 @@ class documentViewer(Folder): ret="" if mk is None: return "" - if type(mk) is not ListType: + if not isinstance(mk, list): mk=[mk] for m in mk: ret+="mk=%s"%m @@ -305,7 +307,8 @@ class documentViewer(Folder): params["url"] = getParentDir(params["url"]) # quote values and assemble into query string - ps = "&".join(["%s=%s"%(k,urllib.quote(v)) for (k, v) in params.items()]) + #ps = "&".join(["%s=%s"%(k,urllib.quote(v)) for (k, v) in params.items()]) + ps = urllib.urlencode(params) url=self.REQUEST['URL1']+"?"+ps return url @@ -346,13 +349,14 @@ class documentViewer(Folder): elif access is None or access in self.authgroups: # only local access -- only logged in users user = getSecurityManager().getUser() + logging.debug("documentViewer (accessOK) user=%s ip=%s"%(user,self.REQUEST.getClientAddr())) if user is not None: #print "user: ", user return (user.getUserName() != "Anonymous User") else: return False - logging.debug("documentViewer (accessOK) unknown access type %s"%access) + logging.error("documentViewer (accessOK) unknown access type %s"%access) return False @@ -674,7 +678,7 @@ class documentViewer(Folder): self.REQUEST.SESSION['docinfo'] = docinfo return docinfo - def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None): + def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None, characterNormalization=None): """returns pageinfo with the given parameters""" pageinfo = {} current = getInt(current) @@ -697,6 +701,7 @@ class documentViewer(Folder): pageinfo['numgroups'] += 1 pageinfo['viewMode'] = viewMode pageinfo['tocMode'] = tocMode + pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','') pageinfo['query'] = self.REQUEST.get('query',' ') pageinfo['queryType'] = self.REQUEST.get('queryType',' ') pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext') @@ -708,6 +713,8 @@ class documentViewer(Folder): toc = int (pageinfo['tocPN']) pageinfo['textPages'] =int (toc) + + if 'tocSize_%s'%tocMode in docinfo: tocSize = int(docinfo['tocSize_%s'%tocMode]) tocPageSize = int(pageinfo['tocPageSize'])