--- ECHO_content/ECHO_collection.py 2004/02/09 11:45:46 1.13 +++ ECHO_content/ECHO_collection.py 2004/03/30 15:30:58 1.21 @@ -10,6 +10,7 @@ class ECHO_externalLink contains informa """ import string +import re import OFS.Image from types import * from OFS.Image import Image @@ -23,7 +24,9 @@ from Products.PageTemplates.PageTemplate from Products.PageTemplates.PageTemplate import PageTemplate from Globals import Persistent from Acquisition import Implicit -from pyPgSQL import libpq +#from psycopg import libpq +#from pyPgSQL import libpq +import xml.dom.minidom import urllib import xml.dom.minidom @@ -228,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 @@ -254,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: @@ -367,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') @@ -380,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""" @@ -413,8 +431,11 @@ class ECHO_collection(Folder, Persistent security.declarePublic('getCreditObject') def getCreditObject(self,name): """credit id to credititem""" - return getattr(self.partners,name) - + try: + return getattr(self.partners,name) + except: + return "" + security.declarePublic('ECHO_generateNavBar') def ECHO_generateNavBar(self): """Erzeuge Navigationsbar""" @@ -452,6 +473,8 @@ class ECHO_collection(Folder, Persistent """nothing""" return "Rerenderd all links to resources in: "+self.title + + security.declarePublic('ECHO_newViewerLink') def getCoords(self): @@ -489,9 +512,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: @@ -532,10 +564,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""" + 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: @@ -543,7 +577,7 @@ class ECHO_collection(Folder, Persistent security.declarePublic('index_html') - showOverview=DTMLFile('ECHO_content_overview',globals()) + showOverview=DTMLFile('dtml/ECHO_content_overview',globals()) def index_html(self): @@ -647,14 +681,93 @@ 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 self.title=title + def deleteSpace(self,str): + """delete space at the end of a line""" + if str[len(str)-1]==" ": + return str[0:len(str)-1] + else: + return str + + + + # zusaetliche methoden fuer das vlp muessen in ein eigenes produkt + + def formatAscii(self,str,url=None): + """ersetze ascii umbrueche durch
""" + #url=None + if url: + + retStr="" + words=str.split("\n") + + for word in words: + strUrl=url%word + print "str",strUrl + retStr+="""%s
"""%(strUrl,word) + str=retStr + if str: + return re.sub(r"[\n]","
",str) + else: + return "" + + def link2html(self,str): + """link2html fuer VLP muss hier noch raus""" + if str: + print str + str=re.sub("\&","&",str) + dom=xml.dom.minidom.parseString(""+str+"") + links=dom.getElementsByTagName("link") + + print "link",links + for link in links: + link.tagName="a" + ref=link.getAttribute("ref") + if self.checkRef(ref): + link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref) + + return dom.toxml('utf-8') + return "" + + + def checkRef(self,ref): + dbs={'vl_literature':'AND CD LIKE \'%lise%\'','vl_technology':'','vl_people':''} + res=None + for db in dbs.keys(): + #print ref,"select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]) + + res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]))) + return res + + #Ende Methode fuer vlp + def PgQuoteString(self,string): """Quote string""" - print "PG",string + #print "PG",string return libpq.PgQuoteString(string) def getPartners(self):