--- ECHO_content/ECHO_collection.py 2004/07/18 14:58:32 1.144
+++ ECHO_content/ECHO_collection.py 2004/07/18 18:13:41 1.147
@@ -46,31 +46,38 @@ import xml.dom.minidom
from ECHO_graphicalOverview import javaHandler,javaScriptMain
import ECHO_helpers
-def getRDFDescription(self,linkURL,urn=None):
+def getRDFDescription(self,linkURL,urn=None,nameDef=None):
"""rdf"""
ret=""
about=""""""
name="""%s"""
- link="""%s"""
+ link="""%s"""
#link=""""""
type="""%s"""
-
+ #xlink=""""""
if not urn:
urn="urn:"+re.sub('/',':',self.absolute_url())
about2=about%urn
-
- if hasattr(self,'label') and not (self.label==""):
- name2=name%urllib.quote(self.label)
- elif not self.title=="":
- name2=name%urllib.quote(self.title)
+ if not nameDef:
+ if hasattr(self,'label') and not (self.label==""):
+ name2=name%self.label
+ elif not self.title=="":
+ name2=name%self.title
+ else:
+ name2=name%self.getId()
+
+ name2=re.sub('&','&',name2)
else:
- name2=name%self.getId()
-
- link2=link%urllib.quote(linkURL)
+ name2=name%nameDef
+
+ linkURL=re.sub('http:','',linkURL)
+ linkURL2=re.sub('&','&',linkURL)
+ link2=link%(("http:"+linkURL2),("http:"+urllib.quote(linkURL)))
+
type2=type%self.meta_type
- ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n"
+ ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n"+"\n"
return ret
def getCopyrightsFromForm(self,argv):
@@ -516,10 +523,54 @@ class ECHO_resource(Folder,Persistent):
getSubCols = ECHO_helpers.getSubCols
security.declareProtected('View','index_html')
+
+ def showRDF(self):
+ """showrdf"""
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ ret="""\n\n"""
+ ret+=self.getRDF(urn="echo:collectionroot")+"\n"
+
+ ret+=""""""
+ return ret
+
def getRDF(self,urn=None):
"""rdf"""
- return getRDFDescription(self,self.link,urn=urn)
+ ret=getRDFDescription(self,self.link,urn=urn)
+ return ret+self.createSubElementRDF()
+
+
+ def createSubElementRDF(self):
+ """rdf list"""
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+ ret=""
+
+ rettemp="""\n"""%urn
+ flag=0
+ li="""\n"""
+ if not ('' in self.getFullTextXML(noredirect='Yes')):
+ nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getFullTextXML')
+ rettemp+=li%nurn
+ flag=1
+ if not ('' in self.getImageView(noredirect='Yes')):
+ nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getImageView')
+ rettemp+=li%nurn
+ flag=1
+
+ rettemp+=""
+
+ if flag==1:
+ ret+=rettemp
+
+ if not ('' in self.getFullTextXML(noredirect='Yes')):
+ nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getFullTextXML')
+ ret+=getRDFDescription(self,self.absolute_url()+'/getFullTextXML',urn=nurn,nameDef="Fulltext")
+
+ if not ('' in self.getImageView(noredirect='Yes')):
+ nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getImageView')
+ ret+=getRDFDescription(self,self.absolute_url()+'/getImageView',urn=nurn,nameDef="Image View")
+
+ return ret
def getAccessRightSelectorHTML(self,outlook="select"):
"""htmlselector"""
@@ -803,6 +854,34 @@ class ECHO_resource(Folder,Persistent):
else:
return "no fulltext available"
+
+ def getImageView(self,noredirect=None):
+ """getImages; give Imageviewr and if somthing goes wrong."""
+ try:
+ fh=urllib.urlopen(self.metalink)
+ dom=xml.dom.minidom.parse(fh)
+ texttools=dom.getElementsByTagName('texttool')
+ text=texttools[0].getElementsByTagName('image')
+ imagetemp=getText(text[0].childNodes)
+
+ text=dom.getElementsByTagName('archive-path')
+ archivepath=getText(text[0].childNodes)
+ archivepath=re.sub('/mpiwg/online/','',archivepath)
+ imageurl="http://echo.mpiwg-berlin.mpg.de/zogilib?fn="+archivepath+"/"+imagetemp
+ if not noredirect:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ self.REQUEST.RESPONSE.redirect(imageurl)
+ else:
+ return imageurl
+ except:
+
+ if not noredirect:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ self.REQUEST.RESPONSE.write("no fulltext available")
+ else:
+ return "no images available"
+
+
def getCopyrightsHTML(self):
"""gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus"""
@@ -1510,8 +1589,9 @@ class ECHO_collection(Folder, Persistent
def showRDF(self):
"""showrdf"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
- ret="""\n\n"""
- ret+=self.getRDF(urn="urn:echo:collectionroot")+"\n"
+ ret="""\n\n"""
+ ret+=self.getRDF(urn="echo:collectionroot")+"\n"
+
ret+=""""""
return ret
@@ -2481,7 +2561,7 @@ class ECHO_root(Folder,Persistent,Implic
def showRDF(self):
"""showrdf"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
- ret="""\n"""
+ ret="""\n\n"""
ret+=self.getRDF(urn="echo:collectionroot")+"\n"
ret+=""""""