--- zogiLib/zogiLib.py 2004/06/03 18:05:57 1.22 +++ zogiLib/zogiLib.py 2004/06/04 16:07:49 1.25 @@ -12,6 +12,7 @@ import os import re import string import urllib +import types from Globals import package_home def getString(self,key,default=''): @@ -468,22 +469,29 @@ class zogiLib(Folder): """generate Scaler IMG Tag""" self.checkQuery() bt = self.REQUEST.SESSION['browserType'] + # override with parameters from session + if self.REQUEST.SESSION.has_key('scalerDiv'): + (requestString, bottom, side) = self.REQUEST.SESSION['scalerDiv'] + # if not explicitly defined take normal request if not requestString: requestString = self.getAllDLParams() url = self.digilibBaseUrl+requestString + # construct bottom and side insets + b_par = "" + s_par = "" + if (bottom != 0) or (side != 0): + b_par = "-" + str(int(bottom)) + s_par = "-" + str(int(side)) tag = "" if bt.isN4: + # N4 needs layers tag += '' else: tag += '
' tag += '' if bt.isN4: tag += '' @@ -491,6 +499,17 @@ class zogiLib(Folder): tag += '
' return tag + def createScalerDiv(self, requestString = None, bottom = 0, side = 0): + """generate scaler img and table with navigation arrows""" + self.checkQuery() + if requestString != None or bottom != 0 or side != 0: + self.REQUEST.SESSION['scalerDiv'] = (requestString, bottom, side) + else: + if self.REQUEST.SESSION.has_key('scalerDiv'): + del self.REQUEST.SESSION['scalerDiv'] + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/zogilib_img_div')).__of__(self) + return pt() + def createAuxDiv(self): """generate other divs""" self.checkQuery() @@ -627,14 +646,30 @@ class zogiLib(Folder): """check if the query has been stored""" if not (self.REQUEST.SESSION): print "ZOGILIB: have to store query!!" - storeQuery(self) + 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 getDLParam(self, param): """returns parameter""" try: return self.REQUEST.SESSION['query'][param] except: - return None + return def setDLParam(self, param, value): """sets parameter""" @@ -659,24 +694,16 @@ class zogiLib(Folder): def setDLParams(self,pn=None,ws=None,rot=None,brgt=None,cont=None): """setze Parameter""" - ret="" - if brgt: - self.setDLParam('brgt', brgt) - - if cont: - self.setDLParam('cont', cont) + self.setDLParam('brgt', brgt) + self.setDLParam('cont', cont) + self.setDLParam('ws', ws) + self.setDLParam('rot', rot) if pn: # unmark self.setDLParam('mk', None) self.setDLParam('pn', pn) - - if ws: - self.setDLParam('ws', ws) - - if rot: - self.setDLParam('rot', rot) return self.display() @@ -700,28 +727,25 @@ class zogiLib(Folder): def getPN(self): """Pagenum""" pn = self.getDLParam('pn') - if pn: + try: return int(pn) - else: + except: return 1 def getBiggerWS(self): """ws+1""" - ws=self.getDLParam('ws') - if ws: + ws = self.getDLParam('ws') + try: return int(ws)+1 - else: + except: return 2 def getSmallerWS(self): """ws-1""" ws=self.getDLParam('ws') - if ws: - if int(ws)==1: - return 1 - else: - return int(ws)-1 - else: + try: + return max(int(ws)-1, 1) + except: return 1 def hasMode(self, mode):