version 1.60, 2005/09/12 22:23:44
|
version 1.93, 2008/11/19 14:22:42
|
Line 14 from AccessControl import ClassSecurityI
|
Line 14 from AccessControl import ClassSecurityI
|
import os.path |
import os.path |
from OFS.Folder import Folder |
from OFS.Folder import Folder |
import ECHO_collection |
import ECHO_collection |
|
import base64 |
|
import bz2 |
|
import xmlrpclib |
|
import sys |
|
import logging |
|
|
|
#erstzt logging |
|
def logger(txt,method,txt2): |
|
"""logging""" |
|
logging.info(txt+ txt2) |
|
|
|
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','extVersionedFileFolder','ECHO_movie'] |
|
|
|
|
|
#decode and compress for xmlrpc communication with OSAS_server |
|
|
|
def encodeRPC(string): |
|
return base64.encodestring(bz2.compress(string)) |
|
def decodeRPC(string): |
|
return bz2.decompress(base64.decodestring(string)) |
|
|
|
def unicodify(s): |
|
"""decode str (utf-8 or latin-1 representation) into unicode object""" |
|
if not s: |
|
return u"" |
|
if isinstance(s, str): |
|
try: |
|
return s.decode('utf-8') |
|
except: |
|
return s.decode('latin-1') |
|
else: |
|
return s |
|
|
|
def utf8ify(s): |
|
"""encode unicode object or string into byte string in utf-8 representation. |
|
assumes string objects to be utf-8""" |
|
if not s: |
|
return "" |
|
if isinstance(s, str): |
|
return s |
|
else: |
|
return s.encode('utf-8') |
|
|
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','ECHO_movie'] |
|
|
|
def content_html(self,type): |
def content_html(self,type): |
"""template fuer content""" |
"""template fuer content""" |
Line 25 def content_html(self,type):
|
Line 66 def content_html(self,type):
|
# return templates[0][1]() |
# return templates[0][1]() |
|
|
if hasattr(self,type+"_template"): |
if hasattr(self,type+"_template"): |
|
|
obj=getattr(self,type+"_template") |
obj=getattr(self,type+"_template") |
return obj() |
return obj() |
else: |
else: |
Line 39 class ECHO_basis:
|
Line 81 class ECHO_basis:
|
security=ClassSecurityInfo() |
security=ClassSecurityInfo() |
security.declarePublic('getImageTag') |
security.declarePublic('getImageTag') |
|
|
|
management_page_charset="utf-8" |
|
isVisible = True |
|
|
|
# Managment for the PID |
|
def setPID(self,pid): |
|
"""set the pid""" |
|
self.pid=pid |
|
return True |
|
|
|
def getPID(self): |
|
"""get the pid""" |
|
return getattr(self,'pid',None) |
|
|
|
|
|
def unicodify(self, s): |
|
"""return unicode object for string (utf-8 or latin1) or unicode object s""" |
|
return unicodify(s) |
|
|
|
# compatibility of old decode method |
|
decode = unicodify |
|
|
|
|
|
def utf8ify(self, s): |
|
"""return utf-8 encoded string object for string or unicode object s""" |
|
return utf8ify(s) |
|
|
|
|
def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None): |
def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None): |
return ECHO_collection.manage_addECHO_locale(self,lang,title,label) |
return ECHO_collection.manage_addECHO_locale(self,lang,title,label) |
|
|
Line 115 class ECHO_basis:
|
Line 184 class ECHO_basis:
|
|
|
return ret |
return ret |
|
|
|
def content_html_XMLRpc(self): |
|
"""xml_rpc_version""" |
|
return encodeRPC(self.content_html()) |
|
|
def content_html(self,type="collection"): |
def content_html(self,type="collection"): |
"""template fuer content bei einbau und ECHO_Umgebung""" |
"""template fuer content bei einbau und ECHO_Umgebung""" |
|
|
return content_html(self,type) |
return content_html(self,type) |
|
|
|
def getIsVisible(self): |
|
"""return if object and all parents are visible""" |
|
|
|
# if object is not visible return False |
|
if hasattr(self,'isVisible'): |
|
if not self.isVisible : return False |
|
|
|
# else if parent of object is not ECHO_root, ECHO_basis or None |
|
if not self.aq_parent.meta_type in ['ECHO_root','ECHO_basis',None] : |
|
return self.aq_parent.getIsVisible() |
|
|
|
# else return True |
|
return True |
|
|
|
def setIsVisible(self, isVisible): |
|
""" set object attribute isVisible""" |
|
self.isVisible = isVisible |
|
|
|
def getAttributeIsVisible(self): |
|
""" return object attribute isVisible""" |
|
if hasattr(self,'isVisible'): |
|
return self.isVisible |
|
return True |
|
|
|
def getDescription(self): |
|
"""get content of description field""" |
|
|
|
|
|
return self.unicodify(getattr(self,'description','')); |
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""title""" |
|
if hasattr(self,'getLanguage'): |
lang=self.getLanguage() |
lang=self.getLanguage() |
|
else: |
|
lang=None |
|
|
locale=None |
locale=None |
if lang and not (lang =="de"): |
if lang and not (lang =="de"): |
locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) |
locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) |
Line 130 class ECHO_basis:
|
Line 237 class ECHO_basis:
|
if locale: |
if locale: |
return self.decode(locale[0][1].title) |
return self.decode(locale[0][1].title) |
else: |
else: |
return self.decode(self.title) |
|
|
|
|
|
try: |
try: |
return self.title.encode('utf-8','ignore') |
return self.decode(self.title) |
except: |
except: |
self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error |
return self.title |
return self.title.encode('utf-8','ignore') |
|
|
|
def getLabel(self): |
def getLabel(self): |
"""title""" |
"""title""" |
|
if hasattr(self,'getLanguage'): |
lang=self.getLanguage() |
lang=self.getLanguage() |
|
else: |
|
lang=None |
|
|
locale=None |
locale=None |
|
|
if lang and not (lang=="de"): |
if lang and not (lang=="de"): |
locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) |
locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) |
|
|
Line 160 class ECHO_basis:
|
Line 268 class ECHO_basis:
|
return ret |
return ret |
|
|
return self.decode(self.label) |
return self.decode(self.label) |
try: |
|
return self.label.encode('utf-8','ignore') |
|
except: |
|
self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error |
|
return self.label.encode('utf-8','ignore') |
|
|
|
|
|
def changeECHOEntriesForm(self): |
def changeECHOEntriesForm(self): |
"""change Entries for the ECHO Navigation environment""" |
"""change Entries for the ECHO Navigation environment""" |
Line 307 class ECHO_basis:
|
Line 409 class ECHO_basis:
|
js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm) |
js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm) |
return js |
return js |
|
|
def createMapHead(self): |
def createMapHead(self,mapColTypes=None): |
"""create javascript include and script tags for head""" |
"""create javascript include and script tags for head""" |
pt=zptFile(self, 'zpt/ECHO_content_map_frag_js') |
pt=zptFile(self, 'zpt/ECHO_content_map_frag_js') |
return pt() |
return pt(mapColTypes=mapColTypes) |
|
|
def createMapImg(self): |
def createMapImg(self): |
"""generate img-tag for map""" |
"""generate img-tag for map""" |
Line 333 class ECHO_basis:
|
Line 435 class ECHO_basis:
|
"""generate map link""" |
"""generate map link""" |
bt = BrowserCheck(self) |
bt = BrowserCheck(self) |
id = ob.getFullId() |
id = ob.getFullId() |
link = ob.getLinkId() |
url = ob.getTargetUrl() |
|
if url == "": |
|
# ECHOResource with empty link -> no link |
|
href = 'href="#" onclick="return false;"' |
|
else: |
|
href = 'href="%s"'%ob.getLinkId() |
|
|
|
if target is None: |
|
targetattr = "" |
|
else: |
|
targetattr = 'target="%s"'%target |
|
|
if text is None: |
if text is None: |
text = ob.getLabel() |
text = ob.getLabel() |
|
|
if text is None: |
if text is None: |
text = "link" |
text = "link" |
|
|
tiptext = ob.getTip() |
tiptext = ob.getTip() |
tag = "" |
tag = "" |
if bt.isN4: |
if bt.isN4: |
# N4 needs layer for highlighting |
# N4 needs layer for highlighting |
tag += '<ilayer id="a.%s"><a class="maplink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" href="%s" target="%s"'%(id,id,id,link,target) |
tag += '<ilayer id="a.%s"><a class="maplink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" %s %s'%(id,id,id,href,targetattr) |
tag += ">" + text + "</a></ilayer>" |
tag += ">" + text + "</a></ilayer>" |
else: |
else: |
# a-element |
# a-element |
tag = '<a id="a.%s" class="maplink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" href="%s" target="%s"'%(id,id,id,link,target) |
tag = '<a id="a.%s" class="maplink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" %s %s'%(id,id,id,href,targetattr) |
if tiptext: |
if tiptext: |
tag += ' title="%s"'%tiptext |
tag += ' title="%s"'%tiptext |
tag += ">" + text + "</a>" |
tag += ">" + text + "</a>" |
Line 357 class ECHO_basis:
|
Line 472 class ECHO_basis:
|
bt = BrowserCheck(self) |
bt = BrowserCheck(self) |
id = ob.getFullId() |
id = ob.getFullId() |
link = ob.getLinkId() |
link = ob.getLinkId() |
|
url = ob.getTargetUrl() |
|
if url == "": |
|
# ECHOResource with empty link -> no link |
|
href = 'href="#" onclick="return false;"' |
|
else: |
|
href = 'href="%s"'%ob.getLinkId() |
|
|
|
if target is None: |
|
targetattr = "" |
|
else: |
|
targetattr = 'target="%s"'%target |
tiptext = ob.getTip() |
tiptext = ob.getTip() |
tag = "" |
tag = "" |
|
|
Line 382 class ECHO_basis:
|
Line 508 class ECHO_basis:
|
|
|
if float(rot) < 0: |
if float(rot) < 0: |
marksrc = circlesrc |
marksrc = circlesrc |
tag += '<a href="%s"><img border="0" src="%s&rot=%s" /></a>'%(link,marksrc,rot) |
tag += '<a %s><img border="0" src="%s&rot=%s" /></a>'%(href,marksrc,rot) |
elif ob.isTypeText(): |
elif ob.isTypeText(): |
# N4 - Text |
# N4 - Text |
tag += '<div id="t.%s" class="maptext"'%(id) |
tag += '<div id="t.%s" class="maptext"'%(id) |
Line 391 class ECHO_basis:
|
Line 517 class ECHO_basis:
|
tag += '</div>' |
tag += '</div>' |
else: |
else: |
# N4 - Area |
# N4 - Area |
tag += '<a href="%s"><img border="0" width="1000" height="1000" src="trans_img"'%(link) |
tag += '<a %s><img border="0" width="1000" height="1000" src="trans_img"'%(href) |
if tiptext: |
if tiptext: |
tag += ' alt="%s"'%tiptext |
tag += ' alt="%s"'%tiptext |
tag += ' /></a>' |
tag += ' /></a>' |
Line 400 class ECHO_basis:
|
Line 526 class ECHO_basis:
|
# |
# |
# (more or less) DOM capable browser |
# (more or less) DOM capable browser |
# |
# |
tag = '<a id="b.%s" class="mapmarklink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" href="%s" target="%s">'%(id,id,id,link,target) |
tag = '<a id="b.%s" class="mapmarklink" onmouseover="highlightPair(\'%s\', true)" onmouseout="highlightPair(\'%s\', false)" %s %s>'%(id,id,id,href,targetattr) |
if ob.isTypeArrow(): |
if ob.isTypeArrow(): |
# DOM - Arrow |
# DOM - Arrow |
rot = ob.angle |
rot = ob.angle |
Line 408 class ECHO_basis:
|
Line 534 class ECHO_basis:
|
if hasattr(getattr(self,link),'link'): |
if hasattr(getattr(self,link),'link'): |
cLink=getattr(self,link).link |
cLink=getattr(self,link).link |
# if existing delete virtuell path |
# if existing delete virtuell path |
|
if hasattr(self.REQUEST,'VirtualRootPhysicalPath'): |
cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'') |
cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'') |
|
|
if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip(): |
if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip(): |
Line 506 def readFieldFromXML(meta_url,parent,fie
|
Line 633 def readFieldFromXML(meta_url,parent,fie
|
|
|
def urlopen(url): |
def urlopen(url): |
"""urlopen mit timeout""" |
"""urlopen mit timeout""" |
socket.setdefaulttimeout(2) |
socket.setdefaulttimeout(10) |
ret=urllib.urlopen(url) |
ret=urllib.urlopen(url) |
socket.setdefaulttimeout(5) |
socket.setdefaulttimeout(5) |
return ret |
return ret |
Line 530 def checkOnlyOneInGroup(object):
|
Line 657 def checkOnlyOneInGroup(object):
|
return displayedObjects[0][1] |
return displayedObjects[0][1] |
else: return object |
else: return object |
|
|
def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None): |
|
|
|
|
def getSubCols(self, sortfield=None, |
|
subColTypes=displayTypes, |
|
sortFieldMD=None, |
|
searchMD=None, |
|
searchMD_modus='search', |
|
searchSimple=None, |
|
generic="yes",search_sub=0, |
|
isVisible=True): |
|
|
def sort(x,y): |
def sort(x,y): |
|
try: |
|
if type(x[0])==type(y[0]): |
return cmp(x[0],y[0]) |
return cmp(x[0],y[0]) |
|
else: |
|
if type(x[0])==types.StringType: |
|
tmpX=unicodify(x[0]) |
|
tmpY=y[0] |
|
else: |
|
tmpY=unicodify(y[0]) |
|
tmpX=x[0] |
|
return cmp(tmpX,tmpY) |
|
|
|
except: |
|
logging.error("Error at ECHO_helpers.sort:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") |
|
logging.error(" : %s %s"%sys.exc_info()[0:2]) |
|
logging.error("Error at ECHO_helpers.sort:"+repr(x)+"--"+repr(type(x[0]))) |
|
logging.error("Error at ECHO_helpers.sort:"+repr(y)+"--"+repr(type(y[0]))) |
|
logging.error("Error at ECHO_helpers.sort:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB") |
|
return 0 |
def sortfnc(sortfield,x,y): |
def sortfnc(sortfield,x,y): |
try: |
try: |
xa=x[1].getMDValue(sortfield) |
xa=x[1].getMDValue(sortfield,generic=generic) |
except: |
except: |
xa="" |
xa="" |
try: |
try: |
ya=y[1].getMDValue(sortfield) |
ya=y[1].getMDValue(sortfield,generic=generic) |
except: |
except: |
ya="" |
ya="" |
return cmp(xa,ya) |
return cmp(xa,ya) |
|
|
sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y)) |
sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y)) |
ids=[] |
ids=[] |
displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) |
displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes,search_sub=search_sub) |
|
|
|
|
|
if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'): |
|
searchString=" AND ".join(searchSimple.split()) |
|
ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString,'getIsVisible':True})] |
|
else: |
for entry in displayedObjects: |
for entry in displayedObjects: |
|
|
|
|
object=entry[1] |
object=entry[1] |
if searchMD and hasattr(object,'getMDValue'): |
if searchMD: |
|
if hasattr(object,'getMDValue'): |
flag=0 |
flag=0 |
for field in searchMD.keys(): |
for field in searchMD.keys(): |
if object.getMDValue(field)==searchMD[field]: |
#if object.getMDValue(field,generic=generic)==searchMD[field]: |
|
#if re.match(searchMD[field],object.getMDValue(field,generic=generic)): |
|
if searchMD_modus=='match': |
|
searchResult=re.match(searchMD[field],object.getMDValue(field,generic=generic)) |
|
else: |
|
searchResult=re.search(searchMD[field],object.getMDValue(field,generic=generic)) |
|
if searchResult: |
flag=1 |
flag=1 |
else: |
else: |
flag=0 |
flag=0 |
Line 568 def getSubCols(self, sortfield=None, sub
|
Line 727 def getSubCols(self, sortfield=None, sub
|
ids.append(object) |
ids.append(object) |
else: |
else: |
ids.append(object) |
ids.append(object) |
|
|
if not sortfield: |
if not sortfield: |
sortfield=getattr(self,'sortfield','weight') |
sortfield=getattr(self,'sortfield','weight') |
|
|
|
|
tmplist=[] |
tmplist=[] |
|
|
for x in ids: |
for x in ids: |
|
|
if hasattr(x,sortfield): |
if hasattr(x,sortfield): |
try: |
try: |
tmp=int(getattr(x,sortfield)) |
tmp=int(getattr(x,sortfield)) |
Line 593 def getSubCols(self, sortfield=None, sub
|
Line 747 def getSubCols(self, sortfield=None, sub
|
else: |
else: |
tmplist.sort(sortWithMD(sortFieldMD)) |
tmplist.sort(sortWithMD(sortFieldMD)) |
|
|
return [x for (key,x) in tmplist] |
ret=[x for (key,x) in tmplist] |
|
|
|
return ret |
|
|
def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']): |
def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']): |
"""Rerender all Links""" |
"""Rerender all Links""" |
Line 607 def ECHO_rerenderLinksMD(self,obj=None,t
|
Line 763 def ECHO_rerenderLinksMD(self,obj=None,t
|
for entry in entries: |
for entry in entries: |
if entry[1].meta_type == 'ECHO_resource': |
if entry[1].meta_type == 'ECHO_resource': |
try: |
try: |
entry[1].ECHO_getResourceMD(template="no") |
entry[1].ECHO_getResourceMD(template="no",overwrite="yes") |
if "title" in types: |
if "title" in types: |
entry[1].generate_title() |
entry[1].generate_title() |
if "label" in types: |
if "label" in types: |
Line 625 def reloadMetaDataFromStorage(self,RESPO
|
Line 781 def reloadMetaDataFromStorage(self,RESPO
|
"""copy metadata from the storage to ECHO""" |
"""copy metadata from the storage to ECHO""" |
ret="" |
ret="" |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
|
if RESPONSE is not None: |
|
RESPONSE.setHeader("Content-Type", type) |
|
RESPONSE.write("<html><body>\n") |
|
|
for resource in resources: |
for resource in resources: |
x=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
x=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
|
if RESPONSE is not None: |
|
RESPONSE.write(x+"\n") |
|
|
ret+=x |
ret+=x |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
#RESPONSE.redirect('./manage_main') |
#RESPONSE.redirect('./manage_main') |
return "<html><body>"+ret+"</html></body>" |
RESPONSE.write( "</html></body>") |
|
|
return ret |
return ret |
|
|
Line 736 def checkDiffs(self,metadict):
|
Line 898 def checkDiffs(self,metadict):
|
|
|
for field in tags[1]: |
for field in tags[1]: |
try: |
try: |
if (NoneToEmpty(self.getFieldValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]): |
if (NoneToEmpty(self.getMDValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]): |
diffs[self.getFieldTag(tags,field)]=1 |
diffs[self.getFieldTag(tags,field)]=1 |
else: |
else: |
|
|
Line 753 def zptFile(self, path, orphaned=False):
|
Line 915 def zptFile(self, path, orphaned=False):
|
# unusual case |
# unusual case |
pt=PageTemplateFile(os.path.join(package_home(globals()), path)) |
pt=PageTemplateFile(os.path.join(package_home(globals()), path)) |
else: |
else: |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self) |
return pt |
return pt |
|
|
Line 842 def writeMetadata(url,metadict,project=N
|
Line 1005 def writeMetadata(url,metadict,project=N
|
node.appendChild(nodetext) |
node.appendChild(nodetext) |
metanode.appendChild(node) |
metanode.appendChild(node) |
|
|
|
|
if xmlfrag: |
if xmlfrag: |
geturl="""<?xml version="1.0" ?> |
geturl="""<?xml version="1.0" encoding="UTF-8" ?> |
<resource type="MPIWG"> |
<resource type="MPIWG"> |
<meta> |
<meta> |
<bib type="Book"> |
<bib type="Book"> |
Line 859 def writeMetadata(url,metadict,project=N
|
Line 1023 def writeMetadata(url,metadict,project=N
|
|
|
|
|
except: |
except: |
|
logger("ECHO writeMetadata",logging.ERROR,"XCannot open: "+url) |
return (None,"XCannot open: "+url) |
return (None,"XCannot open: "+url) |
|
|
try: |
try: |
dom=xml.dom.minidom.parseString(geturl) |
dom=xml.dom.minidom.parseString(geturl) |
except: |
except: |
|
logger("ECHO writeMetadata",logging.ERROR,"Cannot parse: "+url+"<br>"+geturl) |
return (None,"Cannot parse: "+url+"<br>"+geturl) |
return (None,"Cannot parse: "+url+"<br>"+geturl) |
|
|
|
|
Line 876 def writeMetadata(url,metadict,project=N
|
Line 1042 def writeMetadata(url,metadict,project=N
|
metanode=metanodes[0] |
metanode=metanodes[0] |
|
|
for metaData in metadict.keys(): |
for metaData in metadict.keys(): |
|
if metaData: |
try: |
try: |
nodeOld=metanode.getElementsByTagName(metaData) |
nodeOld=metanode.getElementsByTagName(metaData) |
except: |
except: |
Line 894 def writeMetadata(url,metadict,project=N
|
Line 1060 def writeMetadata(url,metadict,project=N
|
if nodeOld: |
if nodeOld: |
metanode.removeChild(nodeOld[0]).unlink() |
metanode.removeChild(nodeOld[0]).unlink() |
|
|
|
|
metanodeneu=dom.createElement(metaData) |
metanodeneu=dom.createElement(metaData) |
|
try: |
|
metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8')) |
|
except: |
metanodetext=dom.createTextNode(metadict[metaData]) |
metanodetext=dom.createTextNode(metadict[metaData]) |
#try: |
#try: |
|
|
#metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8")) |
#metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8")) |
#except: |
#except: |
#metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8')) |
#metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8')) |
Line 927 def writeMetadata(url,metadict,project=N
|
Line 1098 def writeMetadata(url,metadict,project=N
|
updateTextToolNode('digiliburlprefix',digiliburlprefix) |
updateTextToolNode('digiliburlprefix',digiliburlprefix) |
|
|
try: |
try: |
return dom.toxml().encode('utf-8') |
|
|
return dom.toxml(encoding='utf-8').encode('utf-8') |
except: |
except: |
return dom.toxml('utf-8') |
|
|
|
|
|
|
return dom.toxml(encoding='utf-8') |
|
|
def readMetadata(url): |
def readMetadata(url): |
"""Methode zum Auslesen der Metadateninformation zu einer Resource |
"""Methode zum Auslesen der Metadateninformation zu einer Resource |
Line 977 def readMetadata(url):
|
Line 1149 def readMetadata(url):
|
except: |
except: |
"""nothing""" |
"""nothing""" |
|
|
|
return (metadict,"") |
return metadict,"" |
|
|
|
|
|
class MapArea(SimpleItem): |
class MapArea(SimpleItem): |
Line 1087 class MapArea(SimpleItem):
|
Line 1258 class MapArea(SimpleItem):
|
parent = self.aq_parent |
parent = self.aq_parent |
text = parent.getMapText() |
text = parent.getMapText() |
if text is not None: |
if text is not None: |
return text.document_src() |
#return text.document_src() |
|
return text() |
return "" |
return "" |
|
|
def getLabel(self): |
def getLabel(self): |
Line 1097 class MapArea(SimpleItem):
|
Line 1269 class MapArea(SimpleItem):
|
return self.aq_parent.label or self.aq_parent.id |
return self.aq_parent.label or self.aq_parent.id |
return self.label |
return self.label |
|
|
|
def getTargetUrl(self): |
|
"""returns the URL of the linked object""" |
|
if hasattr(self, 'aq_parent'): |
|
p = self.aq_parent |
|
# ECHOResource and ECHOLink have 'link' attribute |
|
if hasattr(p, 'link'): |
|
if p.link is None: |
|
# return empty string for empty link |
|
return "" |
|
else: |
|
return p.link |
|
|
|
# return None for unknown type |
|
return None |
|
|
def setLabel(self, label): |
def setLabel(self, label): |
"""sets the label""" |
"""sets the label""" |
self.label = label |
self.label = label |
Line 1142 class MapText(Folder,ZopePageTemplate):
|
Line 1329 class MapText(Folder,ZopePageTemplate):
|
self.ZBindings_edit(self._default_bindings) |
self.ZBindings_edit(self._default_bindings) |
if text is None: |
if text is None: |
text = open(self._default_content_fn).read() |
text = open(self._default_content_fn).read() |
|
if content_type is None: |
|
content_type = self.content_type |
self.pt_edit(text, content_type) |
self.pt_edit(text, content_type) |
|
|
def createLocale(self): |
def createLocale(self): |