version 1.60, 2005/11/08 18:10:10
|
version 1.63, 2006/06/15 16:44:00
|
Line 18 import string
|
Line 18 import string
|
import urllib |
import urllib |
import xml.dom.minidom |
import xml.dom.minidom |
|
|
ZOGIVERSION = "0.10.1b ROC 8.11.2005" |
ZOGIVERSION = "0.10.2b ROC 15.6.2006" |
|
|
def cropf(f): |
def cropf(f): |
"""returns a float with reduced precision""" |
"""returns a float with reduced precision""" |
return float(int(f * 10000)/10000.0) |
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): |
def browserCheck(self): |
"""check the browsers request to find out the browser type""" |
"""check the browsers request to find out the browser type""" |
bt = {} |
bt = {} |
Line 184 class zogiLib(Folder):
|
Line 163 class zogiLib(Folder):
|
main_book = PageTemplateFile('zpt/main_book', globals()) |
main_book = PageTemplateFile('zpt/main_book', globals()) |
main_image = PageTemplateFile('zpt/main_image', globals()) |
main_image = PageTemplateFile('zpt/main_image', globals()) |
main_metaData = PageTemplateFile('zpt/main_metadata', 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()) |
options = PageTemplateFile('zpt/options', globals()) |
changeForm = PageTemplateFile('zpt/changeForm', globals()) |
changeForm = PageTemplateFile('zpt/changeForm', globals()) |
|
|
# display templates |
# display templates |
aux_divs = PageTemplateFile('zpt/aux_divs', globals()) |
aux_divs = PageTemplateFile('zpt/aux_divs', globals()) |
aux_divsN4 = PageTemplateFile('zpt/aux_divsN4', globals()) |
#aux_divsN4 = PageTemplateFile('zpt/aux_divsN4', globals()) |
img_div = PageTemplateFile('zpt/img_div', globals()) |
img_div = PageTemplateFile('zpt/img_div', globals()) |
|
|
# javascripts |
# javascripts |
Line 343 class zogiLib(Folder):
|
Line 322 class zogiLib(Folder):
|
"""get DLInfo from digilib server""" |
"""get DLInfo from digilib server""" |
paramH={} |
paramH={} |
baseUrl=self.getDLBaseUrl()+"/dlInfo-xml.jsp" |
baseUrl=self.getDLBaseUrl()+"/dlInfo-xml.jsp" |
print "getdlinfo: ", baseUrl |
#print "getdlinfo: ", baseUrl |
try: |
try: |
url=urllib.urlopen(baseUrl+'?'+self.getAllDLParams()) |
url=urllib.urlopen(baseUrl+'?'+self.getAllDLParams()) |
dom=xml.dom.minidom.parse(url) |
dom=xml.dom.minidom.parse(url) |
Line 365 class zogiLib(Folder):
|
Line 344 class zogiLib(Folder):
|
url += otherbase |
url += otherbase |
else: |
else: |
url += self.basePath |
url += self.basePath |
# should end with "/" |
# should still end with "/" |
if len(url) > 0 and url[-1] != '/': |
if len(url) > 0 and url[-1] != '/': |
url += '/' |
url += '/' |
return url |
return url |
Line 413 class zogiLib(Folder):
|
Line 392 class zogiLib(Folder):
|
def createScalerImg(self, requestString=None, bottom=0, side=0, width=500, height=500): |
def createScalerImg(self, requestString=None, bottom=0, side=0, width=500, height=500): |
"""generate Scaler IMG Tag""" |
"""generate Scaler IMG Tag""" |
self.checkQuery() |
self.checkQuery() |
bt = self.REQUEST.SESSION['browserType'] |
bt = self.getBrowserType() |
# override with parameters from session |
# override with parameters from session |
if self.REQUEST.SESSION.has_key('scalerDiv'): |
if self.REQUEST.SESSION.has_key('scalerDiv'): |
(requestString, bottom, side, width, height) = self.REQUEST.SESSION['scalerDiv'] |
(requestString, bottom, side, width, height) = self.REQUEST.SESSION['scalerDiv'] |
Line 468 class zogiLib(Folder):
|
Line 447 class zogiLib(Folder):
|
|
|
if not hasattr(self, 'template'): |
if not hasattr(self, 'template'): |
# create template folder if it doesn't exist |
# create template folder if it doesn't exist |
print "no template folder" |
print "no template folder -- creating" |
self.manage_addFolder('template') |
self.manage_addFolder('template') |
|
|
print "template!" |
|
pt = getattr(self.template, 'main_'+tpt) |
pt = getattr(self.template, 'main_'+tpt) |
return pt() |
return pt() |
|
|
Line 479 class zogiLib(Folder):
|
Line 457 class zogiLib(Folder):
|
"""make shure that the query has been saved""" |
"""make shure that the query has been saved""" |
if not self.REQUEST.has_key('dlParams'): |
if not self.REQUEST.has_key('dlParams'): |
self.storeQuery() |
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): |
def storeQuery(self, more=None, withpt=False): |
"""parse query parameters into a hash in REQUEST""" |
"""parse query parameters into a hash in REQUEST""" |
Line 564 class zogiLib(Folder):
|
Line 539 class zogiLib(Folder):
|
|
|
return self.display() |
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): |
def display(self): |
"""(re)display page""" |
"""(re)display page""" |
Line 587 class zogiLib(Folder):
|
Line 571 class zogiLib(Folder):
|
"""returns dlTarget""" |
"""returns dlTarget""" |
self.checkQuery() |
self.checkQuery() |
s = self.dlTarget |
s = self.dlTarget |
if s == None: |
if (s is None) or (s == ""): |
s = "" |
# s = "" |
# s = 'dl' |
s = 'dl' |
# if self.getDLParam('fn'): |
if self.getDLParam('fn'): |
# s += "_" + self.getDLParam('fn') |
s += "_" + self.getDLParam('fn') |
# if self.getDLParam('pn'): |
if self.getDLParam('pn'): |
# s += "_" + self.getDLParam('pn') |
s += "_" + self.getDLParam('pn') |
|
|
return s |
return s |
|
|
def getPN(self): |
def getPN(self): |
"""pagenums""" |
"""pagenumber""" |
pn = int(self.getDLParam('pn', 1)) |
pn = int(self.getDLParam('pn', 1)) |
return pn |
return pn |
|
|
def getPT(self): |
def getPT(self): |
"""pagenums""" |
"""number of total pages""" |
pt = self.getDLParam('pt', None) |
pt = self.getDLParam('pt', None) |
if pt is None: |
if pt is None: |
# get pt from dlInfo |
# get pt from dlInfo |
Line 656 class zogiLib(Folder):
|
Line 641 class zogiLib(Folder):
|
def dl_StaticHTML(self): |
def dl_StaticHTML(self): |
"""set rendering to static HTML""" |
"""set rendering to static HTML""" |
self.checkQuery() |
self.checkQuery() |
self.REQUEST.SESSION['browserType']['staticHTML'] = True |
self.getBrowserType()['staticHTML'] = True |
return self.display() |
return self.display() |
|
|
def dl_DynamicHTML(self): |
def dl_DynamicHTML(self): |
"""set rendering to dynamic HTML""" |
"""set rendering to dynamic HTML""" |
self.checkQuery() |
self.checkQuery() |
self.REQUEST.SESSION['browserType']['staticHTML'] = False |
self.getBrowserType()['staticHTML'] = False |
return self.display() |
return self.display() |
|
|
def dl_HMirror(self): |
def dl_HMirror(self): |
Line 880 def manage_addZogiLibPageTemplateForm(se
|
Line 865 def manage_addZogiLibPageTemplateForm(se
|
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibPageTemplateForm')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibPageTemplateForm')).__of__(self) |
return pt() |
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): |
REQUEST=None, submit=None): |
"Add a Page Template with optional file content." |
"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)) |
self._setObject(id, zogiLibPageTemplate(id)) |
ob = getattr(self, id) |
ob = getattr(self, id) |
if not layout: layout = "book" |
ob.pt_edit(open(os.path.join(package_home(globals()),'zpt/main_%s.zpt'%layout)).read(),None) |
ob.pt_edit(open(os.path.join(package_home(globals()),'zpt/zogiLibMain_%s.zpt'%layout)).read(),None) |
|
if title: |
if title: |
ob.pt_setTitle(title) |
ob.pt_setTitle(title) |
try: |
try: |
u = self.DestinationURL() |
url = self.DestinationURL() |
except AttributeError: |
except AttributeError: |
u = REQUEST['URL1'] |
url = REQUEST['URL1'] |
|
|
u = "%s/%s" % (u, urllib.quote(id)) |
url = "%s/%s" % (url, urllib.quote(id)) |
REQUEST.RESPONSE.redirect(u+'/manage_main') |
REQUEST.RESPONSE.redirect(url+'/manage_main') |
return '' |
return '' |
|
|