version 1.69, 2005/12/13 12:45:21
|
version 1.84.2.4, 2012/09/03 14:14:27
|
Line 1
|
Line 1
|
# Objekte zur Erzeugung von Navigationselement |
# Objekte zur Erzeugung von Navigationselement |
|
# 29-8-2012 Referenzen zum Storagemanager entfernt |
|
|
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo |
from Globals import DTMLFile |
from Globals import DTMLFile |
from OFS.Image import Image,cookId |
from OFS.Image import Image,cookId |
Line 29 from Products.PageTemplates.ZopePageTemp
|
Line 31 from Products.PageTemplates.ZopePageTemp
|
import os.path |
import os.path |
|
|
import urllib |
import urllib |
from ECHO_helpers import displayTypes,checkOnlyOneInGroup |
import ECHO_helpers |
|
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) |
|
|
|
|
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 81 class ECHO_ZCatalogElement(SimpleItem):
|
Line 90 class ECHO_ZCatalogElement(SimpleItem):
|
def changeECHO_ZCatalogElementForm(self): |
def changeECHO_ZCatalogElementForm(self): |
"""change""" |
"""change""" |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeECHO_ZCatalogElement.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_ZCatalogElement.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None): |
def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None): |
Line 96 class ECHO_ZCatalogElement(SimpleItem):
|
Line 105 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 282 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 295 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 306 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 367 class ECHO_pageTemplate(ZopePageTemplate
|
Line 384 class ECHO_pageTemplate(ZopePageTemplate
|
else: |
else: |
return 0 |
return 0 |
|
|
|
def getCrumb(self): |
|
"""returns breadcrumb for this object""" |
|
return ECHO_helpers.getCrumb(self) |
|
|
|
def getHierCrumbs(self): |
|
"""returns a list of hierarchical breadcrumbs from self to the ECHO_root""" |
|
return ECHO_helpers.getHierCrumbs(self); |
|
|
|
|
|
|
Line 430 class ECHO_navigation(Folder):
|
Line 454 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 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 512 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 540 class ECHO_navigation(Folder):
|
Line 566 class ECHO_navigation(Folder):
|
|
|
displayableMetaTypes=displayTypes |
displayableMetaTypes=displayTypes |
|
|
def getImageViewers(self): |
|
"""images""" |
|
viewers=self.ZopeFind(self.standardImageViewer,obj_metatypes=['OSAS_ViewerObject']) |
|
return viewers |
|
|
|
def getR(self): |
def getR(self): |
"""re""" |
"""re""" |
Line 563 class ECHO_navigation(Folder):
|
Line 585 class ECHO_navigation(Folder):
|
) |
) |
displayedMetaTypes=displayTypes |
displayedMetaTypes=displayTypes |
|
|
|
|
|
|
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) |
Line 611 class ECHO_navigation(Folder):
|
Line 635 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 707 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 760 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 775 class ECHO_navigation(Folder):
|
Line 806 class ECHO_navigation(Folder):
|
return style |
return style |
|
|
|
|
|
def getCrumb(self): |
|
"""returns breadcrumb for this object""" |
|
# ignore this object if title is empty |
|
if not self.title: |
|
return None |
|
|
|
# we use title for the label TODO: add label to ECHO_root |
|
crumb = {'obj': self, |
|
'url': self.absolute_url(), |
|
'label': self.title} |
|
return crumb |
|
|
|
def getHierCrumbs(self): |
|
"""returns a list of hierarchical breadcrumbs from self to the ECHO_root""" |
|
return ECHO_helpers.getHierCrumbs(self) |
|
|
|
|
def buttonsFromHash(self,hash,start=None,orientation="horizontal"): |
def buttonsFromHash(self,hash,start=None,orientation="horizontal"): |
|
|
"""Generate Buttons""" |
"""Generate Buttons""" |
Line 854 class ECHO_navigation(Folder):
|
Line 902 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 1019 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:] |
|
|