--- zogiLib/zogiLib.py 2005/11/08 18:10:10 1.60 +++ zogiLib/zogiLib.py 2006/06/15 16:44:00 1.63 @@ -18,34 +18,13 @@ import string import urllib import xml.dom.minidom -ZOGIVERSION = "0.10.1b ROC 8.11.2005" +ZOGIVERSION = "0.10.2b ROC 15.6.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 = {} @@ -165,11 +144,11 @@ 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: @@ -184,13 +163,13 @@ class zogiLib(Folder): main_book = PageTemplateFile('zpt/main_book', globals()) main_image = PageTemplateFile('zpt/main_image', globals()) main_metaData = PageTemplateFile('zpt/main_metadata', globals()) - main_static = PageTemplateFile('zpt/main_static', 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()) + aux_divs = PageTemplateFile('zpt/aux_divs', globals()) + #aux_divsN4 = PageTemplateFile('zpt/aux_divsN4', globals()) img_div = PageTemplateFile('zpt/img_div', globals()) # javascripts @@ -202,7 +181,7 @@ class zogiLib(Folder): 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()) + 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()) @@ -343,7 +322,7 @@ class zogiLib(Folder): """get DLInfo from digilib server""" paramH={} baseUrl=self.getDLBaseUrl()+"/dlInfo-xml.jsp" - print "getdlinfo: ", baseUrl + #print "getdlinfo: ", baseUrl try: url=urllib.urlopen(baseUrl+'?'+self.getAllDLParams()) dom=xml.dom.minidom.parse(url) @@ -365,7 +344,7 @@ class zogiLib(Folder): url += otherbase else: url += self.basePath - # should end with "/" + # should still end with "/" if len(url) > 0 and url[-1] != '/': url += '/' return url @@ -413,7 +392,7 @@ class zogiLib(Folder): def createScalerImg(self, requestString=None, bottom=0, side=0, width=500, height=500): """generate Scaler IMG Tag""" self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + bt = self.getBrowserType() # override with parameters from session if self.REQUEST.SESSION.has_key('scalerDiv'): (requestString, bottom, side, width, height) = self.REQUEST.SESSION['scalerDiv'] @@ -468,10 +447,9 @@ class zogiLib(Folder): if not hasattr(self, 'template'): # create template folder if it doesn't exist - print "no template folder" + print "no template folder -- creating" self.manage_addFolder('template') - print "template!" pt = getattr(self.template, 'main_'+tpt) return pt() @@ -479,9 +457,6 @@ class zogiLib(Folder): """make shure that the query has been saved""" if not self.REQUEST.has_key('dlParams'): self.storeQuery() - if not self.REQUEST.SESSION.has_key('browserType'): - bt = browserCheck(self) - self.REQUEST.SESSION.set('browserType', bt) def storeQuery(self, more=None, withpt=False): """parse query parameters into a hash in REQUEST""" @@ -564,6 +539,15 @@ 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""" @@ -587,22 +571,23 @@ 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') + 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') + return s def getPN(self): - """pagenums""" + """pagenumber""" pn = int(self.getDLParam('pn', 1)) return pn def getPT(self): - """pagenums""" + """number of total pages""" pt = self.getDLParam('pt', None) if pt is None: # get pt from dlInfo @@ -656,13 +641,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): @@ -880,23 +865,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(),None) 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 ''