version 1.100, 2010/10/05 09:22:46
|
version 1.138, 2010/10/18 10:33:47
|
Line 5 from Products.PageTemplates.PageTemplate
|
Line 5 from Products.PageTemplates.PageTemplate
|
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo |
from AccessControl import getSecurityManager |
from AccessControl import getSecurityManager |
from Globals import package_home |
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 Ft.Xml.Domlette |
import os.path |
import os.path |
import sys |
import sys |
import urllib |
import urllib |
|
|
import urllib2 |
import urllib2 |
import logging |
import logging |
import math |
import math |
Line 18 import urlparse
|
Line 20 import urlparse
|
import cStringIO |
import cStringIO |
import re |
import re |
|
|
|
|
def logger(txt,method,txt2): |
def logger(txt,method,txt2): |
"""logging""" |
"""logging""" |
logging.info(txt+ txt2) |
logging.info(txt+ txt2) |
Line 49 def serializeNode(node, encoding='utf-8'
|
Line 52 def serializeNode(node, encoding='utf-8'
|
buf.close() |
buf.close() |
return s |
return s |
|
|
|
def getBrowserType(self): |
|
"""get browser type object""" |
|
if self.REQUEST.SESSION.has_key('browserType'): |
|
return self.REQUEST.SESSION['browserType'] |
|
else: |
|
bt = browserCheck(self) |
|
self.REQUEST.SESSION.set('browserType', bt) |
|
logging.debug("documentViewer (BROWSER TYPE) bt %s"%bt) |
|
return bt |
|
|
|
|
def getParentDir(path): |
def getParentDir(path): |
"""returns pathname shortened by one""" |
"""returns pathname shortened by one""" |
Line 174 class documentViewer(Folder):
|
Line 187 class documentViewer(Folder):
|
"""get search""" |
"""get search""" |
return self.template.fulltextclient.getSearch(**args) |
return self.template.fulltextclient.getSearch(**args) |
|
|
|
def getGisPlaces(self, **args): |
|
"""get gis places""" |
|
return self.template.fulltextclient.getGisPlaces(**args) |
|
|
|
def getAllGisPlaces(self, **args): |
|
"""get all gis places """ |
|
return self.template.fulltextclient.getAllGisPlaces(**args) |
|
|
|
def getOrigPages(self, **args): |
|
"""get original page number """ |
|
return self.template.fulltextclient.getOrigPages(**args) |
|
|
def getNumPages(self, docinfo): |
def getNumPages(self, docinfo): |
"""get numpages""" |
"""get numpages""" |
return self.template.fulltextclient.getNumPages(docinfo) |
return self.template.fulltextclient.getNumPages(docinfo) |
Line 219 class documentViewer(Folder):
|
Line 244 class documentViewer(Folder):
|
self.digilibBaseUrl = self.findDigilibUrl() or "http://nausikaa.mpiwg-berlin.mpg.de/digitallibrary" |
self.digilibBaseUrl = self.findDigilibUrl() or "http://nausikaa.mpiwg-berlin.mpg.de/digitallibrary" |
|
|
docinfo = self.getDocinfo(mode=mode,url=url) |
docinfo = self.getDocinfo(mode=mode,url=url) |
|
#pageinfo = self.getPageinfo(start=start,current=pn,docinfo=docinfo) |
pageinfo = self.getPageinfo(start=start,current=pn,docinfo=docinfo) |
pageinfo = self.getPageinfo(start=start,current=pn,docinfo=docinfo) |
|
''' ZDES ''' |
pt = getattr(self.template, 'thumbs_main_rss') |
pt = getattr(self.template, 'thumbs_main_rss') |
|
|
if viewMode=="auto": # automodus gewaehlt |
if viewMode=="auto": # automodus gewaehlt |
Line 401 class documentViewer(Folder):
|
Line 428 class documentViewer(Folder):
|
regpath = regexp.match(url) |
regpath = regexp.match(url) |
if (regpath==None): |
if (regpath==None): |
return "" |
return "" |
|
logging.debug("(getDomFromIndexMeta): URLXAXA: %s"%regpath.group(2)) |
return ("/mpiwg/online/"+regpath.group(1)+"/"+regpath.group(2)) |
return ("/mpiwg/online/"+regpath.group(1)+"/"+regpath.group(2)) |
|
|
|
|
|
|
def getIndexMetaUrl(self,url): |
def getIndexMetaUrl(self,url): |
"""returns utr of index.meta document at url""" |
"""returns utr of index.meta document at url""" |
|
|
Line 533 class documentViewer(Folder):
|
Line 562 class documentViewer(Folder):
|
return 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: |
|
docinfo = {} |
|
|
|
if dom is None: |
|
for x in range(cut): |
|
path=getParentDir(path) |
|
dom = self.getDomFromIndexMeta(path) |
|
|
|
docinfo['name']=getTextFromNode(dom.xpath("/resource/name")[0]) |
|
logging.debug("documentViewer docinfo[name] %s"%docinfo['name']) |
|
return docinfo |
|
|
def getDocinfoFromTextTool(self, url, dom=None, docinfo=None): |
def getDocinfoFromTextTool(self, url, dom=None, docinfo=None): |
"""parse texttool tag in index meta""" |
"""parse texttool tag in index meta""" |
logging.debug("documentViewer (getdocinfofromtexttool) url: %s" % (url)) |
logging.debug("documentViewer (getdocinfofromtexttool) url: %s" % (url)) |
Line 619 class documentViewer(Folder):
|
Line 662 class documentViewer(Folder):
|
|
|
presentationUrls = dom.xpath("//texttool/presentation") |
presentationUrls = dom.xpath("//texttool/presentation") |
docinfo = self.getBibinfoFromIndexMeta(url, docinfo=docinfo, dom=dom) # get info von bib tag |
docinfo = self.getBibinfoFromIndexMeta(url, docinfo=docinfo, dom=dom) # get info von bib tag |
|
docinfo = self.getNameFromIndexMeta(url, docinfo=docinfo, dom=dom) |
|
docinfo =self.getOrigPages(docinfo=docinfo) |
|
|
if presentationUrls and (len(presentationUrls) > 0): # ueberschreibe diese durch presentation informationen |
if presentationUrls and (len(presentationUrls) > 0): # ueberschreibe diese durch presentation informationen |
# presentation url ergiebt sich ersetzen von index.meta in der url der fuer die Metadaten |
# presentation url ergiebt sich ersetzen von index.meta in der url der fuer die Metadaten |
Line 699 class documentViewer(Folder):
|
Line 744 class documentViewer(Folder):
|
raise ValueError("Unknown mode %s! Has to be one of 'texttool','imagepath','filepath'."%(mode)) |
raise ValueError("Unknown mode %s! Has to be one of 'texttool','imagepath','filepath'."%(mode)) |
|
|
logging.debug("documentViewer (getdocinfo) docinfo: %s"%docinfo) |
logging.debug("documentViewer (getdocinfo) docinfo: %s"%docinfo) |
|
|
self.REQUEST.SESSION['docinfo'] = docinfo |
self.REQUEST.SESSION['docinfo'] = docinfo |
return 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,characterNormalization="",originalPage=None): |
"""returns pageinfo with the given parameters""" |
"""returns pageinfo with the given parameters""" |
pageinfo = {} |
pageinfo = {} |
current = getInt(current) |
current = getInt(current) |
|
|
|
pageinfo ['originalPage'] = originalPage |
pageinfo['current'] = current |
pageinfo['current'] = current |
rows = int(rows or self.thumbrows) |
rows = int(rows or self.thumbrows) |
pageinfo['rows'] = rows |
pageinfo['rows'] = rows |
Line 738 class documentViewer(Folder):
|
Line 786 class documentViewer(Folder):
|
toc = int (pageinfo['tocPN']) |
toc = int (pageinfo['tocPN']) |
pageinfo['textPages'] =int (toc) |
pageinfo['textPages'] =int (toc) |
|
|
|
logging.debug("originalPage: %s"%originalPage) |
|
|
if 'tocSize_%s'%tocMode in docinfo: |
if 'tocSize_%s'%tocMode in docinfo: |
tocSize = int(docinfo['tocSize_%s'%tocMode]) |
tocSize = int(docinfo['tocSize_%s'%tocMode]) |
tocPageSize = int(pageinfo['tocPageSize']) |
tocPageSize = int(pageinfo['tocPageSize']) |