version 1.34, 2004/06/15 11:58:02
|
version 1.38, 2004/07/27 14:05:46
|
Line 15 import urllib
|
Line 15 import urllib
|
from ECHO_helpers import displayTypes,checkOnlyOneInGroup |
from ECHO_helpers import displayTypes,checkOnlyOneInGroup |
from ECHO_collection import content_html |
from ECHO_collection import content_html |
|
|
|
|
|
|
|
from Globals import DTMLFile |
|
from OFS.Image import Image,cookId |
|
from OFS.Folder import Folder |
|
from OFS.SimpleItem import SimpleItem |
|
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
|
from Products.PageTemplates.PageTemplate import PageTemplate |
|
import re |
|
import string |
|
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
|
import os.path |
|
from Globals import package_home |
|
import urllib |
|
from ECHO_helpers import displayTypes,checkOnlyOneInGroup |
|
from ECHO_collection import content_html |
|
|
|
|
|
|
|
|
|
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 |
|
self.title=title |
|
self.catalogId=catalogId |
|
self.field=field |
|
|
|
self.baseUrl=baseUrl |
|
self.weight=weight |
|
self.content=contentType |
|
|
|
manage_options= SimpleItem.manage_options+( |
|
{'label':'Main Config','action':'changeECHO_ZCatalogElementForm'}, |
|
) |
|
|
|
|
|
def getWeight(self): |
|
"""get weight""" |
|
if hasattr(self,'weight'): |
|
return self.weight |
|
else: |
|
return 0 |
|
|
|
def getcontentType(self): |
|
"""get weight""" |
|
|
|
if hasattr(self,'contentType'): |
|
return self.contentType |
|
else: |
|
return 0 |
|
|
|
|
|
def changeECHO_ZCatalogElementForm(self): |
|
"""change""" |
|
|
|
pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_ZCatalogElement.zpt').__of__(self) |
|
return pt() |
|
|
|
def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None): |
|
"""change""" |
|
self.title=title |
|
self.catalogId=catalogId |
|
self.field=field |
|
self.baseUrl=baseUrl |
|
self.weight=weight |
|
self.contentType=contentType |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
def getKeywordList(self): |
|
return getattr(self,self.catalogId).uniqueValuesFor(self.field) |
|
|
|
def getNavList(self): |
|
"""ausgabe der treffer list für navigation""" |
|
|
|
records=self.getKeywordList() |
|
|
|
|
|
if not records: |
|
return [] |
|
else: |
|
ret=[] |
|
for record in records: |
|
#print "RC",record |
|
#if record: |
|
# ret.append((record,self.baseUrl+urllib.quote(record))) |
|
try: |
|
ret.append((record,self.baseUrl+urllib.quote(record))) |
|
except: |
|
"""nothing""" |
|
|
|
return ret |
|
|
|
|
|
def manage_addECHO_ZCatalogElementForm(self): |
|
"""Form for adding""" |
|
pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_ZCatalogElement.zpt').__of__(self) |
|
return pt() |
|
|
|
def manage_addECHO_ZCatalogElement(self,id,title,field,baseUrl,weight,contentType,RESPONSE=None): |
|
"""Add an ECHO_ZCatalogelement""" |
|
self._setObject(id,ECHO_ZCatalogElement(id,title,field,baseUrl,weight,contentType)) |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
class ECHO_contentType(Image): |
class ECHO_contentType(Image): |
"""ContentType Object""" |
"""ContentType Object""" |
|
|
Line 91 class ECHO_sqlElement(SimpleItem):
|
Line 204 class ECHO_sqlElement(SimpleItem):
|
else: |
else: |
self.searchField=searchField |
self.searchField=searchField |
self.baseUrl=baseUrl |
self.baseUrl=baseUrl |
self.weight=weight |
|
self.content=contentType |
self.content=contentType |
|
|
manage_options= SimpleItem.manage_options+( |
manage_options= SimpleItem.manage_options+( |
Line 139 class ECHO_sqlElement(SimpleItem):
|
Line 252 class ECHO_sqlElement(SimpleItem):
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
def searchQuery(self): |
def searchQuery(self,query=None,obj=None): |
|
#presently a hack, tests if search is of the search method, if not look at the next level. |
|
# |
|
#return self.ZSQLsimpleSearch(var=self.query) |
|
if not query: |
|
query=self.query |
|
|
|
if self.search.meta_type=="Z SQL Method": |
return self.search(var=self.query) |
return self.search(var=self.query) |
|
else: |
|
if self.aq_parent.aq_parent.search.meta_type=="Z SQL Method": |
|
return self.aq_parent.aq_parent.search(var=self.query) |
|
else: |
|
return [] |
|
|
|
|
|
|
|
|
def getNavList(self): |
def getNavList(self): |
"""ausgabe der treffer list für navigation""" |
"""ausgabe der treffer list für navigation""" |
|
|
records=self.searchQuery() |
records=self.searchQuery() |
|
|
|
|
if not records: |
if not records: |
return [] |
return [] |
else: |
else: |
Line 285 class ECHO_navigation(Folder):
|
Line 416 class ECHO_navigation(Folder):
|
|
|
displayedMetaTypes=displayTypes |
displayedMetaTypes=displayTypes |
|
|
|
def getImageViewers(self): |
|
"""images""" |
|
viewers=self.ZopeFind(self.standardImageViewer,obj_metatypes=['OSAS_ViewerObject']) |
|
return viewers |
|
|
def getR(self): |
def getR(self): |
"""re""" |
"""re""" |
return self.REQUEST |
return self.REQUEST |
Line 337 class ECHO_navigation(Folder):
|
Line 473 class ECHO_navigation(Folder):
|
obj=objtemp |
obj=objtemp |
|
|
|
|
for keys in obj.__dict__.keys(): |
|
x=getattr(obj,keys) |
for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes): |
|
x=keys[1] |
|
|
if hasattr(x,"meta_type"): |
if hasattr(x,"meta_type"): |
|
|
if x.meta_type in self.displayedMetaTypes: |
if x.meta_type in self.displayedMetaTypes: |
Line 391 class ECHO_navigation(Folder):
|
Line 529 class ECHO_navigation(Folder):
|
#print "TEMP",temp,self.tempSorted(temp, field=sortField) |
#print "TEMP",temp,self.tempSorted(temp, field=sortField) |
|
|
for x in self.tempSorted(temp, field=sortField): |
for x in self.tempSorted(temp, field=sortField): |
|
|
if not temp[x][1].title == "": |
if not temp[x][1].title == "": |
if temp[x][1].meta_type=="ECHO_sqlElement": |
|
|
if (temp[x][1].meta_type=="ECHO_sqlElement") or (temp[x][1].meta_type=="ECHO_ZCatalogElement"): |
|
|
for z in temp[x][1].getNavList(): |
for z in temp[x][1].getNavList(): |
listNav.append((z[0],z[1],None)) |
listNav.append((z[0],z[1],None)) |
|
|
else: |
else: |
# 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].label=='': |
label=temp[x][1].label.encode('utf-8') |
try: |
|
label=temp[x][1].label.encode('utf-8','ignore') |
|
except: |
|
label=temp[x][1].label |
else: |
else: |
label=temp[x][1].title.encode('utf-8') |
label=temp[x][1].title.encode('utf-8') |
else: |
else: |
Line 412 class ECHO_navigation(Folder):
|
Line 556 class ECHO_navigation(Folder):
|
listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1])) |
listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1])) |
else: |
else: |
listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1])) |
listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1])) |
#print self.getId(),start |
|
#print listNav |
|
|
|
#html="" |
|
#for k in listNav: |
|
# print k |
|
# html=html+"<a href='%s'>%s</a> "% (self.absolute_url()+createPath(k[1][1].absolute_url()),k[0]) |
|
|
|
return listNav |
return listNav |
|
|