version 1.4, 2004/04/28 15:29:55
|
version 1.22, 2004/10/27 14:53:00
|
Line 1
|
Line 1
|
def getSubCols(self,sortfield="weight",subColTypes=['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_externalLink','ECHO_resource']): |
import socket |
|
import urllib |
|
import xml.dom.minidom |
|
|
|
def getText(nodelist): |
|
|
|
rc = "" |
|
for node in nodelist: |
|
if node.nodeType == node.TEXT_NODE: |
|
rc = rc + node.data |
|
return rc |
|
|
|
|
|
def readFieldFromXML(meta_url,parent,field): |
|
"""lesespezifisches metadatum""" |
|
|
|
try: |
|
dom=xml.dom.minidom.parse(meta_url) |
|
|
|
except: |
|
try: |
|
fh=urllib.urlopen(meta_url) |
|
dom=xml.dom.minidom.parse(fh) |
|
except: |
|
return None |
|
if not dom: return None |
|
|
|
parent=dom.getElementsByTagName(parent) |
|
if not dom: return None |
|
|
|
field=parent[0].getElementsByTagName(field) |
|
|
|
if not field: return None |
|
|
|
return getText(field[0].childNodes) |
|
|
|
|
|
|
|
def urlopen(url): |
|
"""urlopen mit timeout""" |
|
socket.setdefaulttimeout(2) |
|
ret=urllib.urlopen(url) |
|
socket.setdefaulttimeout(5) |
|
return ret |
|
# urlopener = urllib.URLopener() |
|
# |
|
# try: |
|
# con = urlopener.open(url) |
|
# return con |
|
# except timeoutsocket.Timeout: |
|
# return None |
|
|
|
|
|
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement'] |
|
|
|
|
|
def checkOnlyOneInGroup(object): |
|
"""check if object is a group and if it containt only one element it return this element""" |
|
displayedObjects=object.ZopeFind(object,obj_metatypes=displayTypes) |
|
if len(displayedObjects)==1: # nur ein Object dann redirect auf dieses Object |
|
|
|
return displayedObjects[0][1] |
|
else: |
|
return object |
|
|
|
def getSubCols(self,sortfield="weight",subColTypes= displayTypes): |
|
|
|
|
ids=[] |
ids=[] |
for entry in self.ZopeFind(self,obj_metatypes=subColTypes): |
displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) |
|
|
|
|
|
for entry in displayedObjects: |
object=entry[1] |
object=entry[1] |
try: |
try: |
if object.meta_type in subColTypes: |
if object.meta_type in subColTypes: |
Line 19 def getSubCols(self,sortfield="weight",s
|
Line 87 def getSubCols(self,sortfield="weight",s
|
for x in ids: |
for x in ids: |
if hasattr(x,sortfield): |
if hasattr(x,sortfield): |
try: |
try: |
|
|
x=int(x) |
x=int(x) |
except: |
except: |
"""nothing""" |
"""nothing""" |