version 1.28, 2004/11/29 17:18:13
|
version 1.29, 2004/12/02 12:01:08
|
Line 1
|
Line 1
|
import string |
import string |
import socket |
import socket |
import urllib |
import urllib |
|
import string |
import xml.dom.minidom |
import xml.dom.minidom |
from types import * |
from types import * |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
|
from OFS.SimpleItem import SimpleItem |
from Globals import package_home |
from Globals import package_home |
|
import Globals |
|
from AccessControl import ClassSecurityInfo |
import os.path |
import os.path |
|
|
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder'] |
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder'] |
Line 123 class ECHO_basis:
|
Line 127 class ECHO_basis:
|
|
|
manage_options=({'label':'change ECHO Navigation Entries','action':'changeECHOEntriesForm'},) |
manage_options=({'label':'change ECHO Navigation Entries','action':'changeECHOEntriesForm'},) |
|
|
|
def getMapAreas(self): |
|
"""returns the list of MapAreas""" |
|
# get all contained MapAreas |
|
areas = [res[1] for res in self.ZopeFind(self, obj_metatypes=('MapArea'))] |
|
return areas |
|
|
|
def addMapArea(self, newarea): |
|
"""add a map area to this object""" |
|
if (newarea.id is None): |
|
# create new id |
|
areas = self.getMapAreas() |
|
newarea.id = "a%02d"%len(areas) |
|
self._setObject(newarea.id, newarea) |
|
|
|
def ECHO_addCoords(self,RESPONSE=None): |
|
"""change or add MapArea""" |
|
#return self.REQUEST |
|
# change existing areas |
|
for area in self.getMapAreas(): |
|
id = area.getId() |
|
if self.REQUEST.has_key('del.'+id): |
|
# delete this area |
|
self._delObject(id) |
|
# return to same menu |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('ECHO_graphicEntry') |
|
return |
|
# modify this area |
|
coordstring = self.REQUEST.get('coords.'+id, '') |
|
coords = string.split(coordstring, ',') |
|
angle = self.REQUEST.get('angle.'+id, '0') |
|
type = self.REQUEST.get('type.'+id, 'area') |
|
if len(coords) == 4: |
|
area.setCoordString(coordstring) |
|
area.setAngle(angle) |
|
area.setType(type) |
|
# add new area |
|
if self.REQUEST.has_key('add'): |
|
coordstring = self.REQUEST.get('coords.new', '') |
|
coords = string.split(coordstring, ',') |
|
angle = self.REQUEST.get('angle.new', '0') |
|
type = self.REQUEST.get('type.new', 'area') |
|
if len(coords) == 4: |
|
coords.append(angle) |
|
area = MapArea(None, coords, type=type) |
|
self.addMapArea(area) |
|
# return to edit area menu |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('ECHO_graphicEntry') |
|
|
|
|
#ende der echo erweiterungen |
#ende der echo erweiterungen |
|
|
|
|
Line 398 def checkDiffs(self,metadict):
|
Line 453 def checkDiffs(self,metadict):
|
return diffs |
return diffs |
|
|
|
|
|
def zptFile(self, path): |
|
"""returns a page template file from the product""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self) |
|
return pt |
|
|
|
|
def sendFile(self, filename, type): |
def sendFile(self, filename, type): |
Line 421 def sendFile(self, filename, type):
|
Line 480 def sendFile(self, filename, type):
|
self.REQUEST.RESPONSE.write(file(fn).read()) |
self.REQUEST.RESPONSE.write(file(fn).read()) |
return |
return |
|
|
|
|
class BrowserCheck: |
class BrowserCheck: |
"""check the browsers request to find out the browser type""" |
"""check the browsers request to find out the browser type""" |
|
|
def __init__(self, zope): |
def __init__(self, zope): |
"""initialisiere""" |
"""initialisiere""" |
self.ua = zope.REQUEST.get_header("HTTP_USER_AGENT") |
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.isN4 = False |
self.isIE = string.find(self.ua, 'MSIE') > -1 |
self.isIE = False |
|
if string.find(self.ua, 'MSIE') > -1: |
|
self.isIE = True |
|
else: |
|
self.isN4 = string.find(self.ua, 'Mozilla/4.') > -1 |
|
try: |
self.nav = self.ua[string.find(self.ua, '('):] |
self.nav = self.ua[string.find(self.ua, '('):] |
ie = string.split(self.nav, "; ")[1] |
ie = string.split(self.nav, "; ")[1] |
if string.find(ie, "MSIE") > -1: |
if string.find(ie, "MSIE") > -1: |
self.versIE = string.split(ie, " ")[1] |
self.versIE = string.split(ie, " ")[1] |
|
except: pass |
self.isMac = string.find(self.ua, 'Macintosh') > -1 |
self.isMac = string.find(self.ua, 'Macintosh') > -1 |
self.isWin = string.find(self.ua, 'Windows') > -1 |
self.isWin = string.find(self.ua, 'Windows') > -1 |
self.isIEWin = self.isIE and self.isWin |
self.isIEWin = self.isIE and self.isWin |
self.isIEMac = self.isIE and self.isMac |
self.isIEMac = self.isIE and self.isMac |
|
|
|
|
|
|
def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None,digiliburlprefix=None): |
def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None,digiliburlprefix=None): |
"""Einlesen der Metadaten und und erstellen des geaenderten XML file""" |
"""Einlesen der Metadaten und und erstellen des geaenderten XML file""" |
|
|
Line 594 def readMetadata(url):
|
Line 659 def readMetadata(url):
|
|
|
return metadict,"" |
return metadict,"" |
|
|
|
|
|
class MapArea(SimpleItem): |
|
"""simple class to hold coordinates""" |
|
|
|
meta_type = 'MapArea' |
|
# Create a SecurityInfo for this class. |
|
security = ClassSecurityInfo() |
|
security.setDefaultAccess("allow") |
|
# type constants |
|
TYPE_AREA = 'area' |
|
TYPE_ARROW = 'arrow' |
|
|
|
def __init__(self, id, coords, label=None, type=None, text=None): |
|
"""init""" |
|
self.coords = coords[0:4] |
|
if len(coords) > 4: |
|
self.angle = coords[4] |
|
else: |
|
self.angle = 0 |
|
self.id = id |
|
self.label = label |
|
self.setType(type) |
|
self.text = text |
|
|
|
def setCoords(self, coords): |
|
"""sets the coords""" |
|
self.coords = coords |
|
|
|
def getCoordString(self): |
|
"""returns coordinates as a string""" |
|
return string.join(self.coords, ',') |
|
|
|
def setCoordString(self, coordstring): |
|
"""sets coordinates from a string""" |
|
coords = string.split(coordstring, ',') |
|
self.coords = [c.strip() for c in coords] |
|
|
|
def getFullId(self, prefix=None): |
|
"""returns the id with prefixed parent id""" |
|
if prefix is None: |
|
if hasattr(self, 'aq_parent'): |
|
prefix = self.aq_parent.id |
|
else: |
|
prefix = "id" |
|
fid = prefix + "." + self.id |
|
return fid |
|
|
|
def getType(self): |
|
"""returns the type""" |
|
return self.type |
|
|
|
def setType(self, type): |
|
"""sets the type""" |
|
if type == MapArea.TYPE_ARROW: |
|
self.type = MapArea.TYPE_ARROW |
|
elif type == MapArea.TYPE_AREA: |
|
self.type = MapArea.TYPE_AREA |
|
else: |
|
self.type = MapArea.TYPE_AREA |
|
|
|
def isTypeArea(self): |
|
"""returns if the type is area""" |
|
return self.type == MapArea.TYPE_AREA |
|
|
|
def isTypeArrow(self): |
|
"""returns if the type is arrow""" |
|
return self.type == MapArea.TYPE_ARROW |
|
|
|
def getAngle(self): |
|
"""returns the angle""" |
|
return self.angle |
|
|
|
def setAngle(self, angle): |
|
"""sets the angle""" |
|
self.angle = angle |
|
|
|
def getText(self): |
|
"""returns the popup text""" |
|
if self.text is None: |
|
if hasattr(self, 'aq_parent'): |
|
parent = self.aq_parent |
|
if parent.contentType == 'text-popup': |
|
return parent.description |
|
return self.text |
|
|
|
def setText(self, text): |
|
"""sets the text""" |
|
self.text = text |
|
|
|
def getLabel(self): |
|
"""returns the link label""" |
|
if self.label is None: |
|
if hasattr(self, 'aq_parent'): |
|
return self.aq_parent.label or self.aq_parent.id |
|
return self.label |
|
|
|
def setLabel(self, label): |
|
"""sets the label""" |
|
self.label = label |
|
|
|
def getLinkId(self): |
|
if hasattr(self, 'aq_parent'): |
|
return self.aq_parent.id |
|
return self.id |
|
|
|
|
|
# call this to initialize framework classes, which |
|
# does the right thing with the security assertions. |
|
Globals.InitializeClass(MapArea) |