--- ECHO_content/ECHO_collection.py 2004/03/04 12:59:53 1.16 +++ ECHO_content/ECHO_collection.py 2004/04/02 07:56:26 1.24 @@ -30,7 +30,7 @@ import xml.dom.minidom import urllib import xml.dom.minidom - +from ECHO_graphicalOverview import javaHandler,javaScriptMain #List of different types for the graphical linking viewer viewClassificationListMaster=['view point','area'] @@ -231,19 +231,21 @@ class ECHO_resource(Folder): if not hasattr(self,'coords'): self.coords=[] + print "vorher",self.coords pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource.zpt').__of__(self) return pt() def changeECHO_resource(self,metalink,link,title,label,description,content_type,responsible,weight,viewClassification="",coords=None,credits=None,RESPONSE=None): - - """Änderung der Properties""" - - setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coords,viewClassification) - + coordsnew=[ string.split(x,",") for x in coords] + + + setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordsnew) + + self.coords=coordsnew[0:] self.link=link self.metalink=metalink @@ -257,9 +259,15 @@ class ECHO_resource(Folder): {'label':'Graphics','action':'ECHO_graphicEntry'}, ) + def getOverview(self): + """overview graphics""" + + return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1] + def ECHO_graphicEntry(self): """DO nothing""" - if 'overview' in self.aq_parent.__dict__.keys(): + overview = self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview']) + if overview: pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_draw.zpt').__of__(self) return pt() else: @@ -370,11 +378,11 @@ class ECHO_externalLink(Folder): def changeECHO_externalLink(self,link,title,label,description,content_type,responsible,weight,coords=None,credits=None,RESPONSE=None): """Änderung der Properties""" - + coordsnew=[ string.split(x,",") for x in coords] setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coords) - + self.coords=coordsnew[0:] self.link=link if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -383,7 +391,14 @@ class ECHO_externalLink(Folder): manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_externalLink_config'}, ) - + + def getCredits(self): + """Ausgabe der credits""" + if self.credits: + return self.credits + else: + return [] + def index_html(self): """standard page""" @@ -405,13 +420,49 @@ def manage_addECHO_externalLink(self,id, if RESPONSE is not None: RESPONSE.redirect('manage_main') - + + class ECHO_collection(Folder, Persistent, Implicit): """ECHO Collection""" security=ClassSecurityInfo() meta_type='ECHO_collection' + def addResource(self,id,title,label,description,content_type,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None): + """SSS""" + try: + manage_addECHO_resource(self,id,title,label,description,content_type,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None) + return "done" + except: + return None + + def getCollectionTreeXML(self): + """Tree as XML""" + def getCollection(object,depth=0): + depth+=1 + collections="" + for entry in object.__dict__.keys(): + element=getattr(object,entry) + try: + if element.meta_type=="ECHO_collection": + collections+="" + collections+=getCollection(element,depth)+"\n" + except: + """nothing""" + return collections + + + return ""+getCollection(self)+"" + + def createJavaScript(self): + """CreateJava""" + ret=javaScriptMain + + dynamical="" + for ob in self.getGraphicCoords(): + dynamical+="""Coords.push(new Coord('%s', Img, %s));\n"""%(ob[1],ob[0]) + ret+=javaHandler%dynamical + return ret security.declarePublic('getCreditObject') def getCreditObject(self,name): @@ -420,7 +471,7 @@ class ECHO_collection(Folder, Persistent return getattr(self.partners,name) except: return "" - + security.declarePublic('ECHO_generateNavBar') def ECHO_generateNavBar(self): """Erzeuge Navigationsbar""" @@ -458,6 +509,8 @@ class ECHO_collection(Folder, Persistent """nothing""" return "Rerenderd all links to resources in: "+self.title + + security.declarePublic('ECHO_newViewerLink') def getCoords(self): @@ -495,9 +548,18 @@ class ECHO_collection(Folder, Persistent ) + def getOverview(self): + """overview graphics""" + + return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1] + + def ECHO_graphicEntry(self): """DO nothing""" - if 'overview' in self.aq_parent.__dict__.keys(): + overview = self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview']) + + + if overview: pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_draw.zpt').__of__(self) return pt() else: @@ -538,13 +600,12 @@ class ECHO_collection(Folder, Persistent def changeECHO_collection(self,title,label,description,content_type,responsible,weight,credits=None,sortfield="weight",coords=None,RESPONSE=None): """Änderung der Properties""" - try: - coordsnew=[ string.split(x,",") for x in coords] - except: - coordsnew=[] - - setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordsnew) + + coordsnew=[ string.split(x,",") for x in coords] + setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordsnew) + + self.coords=coordsnew[0:] self.sortfield=sortfield if RESPONSE is not None: @@ -552,8 +613,14 @@ class ECHO_collection(Folder, Persistent security.declarePublic('index_html') - showOverview=DTMLFile('ECHO_content_overview',globals()) - + + def showOverview(self): + """overview""" + if 'ECHO_overview.html' in self.__dict__.keys(): + return getattr(self,'ECHO_overview.html')() + pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_content_overview.zpt').__of__(self) + return pt() + def index_html(self): """standard page""" @@ -575,6 +642,8 @@ class ECHO_collection(Folder, Persistent else: return [] + + def getGraphicCoords(self): """Give list of coordinates""" subColTypes=['ECHO_collection','ECHO_externalLink','ECHO_resource'] @@ -586,13 +655,15 @@ class ECHO_collection(Folder, Persistent for coordtemp in object.coords: if len(coordtemp)>3: coord=coordtemp[0:4] - if hasattr(object,'title'): + if hasattr(object,'label') and not object.label=="": + ids.append([string.join(coord,", "),object.getId(),object.label,object]) + elif hasattr(object,'title'): if not object.title=="": - ids.append([string.join(coord,", "),object.getId(),object.title]) + ids.append([string.join(coord,", "),object.getId(),object.title,object]) else: - ids.append([string.join(coord,", "),object.getId(),object.getId()]) + ids.append([string.join(coord,", "),object.getId(),object.getId(),object]) else: - ids.append([string.join(coord,", "),object.getId(),object.getId()]) + ids.append([string.join(coord,", "),object.getId(),object.getId(),object]) except: """nothing""" @@ -656,6 +727,28 @@ class ECHO_root(Folder,Persistent,Implic """ECHO Root Folder""" meta_type="ECHO_root" + + + def ECHO_newViewerLink(self,obj=None): + """change links (:86 faellt weg)""" + + if not obj: + obj = self + + entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_resource','ECHO_collection']) + + for entry in entries: + + if entry[1].meta_type == 'ECHO_resource': + + entry[1].link=re.sub('\:86','',entry[1].link) + + else: + + entry[1].ECHO_newViewerLink(entry[1]) + + return "Rerenderd all links to resources in: "+self.title + def __init__(self,id,title): """init""" self.id = id @@ -744,6 +837,9 @@ class ECHO_root(Folder,Persistent,Implic ids=[] # no partners return ids + + + def getCollectionTree(self): """get the collection tree (list of triples (parent,child, depth)"""