--- zogiLib/zogiLib.py 2004/06/02 19:01:36 1.20 +++ 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 @@ -463,12 +464,12 @@ class zogiLib(Folder): return pt() - def createScalerImg(self, requestString = None): + def createScalerImg(self, requestString = None, bottom = 0, side = 0): """generate Scaler IMG Tag""" 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: @@ -477,7 +478,12 @@ class zogiLib(Folder): tag += '
' tag += '' if bt.isN4: tag += '' @@ -577,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(',') @@ -596,7 +610,7 @@ class zogiLib(Folder): def checkQuery(self): """check if the query has been stored""" - if not (self.REQUEST.SESSION and 'query' in self.REQUEST.SESSION): + if not (self.REQUEST.SESSION): print "ZOGILIB: have to store query!!" storeQuery(self) @@ -639,6 +653,8 @@ class zogiLib(Folder): self.setDLParam('cont', cont) if pn: + # unmark + self.setDLParam('mk', None) self.setDLParam('pn', pn) if ws: @@ -653,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""" @@ -788,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: @@ -804,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')