--- zogiLib/zogiLib.py 2004/06/02 17:32:54 1.18
+++ zogiLib/zogiLib.py 2004/06/02 21:53:15 1.21
@@ -427,13 +427,14 @@ class zogiLib(Folder):
{'label':'Main Config','action':'changeZogiLibForm'},
)
- def __init__(self, id,title,digilibBaseUrl, localFileBase,version="book"):
+ def __init__(self, id, title, digilibBaseUrl, localFileBase, version="book", basePath=""):
"""init"""
self.id=id
self.title=title
self.digilibBaseUrl=digilibBaseUrl
self.localFileBase=localFileBase
+ self.basePath=basePath
self.layout=version
@@ -453,15 +454,22 @@ class zogiLib(Folder):
def createHeadJS(self):
- """generate javascript tags for head"""
+ """generate all javascript tags for head"""
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogilib_head_js')).__of__(self)
return pt()
+
+ def createParamJS(self):
+ """generate javascript for parameters only"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogilib_param_js')).__of__(self)
+ return pt()
+
- def createScalerImg(self, requestString = None):
+ def createScalerImg(self, requestString = None, bottom = 0, side = 0):
"""generate Scaler IMG Tag"""
- bt = self.REQUEST.SESSION['browserType']
+ self.checkQuery()
+ bt = self.REQUEST.SESSION['browserType']
if not requestString:
- requestString = self.REQUEST.QUERY_STRING
+ requestString = self.getAllDLParams()
url = self.digilibBaseUrl+requestString
tag = ""
if bt.isN4:
@@ -470,7 +478,12 @@ class zogiLib(Folder):
tag += '
'
tag += ''
if bt.isN4:
tag += ''
@@ -480,7 +493,8 @@ class zogiLib(Folder):
def createAuxDiv(self):
"""generate other divs"""
- bt = self.REQUEST.SESSION['browserType']
+ self.checkQuery()
+ bt = self.REQUEST.SESSION['browserType']
if bt.isN4:
f = 'zpt/zogilib_divsN4.zpt'
else:
@@ -569,12 +583,20 @@ class zogiLib(Folder):
- def storeQuery(self):
+ def storeQuery(self, more = None):
"""storeQuery in session"""
dlParams = {}
for fm in self.REQUEST.form.keys():
dlParams[fm] = self.REQUEST.form[fm]
-
+ # look for more
+ if more:
+ for fm in more.split('&'):
+ try:
+ pv = fm.split('=')
+ dlParams[pv[0]] = pv[1]
+ except:
+ print "ouch!"
+ # parse digilib mode parameter
if 'mo' in dlParams:
if len(dlParams['mo']) > 0:
modes=dlParams['mo'].split(',')
@@ -586,6 +608,11 @@ class zogiLib(Folder):
self.REQUEST.SESSION['dlInfo'] = self.getDLInfo()
self.REQUEST.SESSION['browserType'] = BrowserCheck(self)
+ def checkQuery(self):
+ """check if the query has been stored"""
+ if not (self.REQUEST.SESSION):
+ print "ZOGILIB: have to store query!!"
+ storeQuery(self)
def getDLParam(self,param):
"""returns parameter"""
@@ -626,6 +653,8 @@ class zogiLib(Folder):
self.setDLParam('cont', cont)
if pn:
+ # unmark
+ self.setDLParam('mk', None)
self.setDLParam('pn', pn)
if ws:
@@ -640,7 +669,10 @@ class zogiLib(Folder):
def display(self):
"""(re)display page"""
params = self.getAllDLParams()
- self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'?'+params)
+ if self.basePath:
+ self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?'+params)
+ else:
+ self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'?'+params)
def getPT(self):
"""pagenums"""
@@ -775,11 +807,12 @@ class zogiLib(Folder):
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/changeZogiLibForm.zpt')).__of__(self)
return pt()
- def changeZogiLib(self,title,digilibBaseUrl, localFileBase, version, RESPONSE=None):
+ def changeZogiLib(self,title,digilibBaseUrl, localFileBase, version, basePath, RESPONSE=None):
"""change it"""
self.title=title
self.digilibBaseUrl=digilibBaseUrl
self.localFileBase=localFileBase
+ self.basePath = basePath
self.layout=version
if RESPONSE is not None:
@@ -791,9 +824,9 @@ def manage_addZogiLibForm(self):
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibForm')).__of__(self)
return pt()
-def manage_addZogiLib(self,id,title,digilibBaseUrl, localFileBase,version="book",RESPONSE=None):
+def manage_addZogiLib(self,id,title,digilibBaseUrl, localFileBase,version="book",basePath="",RESPONSE=None):
"""add dgilib"""
- newObj=zogiLib(id,title,digilibBaseUrl, localFileBase, version)
+ newObj=zogiLib(id,title,digilibBaseUrl, localFileBase, version, basePath)
self.Destination()._setObject(id,newObj)
if RESPONSE is not None:
RESPONSE.redirect('manage_main')