version 1.229, 2005/07/20 11:49:05
|
version 1.236, 2005/10/10 19:11:12
|
Line 37 from Products.PageTemplates.PageTemplate
|
Line 37 from Products.PageTemplates.PageTemplate
|
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
from Globals import Persistent, package_home |
from Globals import Persistent, package_home |
from Acquisition import Implicit |
from Acquisition import Implicit |
|
from Products.ZCatalog.CatalogPathAwareness import CatalogAware |
|
|
import urllib |
import urllib |
import cgi |
import cgi |
import smtplib |
import smtplib |
import time |
import time |
from Ft.Xml.Domlette import NonvalidatingReader |
from Ft.Xml.Domlette import NonvalidatingReader |
from Ft.Xml.Domlette import PrettyPrint |
from Ft.Xml.Domlette import PrettyPrint, Print |
from Ft.Xml import EMPTY_NAMESPACE |
from Ft.Xml import EMPTY_NAMESPACE |
|
|
import Ft.Xml.XPath |
import Ft.Xml.XPath |
Line 302 def manage_addECHO_fullText(self, id, ti
|
Line 303 def manage_addECHO_fullText(self, id, ti
|
return '' |
return '' |
|
|
|
|
class ECHO_resource(Folder,Persistent,ECHO_basis): |
class ECHO_resource(CatalogAware,Folder,Persistent,ECHO_basis): |
"""ECHO Ressource""" |
"""ECHO Ressource""" |
security=ClassSecurityInfo() |
security=ClassSecurityInfo() |
meta_type='ECHO_resource' |
meta_type='ECHO_resource' |
|
default_catalog='resourceCatalog' |
|
|
# viewClassificationList=viewClassificationListMaster |
# viewClassificationList=viewClassificationListMaster |
|
|
|
def PrincipiaSearchSource(self): |
|
"""Return cataloguable key for ourselves.""" |
|
return str(self) |
|
|
getSubCols = ECHO_helpers.getSubCols |
getSubCols = ECHO_helpers.getSubCols |
|
|
|
def reindex(self): |
|
"""generate fields for indexing and reindex""" |
|
import urlparse |
|
#TODO: korrigieren des metalink pfades konfigurierbar machen |
|
splitted= [x for x in urlparse.urlparse(self.metalink)] |
|
splitted[1]="foxridge.mpiwg-berlin.mpg.de"[0:] |
|
|
|
if splitted[0]=="http": |
|
self.metalink=urlparse.urlunparse(splitted) |
|
|
|
|
|
self.fullTextUrl=self.getFullTextXML(noredirect="yes") |
|
|
|
#TODO: korrigieren relative url to absoluter url volltexten, konfigurierbar? |
|
splitted= [x for x in urlparse.urlparse(self.fullTextUrl)] |
|
if splitted[0]=="": |
|
splitted[0]="http" |
|
splitted[1]="foxridge.mpiwg-berlin.mpg.de"[0:] |
|
|
|
self.fullTextUrl=urlparse.urlunparse(splitted) |
|
|
|
self.imagePath=self.getImagePath() |
|
|
|
self.reindex_object() |
|
|
|
|
security.declareProtected('View','createPDF') |
security.declareProtected('View','createPDF') |
def createPDF(self,RESPONSE=None,local=None,dpi=150): |
def createPDF(self,RESPONSE=None,local=None,dpi=150): |
Line 1033 class ECHO_resource(Folder,Persistent,EC
|
Line 1064 class ECHO_resource(Folder,Persistent,EC
|
return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) |
return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) |
|
|
def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): |
def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): |
"""schreibe md""" |
"""return bibliographical metadata as stored in the object""" |
|
|
try: |
try: |
|
|
Line 1041 class ECHO_resource(Folder,Persistent,EC
|
Line 1072 class ECHO_resource(Folder,Persistent,EC
|
except: |
except: |
return "<error> no metadata stored</error>" |
return "<error> no metadata stored</error>" |
|
|
|
def getXQueryMetaData(self,xquery): |
|
''' |
|
execute an xquery on the metadata and returns a list of tuples, |
|
each tuple represent the content of the node as text and the whole node as xml-fragment |
|
@param xquery: xquery auf den metadaten |
|
''' |
|
|
|
try: |
|
md=writeMetadata(self.metalink,self.metaDataHash,xmlfrag="yes") |
|
except: |
|
return None |
|
|
|
dom = NonvalidatingReader.parseString(md,"http://www.mpiwg-berlin.mpg.de/") |
|
|
|
results=Ft.Xml.XPath.Evaluate(xquery, contextNode=dom) |
|
|
|
ret=[] |
|
for result in results: |
|
|
|
buf = cStringIO.StringIO() |
|
PrettyPrint(result, stream=buf) |
|
str = buf.getvalue()[0:] |
|
buf.close() |
|
ret.append((getTextFromNode(result),str)) |
|
|
|
return ret |
|
|
def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): |
def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): |
"""prints out metadata as stored in the echo environment, format is the index.meta format""" |
"""prints out metadata as stored in the echo environment, format is the index.meta format""" |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
Line 1507 class ECHO_collection(Folder, Persistent
|
Line 1565 class ECHO_collection(Folder, Persistent
|
|
|
def localizeObjects(self): |
def localizeObjects(self): |
"""localize all objects""" |
"""localize all objects""" |
contents=self.ZopeFind(self,obj_metatypes=['ECHO_link','ECHO_mapText']) |
contents=self.ZopeFind(self,obj_metatypes=['ECHO_externalLink','ECHO_link','ECHO_mapText']) |
|
|
find=self.ZopeFind(self,obj_ids=('locale_en')) |
find=self.ZopeFind(self,obj_ids=('locale_en')) |
if not find: |
if not find: |
self.manage_addECHO_locale("en",'','') |
self.manage_addECHO_locale("en",'','') |
for content in contents: |
for content in contents: |
if content[1].meta_type=='ECHO_link': |
|
|
if content[1].meta_type in ['ECHO_link','ECHO_externalLink']: |
|
|
find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText')) |
find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText')) |
|
if find: |
root=find[0][1] |
root=find[0][1] |
|
|
locale=find[0][1].ZopeFind(find[0][1],obj_ids=('locale_en')) |
locale=find[0][1].ZopeFind(find[0][1],obj_ids=('locale_en')) |
else: |
else: |
|
root=None |
|
else: |
root=content[1] |
root=content[1] |
locale=content[1].ZopeFind(content[1],obj_ids=('locale_en')) |
locale=content[1].ZopeFind(content[1],obj_ids=('locale_en')) |
if not locale: |
if root and not locale: |
root.manage_addECHO_locale("en",'','') |
root.manage_addECHO_locale("en",'','') |
|
|
pt=zptFile(self, 'zpt/localizeObjects.zpt') |
pt=zptFile(self, 'zpt/localizeObjects.zpt') |
Line 2086 class ECHO_collection(Folder, Persistent
|
Line 2150 class ECHO_collection(Folder, Persistent
|
|
|
|
|
security.declarePublic('changeECHO_collection') |
security.declarePublic('changeECHO_collection') |
def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None): |
def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix=""): |
"""Aenderung der Properties""" |
"""Aenderung der Properties""" |
|
|
self.secondaryLink=secondaryLink |
self.secondaryLink=secondaryLink |
Line 2095 class ECHO_collection(Folder, Persistent
|
Line 2159 class ECHO_collection(Folder, Persistent
|
self.bgcolour=bgcolour |
self.bgcolour=bgcolour |
self.location=location |
self.location=location |
self.isAlwaysClickable=isAlwaysClickable |
self.isAlwaysClickable=isAlwaysClickable |
|
self.prefix=prefix[0:] |
|
self.suffix=suffix[0:] |
|
|
setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) |
setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) |
|
|
Line 2510 class ECHO_root(Folder,Persistent,Implic
|
Line 2576 class ECHO_root(Folder,Persistent,Implic
|
|
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
def findObjectFromFulltext(self,url=None,existUri=None): |
|
''' |
|
|
|
@param url: |
|
@param existUri: |
|
''' |
|
#TODO: at the moment assume that the filename is unique, the whole has to changed to a system of ids. |
|
return None |
|
|
|
def reindex(self,RESPONSE=None): |
|
"""indiziere alle Objecte neu""" |
|
|
|
if RESPONSE: |
|
RESPONSE.write("<html><body>") |
|
|
|
resources=self.ZopeFind(self,obj_metatypes=["ECHO_resource"], search_sub=1) |
|
|
|
for resource in resources: |
|
resource[1].reindex() |
|
print "<p> done %s </p>\n" |
|
if RESPONSE: |
|
RESPONSE.write("<p> done %s </p>\n"%resource[0]) |
|
|
|
if RESPONSE: |
|
RESPONSE.write("<p> ok </p></html></body>\n") |
|
|
def printer(self,txt): |
def printer(self,txt): |
print txt |
print txt |
print txt[2] |
print txt[2] |
Line 2526 class ECHO_root(Folder,Persistent,Implic
|
Line 2618 class ECHO_root(Folder,Persistent,Implic
|
|
|
def setLanguage(self,lang): |
def setLanguage(self,lang): |
"""Set language cookie""" |
"""Set language cookie""" |
self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="") |
self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="/") |
|
|
def switchLanguage(self): |
def switchLanguage(self): |
"""Set language cookie""" |
"""Set language cookie""" |
Line 2535 class ECHO_root(Folder,Persistent,Implic
|
Line 2627 class ECHO_root(Folder,Persistent,Implic
|
else: |
else: |
lang="en" |
lang="en" |
|
|
self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="") |
self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="/") |
self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) |
self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) |
def getLanguage(self): |
def getLanguage(self): |
"""get language cookie""" |
"""get language cookie""" |
Line 3112 class ECHO_root(Folder,Persistent,Implic
|
Line 3204 class ECHO_root(Folder,Persistent,Implic
|
|
|
#str= dom.toxml('utf-8') |
#str= dom.toxml('utf-8') |
buf = cStringIO.StringIO() |
buf = cStringIO.StringIO() |
PrettyPrint(dom, stream=buf, encoding='UTF-8') |
PrettyPrint(dom, stream=buf) |
str = buf.getvalue() |
str = buf.getvalue() |
buf.close() |
buf.close() |
#str=PrettyPrint(dom.documentElement,encoding='UTF-8') |
#str=PrettyPrint(dom.documentElement,encoding='UTF-8') |
#print link.toxml('utf-8') |
#print link.toxml('utf-8') |
#print type(str) |
#print type(str) |
retStr=regexpPage.search(str) |
retStr=regexpPage.search(str) |
|
|
try: # hack warum fehtl manchmal page?? |
try: # hack warum fehtl manchmal page?? |
return retStr.group(1) |
return retStr.group(1) |
except: |
except: |
Line 3135 class ECHO_root(Folder,Persistent,Implic
|
Line 3228 class ECHO_root(Folder,Persistent,Implic
|
except: |
except: |
"""nothing""" |
"""nothing""" |
|
|
dbs={'vl_technology':'','vl_people':'','vl_sites':''} |
dbs={'vl_technology':'','vl_people':" AND complete='yes'",'vl_sites':''} |
res=None |
res=None |
for db in dbs.keys(): |
for db in dbs.keys(): |
res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]))) |
res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]))) |