--- documentViewer/documentViewer.py 2010/02/12 14:33:02 1.41 +++ documentViewer/documentViewer.py 2010/03/08 15:02:33 1.42 @@ -1,5 +1,4 @@ - from OFS.Folder import Folder from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.PageTemplates.PageTemplateFile import PageTemplateFile @@ -11,8 +10,9 @@ from Ft.Xml.Domlette import Nonvalidatin from Ft.Xml.Domlette import PrettyPrint, Print from Ft.Xml import EMPTY_NAMESPACE, Parse -import Ft.Xml.XPath +import Ft.Xml.XPath +import xmlrpclib import os.path import sys import cgi @@ -233,6 +233,11 @@ class documentViewer(Folder): else: return style + def getTextLanguage(self,url,docinfo): + docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0]) + lang = urlencode({'':docinfo['lang']}) + return lang + def isAccessible(self, docinfo): """returns if access to the resource is granted""" @@ -424,7 +429,13 @@ class documentViewer(Folder): docinfo['lang']='' return docinfo - + + + def getNumPages(self, xquery, docinfo=None): #New Method 24.02.2010 + text=self.viewerTemplates.query.eval("/mpdl/interface/xquery.xql","document="+ docinfo['textURLPath'] +"&xquery="+str(xquery)) + docinfo['numPages'] = text.count("0): imageDir=getTextFromNode(imageDirs[0]) + else: # we balk with no image tag / not necessary anymore because textmode is now standard #raise IOError("No text-tool info in %s"%(url)) imageDir="" - docinfo['numPages']=1 # im moment einfach auf eins setzen, navigation ueber die thumbs geht natuerlich nicht - + #xquery="//pb" docinfo['imagePath'] = "" # keine Bilder docinfo['imageURL'] = "" - + if imageDir and archivePath: #print "image: ", imageDir, " archivepath: ", archivePath imageDir=os.path.join(archivePath,imageDir) @@ -504,9 +515,8 @@ class documentViewer(Folder): textUrls=dom.xpath("//texttool/text-url-path") if textUrls and (len(textUrls)>0): textUrl=getTextFromNode(textUrls[0]) - - docinfo['textURLPath'] = textUrl - + docinfo['textURLPath'] = textUrl + presentationUrls=dom.xpath("//texttool/presentation") docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom) # get info von bib tag @@ -518,10 +528,11 @@ class documentViewer(Folder): presentationUrl=url.replace('index.meta',presentationPath) else: presentationUrl=url + "/" + presentationPath - + docinfo=self.getNumPages('//pb', docinfo) #im moment einfach auf eins setzen, navigation ueber die thumbs geht natuerlich nicht docinfo = self.getBibinfoFromTextToolPresentation(presentationUrl,docinfo=docinfo,dom=dom) docinfo = self.getAuthinfoFromIndexMeta(url,docinfo=docinfo,dom=dom) # get access info + return docinfo @@ -608,6 +619,7 @@ class documentViewer(Folder): pageinfo['start'] = start pageinfo['end'] = start + grpsize if docinfo is not None: + np = int(docinfo['numPages']) pageinfo['end'] = min(pageinfo['end'], np) pageinfo['numgroups'] = int(np / grpsize)