version 1.133, 2004/07/01 15:11:04
|
version 1.147, 2004/07/18 18:13:41
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
from Globals import Persistent, package_home |
from Globals import Persistent, package_home |
from Acquisition import Implicit |
from Acquisition import Implicit |
from ECHO_helpers import displayTypes |
from ECHO_helpers import displayTypes |
|
import urllib |
|
|
try: |
try: |
from psycopg import libpq |
from psycopg import libpq |
Line 46 import xml.dom.minidom
|
Line 46 import xml.dom.minidom
|
from ECHO_graphicalOverview import javaHandler,javaScriptMain |
from ECHO_graphicalOverview import javaHandler,javaScriptMain |
import ECHO_helpers |
import ECHO_helpers |
|
|
|
def getRDFDescription(self,linkURL,urn=None,nameDef=None): |
|
"""rdf""" |
|
ret="" |
|
about="""<RDF:Description about="%s">""" |
|
name="""<ECHONAVIGATION:name>%s</ECHONAVIGATION:name>""" |
|
link="""<ECHONAVIGATION:link xlink:href="%s">%s</ECHONAVIGATION:link>""" |
|
#link="""<ECHONAVIGATION:link RDF:about="%s"/>""" |
|
type="""<ECHONAVIGATION:type>%s</ECHONAVIGATION:type>""" |
|
#xlink="""<ECHONAVIGATION:xlink xlink:href="%s"/>""" |
|
if not urn: |
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
|
|
about2=about%urn |
|
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%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"+"\n</RDF:Description>" |
|
return ret |
|
|
def getCopyrightsFromForm(self,argv): |
def getCopyrightsFromForm(self,argv): |
medias={} |
medias={} |
partners={} |
partners={} |
Line 477 def manage_addECHO_layoutTemplate(self,
|
Line 511 def manage_addECHO_layoutTemplate(self,
|
REQUEST.RESPONSE.redirect(u+'/manage_main') |
REQUEST.RESPONSE.redirect(u+'/manage_main') |
return '' |
return '' |
|
|
|
|
|
|
class ECHO_resource(Folder,Persistent): |
class ECHO_resource(Folder,Persistent): |
"""ECHO Ressource""" |
"""ECHO Ressource""" |
security=ClassSecurityInfo() |
security=ClassSecurityInfo() |
Line 486 class ECHO_resource(Folder,Persistent):
|
Line 522 class ECHO_resource(Folder,Persistent):
|
|
|
getSubCols = ECHO_helpers.getSubCols |
getSubCols = ECHO_helpers.getSubCols |
|
|
|
security.declareProtected('View','index_html') |
|
|
|
def showRDF(self): |
|
"""showrdf""" |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
|
|
|
ret+="""</RDF:RDF>""" |
|
return ret |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf""" |
|
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="""<RDF:Seq about="%s">\n"""%urn |
|
flag=0 |
|
|
|
li="""<RDF:li resource="%s" />\n""" |
|
if not ('<error>' in self.getFullTextXML(noredirect='Yes')): |
|
nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getFullTextXML') |
|
rettemp+=li%nurn |
|
flag=1 |
|
if not ('<error>' in self.getImageView(noredirect='Yes')): |
|
nurn="urn:"+re.sub('/',':',self.absolute_url()+'/getImageView') |
|
rettemp+=li%nurn |
|
flag=1 |
|
|
|
rettemp+="</RDF:Seq>" |
|
|
|
if flag==1: |
|
ret+=rettemp |
|
|
|
if not ('<error>' 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 ('<error>' 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"): |
def getAccessRightSelectorHTML(self,outlook="select"): |
"""htmlselector""" |
"""htmlselector""" |
values=['free','mpiwg'] |
values=['free','mpiwg'] |
Line 650 class ECHO_resource(Folder,Persistent):
|
Line 736 class ECHO_resource(Folder,Persistent):
|
|
|
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server |
|
path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server |
|
path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server |
path=re.sub('/index.meta','',path) |
path=re.sub('/index.meta','',path) |
|
|
|
|
Line 710 class ECHO_resource(Folder,Persistent):
|
Line 797 class ECHO_resource(Folder,Persistent):
|
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server |
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server |
|
|
|
path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server |
|
path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server |
|
|
return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() |
return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() |
|
|
Line 719 class ECHO_resource(Folder,Persistent):
|
Line 808 class ECHO_resource(Folder,Persistent):
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""title""" |
return self.title.decode('utf-8','ignore') |
try: |
|
return self.title.encode('utf-8','ignore') |
|
except: |
|
self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error |
|
return self.title.encode('utf-8','ignore') |
|
|
def getLabel(self): |
def getLabel(self): |
"""title""" |
"""title""" |
return self.label.decode('utf-8','ignore') |
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 content_html(self): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
Line 743 class ECHO_resource(Folder,Persistent):
|
Line 840 class ECHO_resource(Folder,Persistent):
|
texttools=dom.getElementsByTagName('texttool') |
texttools=dom.getElementsByTagName('texttool') |
text=texttools[0].getElementsByTagName('text') |
text=texttools[0].getElementsByTagName('text') |
texturl=getText(text[0].childNodes) |
texturl=getText(text[0].childNodes) |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
if not noredirect: |
if not noredirect: |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.redirect(texturl) |
self.REQUEST.RESPONSE.redirect(texturl) |
else: |
else: |
return texturl |
return texturl |
Line 756 class ECHO_resource(Folder,Persistent):
|
Line 854 class ECHO_resource(Folder,Persistent):
|
else: |
else: |
return "<error>no fulltext available</error>" |
return "<error>no fulltext available</error>" |
|
|
|
|
|
def getImageView(self,noredirect=None): |
|
"""getImages; give Imageviewr and <error></error> 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("<error>no fulltext available</error>") |
|
else: |
|
return "<error>no images available</error>" |
|
|
|
|
def getCopyrightsHTML(self): |
def getCopyrightsHTML(self): |
"""gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus""" |
"""gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus""" |
|
|
Line 1329 class ECHO_externalLink(Folder):
|
Line 1455 class ECHO_externalLink(Folder):
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""title""" |
return self.title.encode('utf-8') |
try: |
|
return self.title.encode('utf-8','ignore') |
|
except: |
|
self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error |
|
return self.title.encode('utf-8','ignore') |
|
|
def getLabel(self): |
def getLabel(self): |
"""title""" |
"""title""" |
return self.label.encode('utf-8') |
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 content_html(self): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
Line 1452 class ECHO_collection(Folder, Persistent
|
Line 1586 class ECHO_collection(Folder, Persistent
|
|
|
path="/mpiwg/online/permanent/shipbuilding" |
path="/mpiwg/online/permanent/shipbuilding" |
|
|
|
def showRDF(self): |
|
"""showrdf""" |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
|
|
|
ret+="""</RDF:RDF>""" |
|
return ret |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
|
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn=urn) |
|
|
|
if not urn: |
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
|
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
|
|
def changeLabels(self): |
def changeLabels(self): |
"""change form""" |
"""change form""" |
pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self) |
pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self) |
Line 1662 class ECHO_collection(Folder, Persistent
|
Line 1828 class ECHO_collection(Folder, Persistent
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""title""" |
return self.title.encode('utf-8') |
try: |
|
return self.title.encode('utf-8','ignore') |
|
except: |
|
self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error |
|
return self.title.encode('utf-8','ignore') |
|
|
def getLabel(self): |
def getLabel(self): |
"""title""" |
"""title""" |
return self.label.encode('utf-8') |
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 createRessourcesFromXMLForm(self): |
def createRessourcesFromXMLForm(self): |
"""form""" |
"""form""" |
Line 1689 class ECHO_collection(Folder, Persistent
|
Line 1861 class ECHO_collection(Folder, Persistent
|
ret+="<p>"+label+"</p>" |
ret+="<p>"+label+"</p>" |
manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") |
manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") |
return ret |
return ret |
|
|
def getImageTag(self): |
def getImageTag(self): |
"""GetTag""" |
"""GetTag""" |
try: |
try: |
Line 2147 class ECHO_group(ECHO_collection):
|
Line 2320 class ECHO_group(ECHO_collection):
|
) |
) |
|
|
security.declareProtected('View','index_html') |
security.declareProtected('View','index_html') |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn) |
|
|
|
|
|
|
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
def index_html(self): |
def index_html(self): |
"""standard page""" |
"""standard page""" |
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes) |
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes) |
Line 2363 class ECHO_root(Folder,Persistent,Implic
|
Line 2558 class ECHO_root(Folder,Persistent,Implic
|
|
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
def showRDF(self): |
|
"""showrdf""" |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
|
|
|
ret+="""</RDF:RDF>""" |
|
return ret |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
|
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn=urn) |
|
|
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
|
|
def showContent(self,path): |
def showContent(self,path): |
"""return content/html""" |
"""return content/html""" |
|
|
Line 2815 class ECHO_root(Folder,Persistent,Implic
|
Line 3039 class ECHO_root(Folder,Persistent,Implic
|
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): |
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): |
|
|
echo_url=resource[1].absolute_url() |
echo_url=resource[1].absolute_url() |
if resource[1].getFullTextXML(noredirect="yes"): |
|
if hasattr(resource[1],'link'): |
if hasattr(resource[1],'link'): |
viewer_url=echo_url+"/getMetaDataXML" |
meta_url=echo_url+"/getMetaDataXML" |
else: |
else: |
viewer_url="NO URL" |
meta_url="NO_URL" |
if filter: |
|
if re.search(filter,viewer_url): |
if filter and not re.search(filter,viewer_url): |
ret+="""\n<resource echoLink="%s" viewerLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?')) |
continue |
else: |
|
ret+="""\n<resource echoLink="%s" viewerLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?')) |
ret+="""\n<resource resourceLink="%s" metaLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(meta_url,safe='/:?')) |
|
|
ret +="""\n</index>""" |
ret +="""\n</index>""" |
|
|
|
|