--- ECHO_content/ECHO_Nav.py 2007/02/22 10:29:00 1.80 +++ ECHO_content/ECHO_Nav.py 2012/01/03 13:02:31 1.85 @@ -29,7 +29,7 @@ from Products.PageTemplates.ZopePageTemp import os.path import urllib -from ECHO_helpers import displayTypes,checkOnlyOneInGroup +from ECHO_helpers import displayTypes,checkOnlyOneInGroup,unicodify from ECHO_collection import content_html import logging @@ -38,7 +38,7 @@ def logger(txt,method,txt2): """logging""" logging.info(txt+ txt2) - +STORAGEMANAGER_URL_DEFAULT = "http://storage-web.mpiwg-berlin.mpg.de/storage/storeOnline?path=" try: from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder except: @@ -50,7 +50,9 @@ class ECHO_ZCatalogElement(SimpleItem): """Erzeuge navigation aus ZCatalog-abfrage""" meta_type="ECHO_ZCatalogElement" baseUrl="" - + + + def __init__(self,id,title,field,catalogId,baseUrl,weight,contentType): """init""" self.id=id @@ -445,6 +447,16 @@ class ECHO_navigation(Folder): meta_type="ECHO_Navigation" management_page_charset="utf-8" + + def getFullTextBasisUrl(self): + #return die Basis url auf fulltexte, z.B. + #Beispiel http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/getDoc?doc=/archimedes/la/achil_propo_087_la_1545.xml + return getattr(self, "fullTextBasisUrl","http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/getDoc?doc=%s") + + def getStandardMD(self): + #return self.standardMD_old + return self.metadata.main.meta.bib + def getUsername(self): """get name of user""" username=str(self.REQUEST['AUTHENTICATED_USER']) @@ -502,16 +514,7 @@ class ECHO_navigation(Folder): def decode(self,str): """decoder""" - if not str: - return "" - if type(str) is StringType: - try: - return str.decode('utf-8') - except: - return str.decode('latin-1') - else: - - return str + return unicodify(str) def ECHOFormatListStr(self,list,search="\n",replace="
"): """formatiert liste im str""" @@ -588,18 +591,21 @@ class ECHO_navigation(Folder): ) displayedMetaTypes=displayTypes + def getStorageManagerURL(self): + """returns the URL to the storagemanager""" + return getattr(self,"storageManagerURL",STORAGEMANAGER_URL_DEFAULT) def ECHO_navigationConfigForm(self): """configForm""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self) return pt() - def ECHO_navigationConfig(self,title,pathToHierarchy,displayedMetaTypes=displayTypes,RESPONSE=None): + def ECHO_navigationConfig(self,title,pathToHierarchy,fullTextBasisUrl="",storageManagerURL="",displayedMetaTypes=displayTypes,RESPONSE=None): """config""" self.title=title self.pathToHierarchy=pathToHierarchy self.displayedMetaTypes=toList(displayedMetaTypes)[0:] - - + self.storageManagerURL=storageManagerURL + self.fullTextBasisUrl=fullTextBasisUrl if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -636,7 +642,7 @@ class ECHO_navigation(Folder): obj=objtemp for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes): - + x=keys[1] if depth>1: nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x) @@ -763,7 +769,7 @@ class ECHO_navigation(Folder): if len(item)<2: return 0 - #falls exakte Übereinstimmung dann immer 1 + #falls exakte Uebereinstimmung dann immer 1 if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''): return 1 @@ -906,7 +912,7 @@ class ECHO_navigation(Folder): """Zweite Ordnung Navigationselemente""" hash=self.createNavHash(2,checkOnly="no") - + actual_url=self.REQUEST['URL'] ult_temp=re.sub(self.absolute_url(),"",actual_url)