--- zogiLib/zogiLib.py 2005/04/28 17:26:49 1.55 +++ zogiLib/zogiLib.py 2005/10/11 20:06:05 1.58 @@ -1,3 +1,4 @@ +from OFS.SimpleItem import SimpleItem from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate @@ -10,8 +11,9 @@ import os import re import string import urllib -import types +from types import * import random +import cgi from Globals import package_home ZOGIVERSION = "0.9.15b DW:22.2.2005" @@ -28,18 +30,18 @@ def sendFile(self, filename, type): # look for an object called filename for path in paths: if hasattr(object, path): - object = getattr(object, path) - else: - object = None - break + 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) + # 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()) + # 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): @@ -70,11 +72,11 @@ def browserCheck(self): return bt -class zogiImage(Image): +class zogiImage(SimpleItem): """einzelnes Image""" meta_type="zogiImage" - manage_options=ZopePageTemplate.manage_options+( + manage_options=SimpleItem.manage_options+( {'label':'Main config','action':'changeZogiImageForm'}, ) @@ -92,9 +94,9 @@ class zogiImage(Image): self.content_type=content_type self.precondition=precondition - def getData(self): - """getUrlData""" - return urllib.urlopen(self.baseUrl+self.queryString) + #def getData(self): + # """getUrlData""" + # return urllib.urlopen(self.baseUrl+self.queryString) def changeZogiImageForm(self): """Main configuration""" @@ -115,8 +117,23 @@ class zogiImage(Image): RESPONSE.redirect(self.baseUrl+self.queryString) return '' + def rescale(self,width=None,height=None): + """andere parameter im querystring""" + qs=cgi.parse_qs(self.queryString) + for x in qs.keys(): + if type(qs[x]) is ListType: + qs[x]=qs[x][0] + + if width: + qs['dw']=width + if height: + qs['dh']=height - + + qsneu=urllib.urlencode(qs) + self.queryString=qsneu + return "done" + def manage_addZogiImageForm(self): """Form for adding""" pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiImage.zpt')).__of__(self) @@ -297,8 +314,8 @@ class zogiLib(Folder): def createHeadJS(self): """generate all javascript tags for head""" - self.checkQuery() - bt = self.REQUEST.SESSION.get('browserType', {}) + self.checkQuery() + bt = self.REQUEST.SESSION.get('browserType', {}) if bt['staticHTML']: return @@ -307,19 +324,37 @@ class zogiLib(Folder): def createParamJS(self): """generate javascript for parameters only""" - self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + self.checkQuery() + bt = self.REQUEST.SESSION['browserType'] if bt['staticHTML']: return pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/zogilib_param_js')).__of__(self) return pt() - + + def getScalerUrl(self,requestString=None): + """send scaler url""" + if requestString: + return self.dlServerURL+'/servlet/Scaler?'+requestString + else: + return self.dlServerURL+'/servlet/Scaler?' + + def scaledImage(self,requestString=None): + """scaled Image""" + + 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): """generate Scaler IMG Tag""" - self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + self.checkQuery() + bt = self.REQUEST.SESSION['browserType'] # override with parameters from session if self.REQUEST.SESSION.has_key('scalerDiv'): (requestString, bottom, side, width, height) = self.REQUEST.SESSION['scalerDiv'] @@ -355,7 +390,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: @@ -368,8 +403,8 @@ class zogiLib(Folder): def createAuxDiv(self): """generate other divs""" - self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + self.checkQuery() + bt = self.REQUEST.SESSION['browserType'] if bt['staticHTML']: return if bt['isN4']: @@ -394,15 +429,15 @@ class zogiLib(Folder): def optionwindow(self): """showoptions""" - self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + 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: + else: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/optionwindow.zpt')).__of__(self) return pt() @@ -475,12 +510,12 @@ class zogiLib(Folder): def index_html(self): """main action""" - self.checkQuery() - bt = self.REQUEST.SESSION['browserType'] + self.checkQuery() + bt = self.REQUEST.SESSION['browserType'] tp = "zogiLibMainTemplate" if hasattr(self, tp): - pt = getattr(self, tp) + pt = getattr(self, tp) else: tpt = self.layout @@ -524,10 +559,10 @@ class zogiLib(Folder): 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() + """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): @@ -662,13 +697,13 @@ class zogiLib(Folder): def setStaticHTML(self, static=True): """sets the preference to static HTML""" self.checkQuery() - self.REQUEST.SESSION['browserType']['staticHTML'] = static + 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 self.REQUEST.SESSION['browserType']['staticHTML'] def getPT(self): """pagenums"""