version 1.69, 2005/12/13 12:45:21
|
version 1.85, 2012/01/03 13:02:31
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
import os.path |
import os.path |
|
|
import urllib |
import urllib |
from ECHO_helpers import displayTypes,checkOnlyOneInGroup |
from ECHO_helpers import displayTypes,checkOnlyOneInGroup,unicodify |
from ECHO_collection import content_html |
from ECHO_collection import content_html |
import zLOG |
import logging |
|
|
|
#def ersetzt logging |
|
def logger(txt,method,txt2): |
|
"""logging""" |
|
logging.info(txt+ txt2) |
|
|
|
STORAGEMANAGER_URL_DEFAULT = "http://storage-web.mpiwg-berlin.mpg.de/storage/storeOnline?path=" |
try: |
try: |
from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder |
from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder |
except: |
except: |
zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported') |
logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported') |
|
|
|
|
|
|
Line 45 class ECHO_ZCatalogElement(SimpleItem):
|
Line 51 class ECHO_ZCatalogElement(SimpleItem):
|
meta_type="ECHO_ZCatalogElement" |
meta_type="ECHO_ZCatalogElement" |
baseUrl="" |
baseUrl="" |
|
|
|
|
|
|
def __init__(self,id,title,field,catalogId,baseUrl,weight,contentType): |
def __init__(self,id,title,field,catalogId,baseUrl,weight,contentType): |
"""init""" |
"""init""" |
self.id=id |
self.id=id |
Line 96 class ECHO_ZCatalogElement(SimpleItem):
|
Line 104 class ECHO_ZCatalogElement(SimpleItem):
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
def getKeywordList(self): |
def getKeywordList(self): |
|
try: |
return getattr(self,self.catalogId).uniqueValuesFor(self.field) |
return getattr(self,self.catalogId).uniqueValuesFor(self.field) |
|
except: |
|
#return getattr(self,self.catalogId).query(self.field) |
|
|
|
list= [x for x in getattr(getattr(self,self.catalogId),self.field).words()] |
|
list.sort() |
|
return list |
|
|
def getNavList(self): |
def getNavList(self): |
"""ausgabe der treffer list fuer navigation""" |
"""ausgabe der treffer list fuer navigation""" |
Line 266 class ECHO_sqlElement(SimpleItem):
|
Line 281 class ECHO_sqlElement(SimpleItem):
|
try: |
try: |
searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch |
searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch |
except: |
except: |
zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported') |
logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported') |
|
|
def getNavList(self): |
def getNavList(self): |
"""ausgabe der treffer list fuer navigation""" |
"""ausgabe der treffer list fuer navigation""" |
Line 279 class ECHO_sqlElement(SimpleItem):
|
Line 294 class ECHO_sqlElement(SimpleItem):
|
except: |
except: |
records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??) |
records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??) |
except: |
except: |
records=self.searchQuery()#python 2.3 version(??) |
records=self.searchQuery(query=self.query)#python 2.3 version(??) |
|
|
|
|
if not records: |
if not records: |
Line 290 class ECHO_sqlElement(SimpleItem):
|
Line 305 class ECHO_sqlElement(SimpleItem):
|
try: |
try: |
ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField()))))) |
ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField()))))) |
except: |
except: |
|
logger('ECHO_Nav',logging.INFO,"error, search") |
"""notrhing""" |
"""notrhing""" |
|
|
return ret |
return ret |
Line 430 class ECHO_navigation(Folder):
|
Line 446 class ECHO_navigation(Folder):
|
"""Navigations Element""" |
"""Navigations Element""" |
meta_type="ECHO_Navigation" |
meta_type="ECHO_Navigation" |
management_page_charset="utf-8" |
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']) |
|
if username=='Anonymous User': |
|
return None |
|
else: |
|
return username |
|
|
def searchExternalCollection(self,url,simpleSearch): |
def searchExternalCollection(self,url,simpleSearch): |
"""search external collection via xmlrpc""" |
"""search external collection via xmlrpc""" |
server=xmlrpclib.Server(url) |
server=xmlrpclib.Server(url) |
Line 479 class ECHO_navigation(Folder):
|
Line 514 class ECHO_navigation(Folder):
|
|
|
def decode(self,str): |
def decode(self,str): |
"""decoder""" |
"""decoder""" |
if not str: |
return unicodify(str) |
return "" |
|
if type(str) is StringType: |
|
|
|
return str.decode('utf-8') |
|
else: |
|
|
|
return str |
|
|
|
def ECHOFormatListStr(self,list,search="\n",replace="<br>"): |
def ECHOFormatListStr(self,list,search="\n",replace="<br>"): |
"""formatiert liste im str""" |
"""formatiert liste im str""" |
Line 563 class ECHO_navigation(Folder):
|
Line 591 class ECHO_navigation(Folder):
|
) |
) |
displayedMetaTypes=displayTypes |
displayedMetaTypes=displayTypes |
|
|
|
def getStorageManagerURL(self): |
|
"""returns the URL to the storagemanager""" |
|
return getattr(self,"storageManagerURL",STORAGEMANAGER_URL_DEFAULT) |
def ECHO_navigationConfigForm(self): |
def ECHO_navigationConfigForm(self): |
"""configForm""" |
"""configForm""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self) |
return pt() |
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""" |
"""config""" |
self.title=title |
self.title=title |
self.pathToHierarchy=pathToHierarchy |
self.pathToHierarchy=pathToHierarchy |
self.displayedMetaTypes=toList(displayedMetaTypes)[0:] |
self.displayedMetaTypes=toList(displayedMetaTypes)[0:] |
|
self.storageManagerURL=storageManagerURL |
|
self.fullTextBasisUrl=fullTextBasisUrl |
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
Line 611 class ECHO_navigation(Folder):
|
Line 642 class ECHO_navigation(Folder):
|
obj=objtemp |
obj=objtemp |
|
|
for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes): |
for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes): |
|
|
x=keys[1] |
x=keys[1] |
if depth>1: |
if depth>1: |
nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x) |
nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x) |
Line 682 class ECHO_navigation(Folder):
|
Line 714 class ECHO_navigation(Folder):
|
# add label falls existiert und nicht leer |
# add label falls existiert und nicht leer |
if hasattr(temp[x][1],'label'): |
if hasattr(temp[x][1],'label'): |
|
|
if not temp[x][1].label=='': |
if not temp[x][1].getLabel()=='': |
label=temp[x][1].getLabel() |
label=temp[x][1].getLabel() |
else: |
else: |
|
try: |
label=temp[x][1].getTitle() |
label=temp[x][1].getTitle() |
|
except: |
|
logger("ECHO_Nav",logging.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId()) |
|
label="" |
else: |
else: |
label=temp[x][1].getTitle() |
label=temp[x][1].getTitle() |
|
|
Line 731 class ECHO_navigation(Folder):
|
Line 767 class ECHO_navigation(Folder):
|
|
|
testStr=re.sub("/index_html",'',self.REQUEST.get('URL','')) |
testStr=re.sub("/index_html",'',self.REQUEST.get('URL','')) |
|
|
#falls exakte Übereinstimmung dann immer 1 |
if len(item)<2: |
|
return 0 |
|
#falls exakte Uebereinstimmung dann immer 1 |
if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''): |
if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''): |
|
|
return 1 |
return 1 |
Line 854 class ECHO_navigation(Folder):
|
Line 892 class ECHO_navigation(Folder):
|
nr=0 |
nr=0 |
return nr+1 |
return nr+1 |
|
|
|
def subNavStatic(self,obj): |
|
"""subnav" von self""" |
|
def sortWeight(x,y): |
|
x1=int(getattr(x[1],'weight','0')) |
|
y1=int(getattr(y[1],'weight','0')) |
|
return cmp(x1,y1) |
|
print "obj",obj |
|
subs=self.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes) |
|
subret=[] |
|
|
|
for x in subs: |
|
if not(x[1].title==""): |
|
subret.append(x) |
|
subret.sort(sortWeight) |
|
return subret |
|
|
def secondNavElements(self): |
def secondNavElements(self): |
"""Zweite Ordnung Navigationselemente""" |
"""Zweite Ordnung Navigationselemente""" |
|
|
Line 955 def createPath(self,url1,url2):
|
Line 1009 def createPath(self,url1,url2):
|
|
|
if self.REQUEST.has_key('VirtualRootPhysicalPath'): |
if self.REQUEST.has_key('VirtualRootPhysicalPath'): |
vp="/".join(self.REQUEST['VirtualRootPhysicalPath']) |
vp="/".join(self.REQUEST['VirtualRootPhysicalPath']) |
|
if (len(vp)>0): |
if vp[0]=="/": |
if vp[0]=="/": |
vp=vp[1:] |
vp=vp[1:] |
|
|