--- ECHO_content/ECHO_collection.py 2006/01/16 17:33:00 1.261 +++ ECHO_content/ECHO_collection.py 2006/03/03 22:05:31 1.267 @@ -38,6 +38,7 @@ from Products.PageTemplates.ZopePageTemp from Globals import Persistent, package_home from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware +from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon import urllib import cgi @@ -342,7 +343,7 @@ class ECHO_fullText(ZopePageTemplate,ECH def getPage(self,nr='1'): """get page n""" #return self().encode('latin-1','ignore') - dom=xml.dom.minidom.parseString(self().encode('utf-8','ignore')) + dom=xml.dom.minidom.parseString(self()) pages=dom.getElementsByTagName('page') return pages[int(nr)-1].toxml() @@ -852,9 +853,11 @@ class ECHO_resource(CatalogAware,Folder, params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s&digiliburlprefix=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix) - - ECHO_helpers.urlopen('http://echo.mpiwg-berlin.mpg.de/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read() - + try: + ECHO_helpers.urlopen('http://echo.mpiwg-berlin.mpg.de/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read() + except: + zLOG.LOG("ECHO_ressource (changeViewerTemplateSet)", zLOG.ERROR,"%s (%s)"%sys.exc_info()[0:2]) + zLOG.LOG("ECHO_ressource (changeViewerTemplateSet)", zLOG.ERROR,'http://echo.mpiwg-berlin.mpg.de/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))) #print self.absolute_url()+'/newMetaXML'+urllib.quote'?'+params) # hack Pfad auf die Dokumente path=self.metalink @@ -863,22 +866,15 @@ class ECHO_resource(CatalogAware,Folder, path=re.sub('/index.meta','',path) - path=re.sub(self.REQUEST['SERVER_URL'],'',path) - path=re.sub('http://'+self.REQUEST['HTTP_HOST'],'',path) - - 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.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('http://content.mpiwg-berlin.mpg.de','',path) # falls content als server - path=re.sub('http://echo.mpiwg-berlin.mpg.de','',path) # falls echo - - path=re.sub('http://vision.rz-berlin.mpg.de','',path) # falls vision als server - - return ECHO_helpers.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() - + #TODO: direct access to the file system necessary, fix that also xmlrpc to the server where the index file is stored is possible + parsedUrl=urlparse.urlparse(path) + path=parsedUrl[2] + + try: + return ECHO_helpers.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() + except: + zLOG.LOG("ECHO_Resource (changeViewerTemplateSet)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2]) + zLOG.LOG("ECHO_Resource (changeViewerTemplateSet)", zLOG.INFO,"http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path) if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -2854,6 +2850,29 @@ class ECHO_root(Folder,Persistent,Implic meta_type="ECHO_root" management_page_charset="utf-8" + getSubCols = ECHO_helpers.getSubCols + + manage_options=Folder.manage_options+( + {'label':'Main Config','action':'ECHO_copyright_configForm'}, + {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, + {'label':'Change Weights','action':'changeWeights'}, + {'label':'Generate from RDF','action':'generateFromRDFForm'}, + {'label':'update Resource Catalog','action':'updateResourceCatalog'}, + {'label':'Copy MD for indexing and search','action':'copySearchFields'}, +) + + + def copySearchFields(self,RESPONSE=None): + """copys < metadatafields to the object""" + resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) + + for resource in resources: + + resource[1].copySearchFields() + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + def mod_re_sub(self,pattern,replace,string): """re.sub aus mod re zur Verfuegung stellen""" return re.sub(pattern,replace,string) @@ -2892,19 +2911,6 @@ class ECHO_root(Folder,Persistent,Implic if RESPONSE: RESPONSE.write("

ok

\n") - def printer(self,txt): - print txt - print txt[2] - print txt[2].getImageTag() - print "HO" - return txt[2].getImageTag() - - def printer2(self,txt): - print txt - - - def item2(self,txt): - return txt[2] def setLanguage(self,lang): """Set language cookie""" @@ -2919,6 +2925,7 @@ class ECHO_root(Folder,Persistent,Implic self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="/") self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) + def getLanguage(self): """get language cookie""" lang= self.REQUEST.cookies.get('lang_exhibition','de') @@ -3108,17 +3115,7 @@ class ECHO_root(Folder,Persistent,Implic pt=zptFile(self, 'zpt/changeWeightForm') pt.content_type="text/html" return pt() - getSubCols = ECHO_helpers.getSubCols - - manage_options=Folder.manage_options+( - {'label':'Main Config','action':'ECHO_copyright_configForm'}, - {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, - {'label':'Change Weights','action':'changeWeights'}, - {'label':'Generate from RDF','action':'generateFromRDFForm'}, - -) - - + def reloadMetaDataFromStorageWarning(self,RESPONSE=None): """warning""" @@ -3647,7 +3644,46 @@ class ECHO_root(Folder,Persistent,Implic inst=self.ZopeFind(self.institutions, obj_ids=[id]) return inst + def updateResourceCatalog(self,REQUEST,RESPONSE): + """update ressource catalog""" + catalog=getattr(self,'resourceCatalog',None) + if not catalog: + return """

No resourceCatalog available

""" + else: + class element: + def __init__(self,group,name): + self.group=group + self.name=name + catalog.manage_delObjects('author splitter') + #elements=[element('Stop Words',""" Don't remove stop words' """),element('Word Splitter','ECHO author splitter')] + elements=[element('Word Splitter','ECHO author splitter')] + manage_addLexicon(catalog,id="author splitter",elements=elements) + + return catalog.manage_catalogReindex(REQUEST,RESPONSE,'manage_main') + + + def checkMetaDataLinks(self,correct=None): + """check all metadatalinks and if correct is set change the servername to content.mpiwg-berlin.mpg.de""" + + self.REQUEST.RESPONSE.write("") + for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): + metalink=resource[1].metalink + + try: + url=urllib.urlopen(metalink) + except: + + self.REQUEST.RESPONSE.write("

ERROR (opening %s):"%resource[1].absolute_url() +" -- %s %s
"%sys.exc_info()[0:2]) + self.REQUEST.RESPONSE.write("-----------%s"%metalink) + + if correct: + urlparsed=[x for x in urlparse.urlparse(metalink)] + urlparsed[1]="content.mpiwg-berlin.mpg.de" + neu=urlparse.urlunparse(urlparsed) + resource[1].metalink=neu[0:] + self.REQUEST.RESPONSE.write("----------changed to:%s)"%neu) + def manage_addECHO_root(self,id,title,RESPONSE=None): """Add an ECHO_root""" self._setObject(id,ECHO_root(id,title))