--- zogiLib/zogiLib.py 2005/06/09 06:46:12 1.57
+++ zogiLib/zogiLib.py 2010/06/18 19:45:07 1.72
@@ -1,49 +1,30 @@
+from AccessControl import ClassSecurityInfo
+from Globals import package_home
+from OFS.Folder import Folder
+from OFS.Image import Image
+from OFS.Image import File
from OFS.SimpleItem import SimpleItem
-from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
+from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
-from OFS.Image import Image
-from AccessControl import ClassSecurityInfo
-import xml.dom.minidom
-from OFS.Folder import Folder
+from types import *
+from Globals import package_home, ImageFile
from xml_helpers import getUniqueElementText,getText
+import cgi
import os
+import random
import re
import string
import urllib
-from types import *
-import random
-import cgi
-from Globals import package_home
+import xml.dom.minidom
-ZOGIVERSION = "0.9.15b DW:22.2.2005"
+ZOGIVERSION = "0.10.4b ROC 13.11.2006"
def cropf(f):
"""returns a float with reduced precision"""
return float(int(f * 10000)/10000.0)
-def sendFile(self, filename, type):
- """sends an object or a local file (from the product) as response"""
- paths = filename.split('/')
- object = self
- # look for an object called filename
- for path in paths:
- if hasattr(object, path):
- object = getattr(object, path)
- else:
- object = None
- break
- if object:
- # if the object exists then send it
- return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)
- else:
- # send a local file with the given content-type
- fn = os.path.join(package_home(globals()), filename)
- self.REQUEST.RESPONSE.setHeader("Content-Type", type)
- self.REQUEST.RESPONSE.write(file(fn).read())
- return
-
def browserCheck(self):
"""check the browsers request to find out the browser type"""
bt = {}
@@ -76,9 +57,9 @@ class zogiImage(SimpleItem):
"""einzelnes Image"""
meta_type="zogiImage"
- manage_options=SimpleItem.manage_options+(
+ manage_options=(
{'label':'Main config','action':'changeZogiImageForm'},
- )
+ )+SimpleItem.manage_options
def __init__(self,id,title,baseUrl,queryString,content_type='',precondition=''):
@@ -98,25 +79,15 @@ class zogiImage(SimpleItem):
# """getUrlData"""
# return urllib.urlopen(self.baseUrl+self.queryString)
- def changeZogiImageForm(self):
- """Main configuration"""
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/changeZogiImageForm.zpt')).__of__(self)
- return pt()
+ changeZogiImageForm = PageTemplateFile('zpt/changeZogiImageForm.zpt', globals())
- def changeZogiImage(self,title,baseUrl, queryString,RESPONSE=None):
- """change it"""
- self.title=title
- self.baseUrl=baseUrl
- self.queryString=queryString
-
- if RESPONSE is not None:
- RESPONSE.redirect('manage_main')
-
def index_html(self, REQUEST, RESPONSE):
"""service the request by redirecting to digilib server"""
- RESPONSE.redirect(self.baseUrl+self.queryString)
+ # use status 307 = moved temporarily
+ RESPONSE.redirect(self.baseUrl+self.queryString, status=307)
return ''
+
def rescale(self,width=None,height=None):
"""andere parameter im querystring"""
qs=cgi.parse_qs(self.queryString)
@@ -128,22 +99,56 @@ class zogiImage(SimpleItem):
qs['dw']=width
if height:
qs['dh']=height
-
qsneu=urllib.urlencode(qs)
self.queryString=qsneu
return "done"
+
+ def setWithDigilibURL(self,digilibUrl):
+ """take all parameters from digilib URL string"""
+ base = re.match('(.*?/Scaler\?)(.*)', digilibUrl)
+ if base is not None:
+ params = base.group(2).split('&')
+ newparams = []
+ # filter out the parameters we want
+ for p in params:
+ (key, val) = p.split('=')
+ if key in ['fn','pn','dw','dh','ww','wh','wx','wy','mo']:
+ newparams.append(p)
+ # set the new parameters
+ if len(newparams) > 1:
+ self.baseUrl = base.group(1)
+ self.queryString = '&'.join(newparams)
+ return True
+
+ return False
+
+
+ def changeZogiImage(self,title,baseUrl, queryString, digilibUrl=None, RESPONSE=None):
+ """change it"""
+ self.title=title
+ self.baseUrl=baseUrl
+ self.queryString=queryString
+ if digilibUrl is not None and len(digilibUrl) > 0:
+ self.setWithDigilibURL(digilibUrl)
+
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
+
+
def manage_addZogiImageForm(self):
"""Form for adding"""
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiImage.zpt')).__of__(self)
return pt()
-def manage_addZogiImage(self,id,title,baseUrl, queryString,RESPONSE=None):
+def manage_addZogiImage(self,id,title,baseUrl,queryString,digilibUrl=None,RESPONSE=None):
"""add zogiimage"""
newObj=zogiImage(id,title,baseUrl, queryString)
self.Destination()._setObject(id,newObj)
+ if digilibUrl is not None and len(digilibUrl) > 0:
+ newObj.setWithDigilibURL(digilibUrl)
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
@@ -163,17 +168,58 @@ class zogiLib(Folder):
def __init__(self, id, title, dlServerURL, layout="book", basePath="", dlTarget=None, dlToolbarBaseURL=None):
"""init"""
- self.id=id
- self.title=title
+ self.id = id
+ self.title = title
self.dlServerURL = dlServerURL
- self.basePath=basePath
- self.layout=layout
+ self.basePath = basePath
+ self.layout = layout
self.dlTarget = dlTarget
if dlToolbarBaseURL:
self.dlToolbarBaseURL = dlToolbarBaseURL
else:
self.dlToolbarBaseURL = dlServerURL + "/digimage.jsp?"
+
+ self.manage_addFolder('template')
+
+
+ # form templates
+ main_book = PageTemplateFile('zpt/main_book', globals())
+ main_image = PageTemplateFile('zpt/main_image', globals())
+ main_metaData = PageTemplateFile('zpt/main_metadata', globals())
+ main_embed = PageTemplateFile('zpt/main_embed', globals())
+ #main_static = PageTemplateFile('zpt/main_static', globals())
+ options = PageTemplateFile('zpt/options', globals())
+ #changeForm = PageTemplateFile('zpt/changeForm', globals())
+
+ # display templates
+ aux_divs = PageTemplateFile('zpt/aux_divs', globals())
+ #aux_divsN4 = PageTemplateFile('zpt/aux_divsN4', globals())
+ img_div = PageTemplateFile('zpt/img_div', globals())
+
+ # javascripts
+ head_js = PageTemplateFile('zpt/head_js', globals())
+ jslib_js = PageTemplateFile('js/baselib.js', globals())
+ dllib_js = PageTemplateFile('js/dllib.js', globals())
+
+ # graphic files
+ arr_right = ImageFile('images/right.gif', globals())
+ arr_left = ImageFile('images/left.gif', globals())
+ arr_up = ImageFile('images/up.gif', globals())
+ arr_down = ImageFile('images/down.gif', globals())
+ mark1 = ImageFile('images/mark1.gif', globals())
+ mark2 = ImageFile('images/mark2.gif', globals())
+ mark3 = ImageFile('images/mark3.gif', globals())
+ mark4 = ImageFile('images/mark4.gif', globals())
+ mark5 = ImageFile('images/mark5.gif', globals())
+ mark6 = ImageFile('images/mark6.gif', globals())
+ mark7 = ImageFile('images/mark7.gif', globals())
+ mark8 = ImageFile('images/mark8.gif', globals())
+ corner1 = ImageFile('images/olinks.gif', globals())
+ corner2 = ImageFile('images/orechts.gif', globals())
+ corner3 = ImageFile('images/ulinks.gif', globals())
+ corner4 = ImageFile('images/urechts.gif', globals())
+
security.declareProtected('View','getLayout')
def getLayout(self):
@@ -233,7 +279,7 @@ class zogiLib(Folder):
sets=xml.dom.minidom.parse(urllib.urlopen(url)).getElementsByTagName('dataset')
ret=""
- print label
+ #print label
if label:
ret+="""%s"""%(viewUrl,label)
for set in sets:
@@ -300,9 +346,10 @@ class zogiLib(Folder):
def getDLInfo(self):
"""get DLInfo from digilib server"""
paramH={}
- baseUrl=self.dlServerURL+"/dlInfo-xml.jsp"
+ baseUrl=self.getDLBaseUrl()+"/dlInfo-xml.jsp"
+ #print "getdlinfo: ", baseUrl
try:
- url=urllib.urlopen(baseUrl+'?'+self.REQUEST['QUERY_STRING'])
+ url=urllib.urlopen(baseUrl+'?'+self.getAllDLParams())
dom=xml.dom.minidom.parse(url)
params=dom.getElementsByTagName('parameter')
for param in params:
@@ -312,38 +359,90 @@ class zogiLib(Folder):
return {}
- def createHeadJS(self):
- """generate all javascript tags for head"""
- self.checkQuery()
- bt = self.REQUEST.SESSION.get('browserType', {})
- if bt['staticHTML']:
- return
-
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogilib_head_js')).__of__(self)
- return pt()
+ def zogilibPathOLD(self, otherbase=None):
+ """returns an URL to the zogiLib instance"""
+ url = self.REQUEST['URL1']
+ # should end with "/"
+ if len(url) > 0 and url[-1] != '/':
+ url += '/'
+ if type(otherbase) is str:
+ url += otherbase
+ else:
+ url += self.basePath
+ # should still end with "/"
+ if len(url) > 0 and url[-1] != '/':
+ url += '/'
+ return url
- def createParamJS(self):
- """generate javascript for parameters only"""
- self.checkQuery()
- bt = self.REQUEST.SESSION['browserType']
- if bt['staticHTML']:
- return
+ def zogilibPath(self, otherbase=None):
+ """returns an URL to the zogiLib instance"""
+ url = self.absolute_url()
+ # should end with "/"
+ if len(url) > 0 and url[-1] != '/':
+ url += '/'
+ if type(otherbase) is str:
+ url += otherbase
+ else:
+ url += self.basePath
+ # should still end with "/"
+ if len(url) > 0 and url[-1] != '/':
+ url += '/'
+ return url
+ def zogilibAction(self, action, otherbase=None):
+ """returns a URL with zogilib path and action"""
+ url = self.zogilibPath(otherbase)
+ url += action
+ url += '?' + self.getAllDLParams();
+ return url
+
+ def getDLBaseUrl(self):
+ """returns digilib base URL (sans servlet path)"""
+ if self.dlServerURL[-1] == '?':
+ # full Servlet URL -- remove last part
+ si = self.dlServerURL.rindex('/servlet/')
+ if si > 0:
+ return self.dlServerURL[:si]
+ else:
+ # no servlet part :-(
+ return "http://nausikaa.mpiwg-berlin.mpg.de/digitallibrary"
+ else:
+ return self.dlServerURL
+
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogilib_param_js')).__of__(self)
- return pt()
+ def getScalerUrl(self,requestString=""):
+ """send scaler url"""
+ if requestString is None:
+ requestString = ""
+ if self.dlServerURL[-1] == '?':
+ # full Servlet URL
+ return self.dlServerURL + requestString
+ else:
+ return self.dlServerURL+'/servlet/Scaler?'+requestString
+
+ def scaledImage(self,requestString=None):
+ """scaled Image"""
-
- def createScalerImg(self, requestString=None, bottom=0, side=0, width=500, height=500):
+ if not requestString:
+ requestString=self.REQUEST['QUERY_STRING']
+
+ self.REQUEST.RESPONSE.redirect(self.getScalerUrl(requestString))
+
+ return True
+
+
+ def createScalerImg(self, requestString=None, bottom=0, side=0, width=500, height=500, options=None):
"""generate Scaler IMG Tag"""
- self.checkQuery()
- bt = self.REQUEST.SESSION['browserType']
+ self.checkQuery()
+ bt = self.getBrowserType()
# override with parameters from session
if self.REQUEST.SESSION.has_key('scalerDiv'):
(requestString, bottom, side, width, height) = self.REQUEST.SESSION['scalerDiv']
# if not explicitly defined take normal request
- if not requestString:
- requestString = self.getAllDLParams()
- url = self.dlServerURL+'/servlet/Scaler?'+requestString
+ url = self.getScalerUrl(requestString=requestString)
+ # take insets from options if present
+ if options is not None:
+ side = options.get('side', side)
+ bottom = options.get('bottom', bottom)
# construct bottom and side insets
b_par = ""
s_par = ""
@@ -362,7 +461,13 @@ class zogiLib(Folder):
tag += ''
if bt['isN4']:
tag += ''
@@ -372,7 +477,7 @@ class zogiLib(Folder):
def createScalerDiv(self, requestString = None, bottom = 0, side = 0, width=500, height=500):
"""generate scaler img and table with navigation arrows"""
- self.checkQuery()
+ self.checkQuery()
if requestString != None or bottom != 0 or side != 0:
self.REQUEST.SESSION['scalerDiv'] = (requestString, bottom, side, width, height)
else:
@@ -380,239 +485,83 @@ class zogiLib(Folder):
# make shure to remove unused parameter
del self.REQUEST.SESSION['scalerDiv']
- pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/zogilib_img_div')).__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/img_div')).__of__(self)
return pt()
- def createAuxDiv(self):
- """generate other divs"""
- self.checkQuery()
- bt = self.REQUEST.SESSION['browserType']
- if bt['staticHTML']:
- return
- if bt['isN4']:
- f = 'zpt/zogilib_divsN4.zpt'
- else:
- f = 'zpt/zogiLib_divs.zpt'
- pt=PageTemplateFile(os.path.join(package_home(globals()),f)).__of__(self)
- return pt()
-
-
- def option_js(self):
- """javascript"""
- return sendFile(self, 'js/option.js', 'text/plain')
-
- def dl_lib_js(self):
- """javascript"""
- return sendFile(self, 'js/dllib.js', 'text/plain')
-
- def js_lib_js(self):
- """javascript"""
- return sendFile(self, 'js/baselib.js', 'text/plain')
-
- def optionwindow(self):
- """showoptions"""
- self.checkQuery()
- bt = self.REQUEST.SESSION['browserType']
- if bt['staticHTML']:
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/optionwindow_static.zpt')).__of__(self)
- else:
- tp = "viewingTools.zpt"
- if hasattr(self, tp):
- pt = getattr(self, tp)
- else:
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/optionwindow.zpt')).__of__(self)
-
- return pt()
-
- def mark1(self):
- """mark image"""
- return sendFile(self, 'images/mark1.gif', 'image/gif')
-
- def mark2(self):
- """mark image"""
- return sendFile(self, 'images/mark2.gif', 'image/gif')
-
- def mark3(self):
- """mark image"""
- return sendFile(self, 'images/mark3.gif', 'image/gif')
-
- def mark4(self):
- """mark image"""
- return sendFile(self, 'images/mark4.gif', 'image/gif')
-
- def mark5(self):
- """mark image"""
- return sendFile(self, 'images/mark5.gif', 'image/gif')
-
- def mark6(self):
- """mark image"""
- return sendFile(self, 'images/mark6.gif', 'image/gif')
-
- def mark7(self):
- """mark image"""
- return sendFile(self, 'images/mark7.gif', 'image/gif')
-
- def mark8(self):
- """mark image"""
- return sendFile(self, 'images/mark8.gif', 'image/gif')
-
- def corner1(self):
- """mark image"""
- return sendFile(self, 'images/olinks.gif', 'image/gif')
-
- def corner2(self):
- """mark image"""
- return sendFile(self, 'images/orechts.gif', 'image/gif')
-
- def corner3(self):
- """mark image"""
- return sendFile(self, 'images/ulinks.gif', 'image/gif')
-
- def corner4(self):
- """mark image"""
- return sendFile(self, 'images/urechts.gif', 'image/gif')
-
- def up_img(self):
- """mark image"""
- return sendFile(self, 'images/up.gif', 'image/gif')
-
- def down_img(self):
- """mark image"""
- return sendFile(self, 'images/down.gif', 'image/gif')
-
- def left_img(self):
- """mark image"""
- return sendFile(self, 'images/left.gif', 'image/gif')
-
- def right_img(self):
- """mark image"""
- return sendFile(self, 'images/right.gif', 'image/gif')
-
-
-
def index_html(self):
"""main action"""
- self.checkQuery()
- bt = self.REQUEST.SESSION['browserType']
- tp = "zogiLibMainTemplate"
+ self.checkQuery()
+ tp = "main_template"
+ tpt = self.layout
- if hasattr(self, tp):
- pt = getattr(self, tp)
- else:
- tpt = self.layout
-
- if bt['staticHTML']:
- tpt = "static"
-
- pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogiLibMain_%s'%tpt)).__of__(self)
+ if not hasattr(self, 'template'):
+ # create template folder if it doesn't exist
+ print "no template folder -- creating"
+ self.manage_addFolder('template')
+ pt = getattr(self.template, 'main_'+tpt)
return pt()
-
- def storeQuery(self, more = None):
- """storeQuery in session"""
- dlParams = {}
+ def checkQuery(self):
+ """make shure that the query has been saved"""
+ if not self.REQUEST.has_key('dlParams'):
+ self.storeQuery()
+
+ def storeQuery(self, more=None, withpt=False):
+ """parse query parameters into a hash in REQUEST"""
+ params = {}
for fm in self.REQUEST.form.keys():
- dlParams[fm] = self.REQUEST.form[fm]
+ params[fm] = self.REQUEST.form[fm]
# look for more
if more:
for fm in more.split('&'):
try:
pv = fm.split('=')
- dlParams[pv[0]] = pv[1]
+ params[pv[0]] = pv[1]
except:
pass
# parse digilib mode parameter
- if 'mo' in dlParams:
- if len(dlParams['mo']) > 0:
- modes=dlParams['mo'].split(',')
- else:
- modes=[]
-
- wid = self.getWID()
- self.REQUEST.set('wid', wid)
- self.setSubSession('dlQuery', dlParams)
- self.setSubSession('dlModes', modes)
- self.setSubSession('dlInfo', self.getDLInfo())
- if not self.REQUEST.SESSION.has_key('browserType'):
- self.REQUEST.SESSION['browserType'] = browserCheck(self)
+ if 'mo' in params:
+ if len(params['mo']) > 0:
+ modes=params['mo'].split(',')
+ else:
+ modes = [];
+
+ self.REQUEST.set('dlParams', params)
+ self.REQUEST.set('dlModes', modes)
+
+ # trigger get pt (from dlInfo) if requested
+ if withpt:
+ pt = self.getPT()
- return
-
- def checkQuery(self):
- """check if the query has been stored"""
- if not (self.REQUEST.SESSION and self.getSubSession('dlQuery')) :
- print "ZOGILIB: have to store query!!"
- self.storeQuery()
- return
-
- def zogilibPath(self, otherbase=None):
- """returns an URL to the zogiLib instance"""
- url = self.REQUEST['URL1']
- # should end with "/"
- if len(url) > 0 and url[-1] != '/':
- url += '/'
- if type(otherbase) is str:
- url += otherbase
- else:
- url += self.basePath
- # should end with "/"
- if len(url) > 0 and url[-1] != '/':
- url += '/'
- return url
-
- def zogilibAction(self, action, otherbase=None, wid=None):
- """returns a URL with zogilib path, action and wid"""
- url = self.zogilibPath(otherbase)
- url += action
- if wid:
- url += '?wid=' + wid
- else:
- url += '?wid=' + self.getWID()
- return url
-
- def getSubSession(self, key, default=None):
- """returns an element from a session with a wid"""
- wid = self.getWID()
- return self.REQUEST.SESSION.get(key+'_'+wid, default)
-
- def setSubSession(self, key, value):
- """puts an element in a session with a wid"""
- wid = self.getWID()
- self.REQUEST.SESSION.set(key+'_'+wid, value)
- return
-
- def getWID(self):
- """returns a (new) window id"""
- wid = self.REQUEST.get('wid')
- if not wid:
- wid = 'digi_'+str(int(random.random()*10000))
- print "new WID:", wid
- return wid
+ return params
+
def getDLParam(self, param, default=None):
"""returns parameter or default"""
+ self.checkQuery()
+ dlParams = self.REQUEST.get('dlParams')
try:
- return self.getSubSession('dlQuery').get(param, default)
+ return dlParams[param]
except:
return default
def setDLParam(self, param, value):
"""sets parameter"""
- dlParams = self.getSubSession('dlQuery')
- #try:
+ self.checkQuery()
+ dlParams = self.REQUEST.get('dlParams')
dlParams[param] = value
- #except:
- # self.setSubSession('dlQuery', {param: value})
return
def getAllDLParams(self):
"""parameter string for digilib"""
- dlParams = self.getSubSession('dlQuery')
+ self.checkQuery()
+ dlParams = self.REQUEST.get('dlParams')
# save modes
- modes = self.getSubSession('dlModes')
- dlParams['mo'] = string.join(modes, ',')
+ modes = self.REQUEST.get('dlModes')
+ if modes:
+ dlParams['mo'] = string.join(modes, ',')
# assemble query string
ret = ""
for param in dlParams.keys():
@@ -623,7 +572,6 @@ class zogiLib(Folder):
# omit trailing "&"
return ret.rstrip('&')
-
def setDLParams(self,pn=None,ws=None,rot=None,brgt=None,cont=None):
"""setze Parameter"""
@@ -640,13 +588,18 @@ class zogiLib(Folder):
return self.display()
+ 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)
+ return bt
+
def display(self):
"""(re)display page"""
- if not self.getDLParam('wid'):
- wid = self.getWID()
- self.setDLParam('wid', wid)
-
params = self.getAllDLParams()
if self.basePath:
@@ -667,62 +620,38 @@ class zogiLib(Folder):
"""returns dlTarget"""
self.checkQuery()
s = self.dlTarget
- if s == None:
- s = ""
-# s = 'dl'
-# if self.getDLParam('fn'):
-# s += "_" + self.getDLParam('fn')
-# if self.getDLParam('pn'):
-# s += "_" + self.getDLParam('pn')
- return s
+ if (s is None) or (s == ""):
+# s = ""
+ s = 'dl'
+ if self.getDLParam('fn'):
+ s += "_" + self.getDLParam('fn')
+ if self.getDLParam('pn'):
+ s += "_" + self.getDLParam('pn')
- def setStaticHTML(self, static=True):
- """sets the preference to static HTML"""
- self.checkQuery()
- self.REQUEST.SESSION['browserType']['staticHTML'] = static
- return
-
- def isStaticHTML(self):
- """returns if the page is using static HTML only"""
- self.checkQuery()
- return self.REQUEST.SESSION['browserType']['staticHTML']
+ return s
+ def getPN(self):
+ """pagenumber"""
+ pn = int(self.getDLParam('pn', 1))
+ return pn
+
def getPT(self):
- """pagenums"""
- di = self.getSubSession('dlInfo')
- if di:
- return int(di['pt'])
- else:
- return 1
+ """number of total pages"""
+ pt = self.getDLParam('pt', None)
+ if pt is None:
+ # get pt from dlInfo
+ if self.REQUEST.has_key('dlInfo'):
+ info = self.REQUEST.get('dlInfo')
+ else:
+ info = self.getDLInfo()
+ self.REQUEST.set('dlInfo', info)
+ pt = int(info.get('pt', 1))
+ self.setDLParam('pt', pt)
+ return int(pt)
- def getPN(self):
- """Pagenum"""
- pn = self.getDLParam('pn')
- try:
- return int(pn)
- except:
- return 1
-
- def getBiggerWS(self):
- """ws+1"""
- ws = self.getDLParam('ws')
- try:
- return float(ws)+0.5
- except:
- return 1.5
-
- def getSmallerWS(self):
- """ws-1"""
- ws=self.getDLParam('ws')
- try:
- return max(float(ws)-0.5, 1)
- except:
- return 1
-
def hasMode(self, mode):
"""returns if mode is in the diglib mo parameter"""
- wid = self.getWID()
- return (mode in self.REQUEST.SESSION['dlModes_'+wid])
+ return (mode in self.REQUEST.get('dlModes'))
def hasNextPage(self):
"""returns if there is a next page"""
@@ -761,13 +690,13 @@ class zogiLib(Folder):
def dl_StaticHTML(self):
"""set rendering to static HTML"""
self.checkQuery()
- self.REQUEST.SESSION['browserType']['staticHTML'] = True
+ self.getBrowserType()['staticHTML'] = True
return self.display()
def dl_DynamicHTML(self):
"""set rendering to dynamic HTML"""
self.checkQuery()
- self.REQUEST.SESSION['browserType']['staticHTML'] = False
+ self.getBrowserType()['staticHTML'] = False
return self.display()
def dl_HMirror(self):
@@ -893,16 +822,6 @@ class zogiLib(Folder):
self.setDLParam('mk', None)
return self.display()
- def dl_Unmark(self):
- """action to remove last mark"""
- mk = self.getDLParam('mk')
- if mk:
- marks = mk.split(',')
- marks.pop()
- mk = string.join(marks, ',')
- self.setDLParam('mk', mk)
- return self.display()
-
def dl_db(self,db):
"""set db"""
self.setDLParam('db',db)
@@ -995,23 +914,23 @@ def manage_addZogiLibPageTemplateForm(se
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibPageTemplateForm')).__of__(self)
return pt()
-def manage_addZogiLibPageTemplate(self, id='zogiLibMainTemplate', title=None, layout=None, text=None,
+def manage_addZogiLibPageTemplate(self, title=None, layout=None, text=None,
REQUEST=None, submit=None):
"Add a Page Template with optional file content."
- id = str(id)
+ if not layout: layout = "book"
+ id = 'main_%s'%layout
self._setObject(id, zogiLibPageTemplate(id))
ob = getattr(self, id)
- if not layout: layout = "book"
- ob.pt_edit(open(os.path.join(package_home(globals()),'zpt/zogiLibMain_%s.zpt'%layout)).read(),None)
+ ob.pt_edit(open(os.path.join(package_home(globals()),'zpt/main_%s.zpt'%layout)).read(),'text/html')
if title:
ob.pt_setTitle(title)
try:
- u = self.DestinationURL()
+ url = self.DestinationURL()
except AttributeError:
- u = REQUEST['URL1']
+ url = REQUEST['URL1']
- u = "%s/%s" % (u, urllib.quote(id))
- REQUEST.RESPONSE.redirect(u+'/manage_main')
+ url = "%s/%s" % (url, urllib.quote(id))
+ REQUEST.RESPONSE.redirect(url+'/manage_main')
return ''