--- ECHO_content/ECHO_collection.py 2004/05/13 20:47:41 1.85
+++ ECHO_content/ECHO_collection.py 2004/05/24 19:04:09 1.89
@@ -124,9 +124,25 @@ def sendFile(self, filename, type):
self.REQUEST.RESPONSE.write(file(fn).read())
return
+class BrowserCheck:
+ """check the browsers request to find out the browser type"""
+
+ def __init__(self, zope):
+ self.ua = zope.REQUEST.get_header("HTTP_USER_AGENT")
+ self.isN4 = (string.find(self.ua, 'Mozilla/4.') > -1) and (string.find(self.ua, 'MSIE') < 0)
+ self.isIE = string.find(self.ua, 'MSIE') > -1
+ self.nav = self.ua[string.find(self.ua, '('):]
+ ie = string.split(self.nav, "; ")[1]
+ if string.find(ie, "MSIE") > -1:
+ self.versIE = string.split(ie, " ")[1]
+ self.isMac = string.find(self.ua, 'Macintosh') > -1
+ self.isWin = string.find(self.ua, 'Windows') > -1
+ self.isIEWin = self.isIE and self.isWin
+ self.isIEMac = self.isIE and self.isMac
+
def writeMetadata(url,metadict):
- """Einlesen der Metadaten und und erstellen des geänderten XML file"""
+ """Einlesen der Metadaten und und erstellen des geaenderten XML file"""
try:
geturl=""
@@ -693,9 +709,15 @@ class ECHO_resource(Folder):
for referenceTypeF in self.referencetypes:
#print referenceTypeF[1].title,referenceType
- if referenceTypeF[1].title == referenceType:
+ if referenceTypeF[1].title.lower() == referenceType.lower():
#print "OK"
- bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ try:
+ bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ referenceType=referenceTypeF[1].title
+ except:
+ bibdata[referenceType]=referenceTypeF[1].fields
+
+
bibdata['data']=referenceTypeF[1]
self.fields=bibdata[referenceType]
for field in fieldlist:
@@ -714,8 +736,12 @@ class ECHO_resource(Folder):
for referenceTypeF in self.referencetypes:
- if referenceTypeF[1].title == referenceType:
- bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ if referenceTypeF[1].title.lower() == referenceType.lower():
+ try:
+ bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ referenceType=referenceTypeF[1].title
+ except:
+ bibdata[referenceType]=referenceTypeF[1].fields
bibdata['data']=referenceTypeF[1]
self.fields=bibdata[referenceType]
for field in fieldlist:
@@ -736,7 +762,7 @@ class ECHO_resource(Folder):
return "ERROR:",error
- if not (metadict['bib_type']==self.contentType):
+ if not (metadict['bib_type'].lower()==self.contentType.lower()):
self.REQUEST.SESSION['contentStorage']=metadict['bib_type']
self.REQUEST.SESSION['contentZope']=self.contentType
@@ -1005,7 +1031,7 @@ class ECHO_collection(Folder, Persistent
return ret+""+getCollection(self)+""
def createJavaScript(self):
- """CreateJava"""
+ """OLD CreateJava"""
ret=javaScriptMain
dynamical="\n"
@@ -1019,7 +1045,7 @@ class ECHO_collection(Folder, Persistent
return ret
def createJSAreas(self):
- """new version of createJavaScript"""
+ """create area calls for JavaScript"""
dynamical="\n"
for ob in self.getGraphicCoords():
if ob[5] == "area":
@@ -1029,20 +1055,37 @@ class ECHO_collection(Folder, Persistent
return dynamical
def createMapHead(self):
- """generate divs"""
+ """create javascript include and script tags for head"""
pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/ECHO_content_map_frag_js')).__of__(self)
return pt()
+
+ def createMapImg(self):
+ """generate img-tag for map"""
+ bt = BrowserCheck(self)
+ tag = ""
+ src = self.REQUEST['URL1'] + "/overview"
+ if bt.isN4:
+ tag += ''%src
+ else:
+ tag += ''%src
+ return tag
def createMapLink(self, ob, text=None):
"""generate map link"""
+ bt = BrowserCheck(self)
id = ob[1]
link = ob[1]
if text == None:
text = ob[2]
- tag = '" + text + ""
+ tag = ""
+ if bt.isN4:
+ tag += '" + text + ""
+ else:
+ tag = '" + text + ""
return tag
def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil"):
@@ -1051,18 +1094,39 @@ class ECHO_collection(Folder, Persistent
link = ob[1]
vtype = ob[5]
ctype = ob[3].contentType
-
- tag = ''%(id,id,id,link)
- if vtype == "view point":
- rot = ob[4][4]
- tag += ''%(id,arrowsrc,rot)
+ bt = BrowserCheck(self)
+ tag = ""
+
+ if bt.isN4:
+ tag += ''%(id,id,id)
+ if vtype == "view point":
+ rot = ob[4][4]
+ tag += ''%(link,arrowsrc,rot)
+ else:
+ tag += ''
+ tag += ''
else:
- tag += ''
- tag += ''
+ tag = ''%(id,id,id,link)
+ if vtype == "view point":
+ rot = ob[4][4]
+ if bt.isIEWin and bt.versIE > 5:
+ tag += ''%(id,arrowsrc,rot,arrowsrc,rot)
+ else:
+ tag += ''%(id,arrowsrc,rot)
+ else:
+ if bt.isIEWin:
+ tag += '
'
+ tag += ''
return tag
@@ -1280,7 +1344,15 @@ class ECHO_collection(Folder, Persistent
def area_img(self):
"""area image"""
- return sendFile(self, 'images/red.gif', 'image/gif')
+ bt = BrowserCheck(self)
+ if bt.isIE or bt.isN4:
+ return sendFile(self, 'images/red.gif', 'image/gif')
+ else:
+ return sendFile(self, 'images/reda.png', 'image/png')
+
+ def trans_img(self):
+ """empty image"""
+ return sendFile(self, 'images/trans.gif', 'image/gif')
def hl_lib_js(self):
"""javascript"""