--- ECHO_content/ECHO_collection.py 2004/02/09 11:45:46 1.13
+++ ECHO_content/ECHO_collection.py 2004/03/30 10:47:54 1.19
@@ -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
@@ -256,7 +259,9 @@ class ECHO_resource(Folder):
def ECHO_graphicEntry(self):
"""DO nothing"""
- if 'overview' in self.aq_parent.__dict__.keys():
+ overview = self.ZopeFind(self,obj_ids=['overview'])
+
+ if overview:
pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_draw.zpt').__of__(self)
return pt()
else:
@@ -380,7 +385,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 +425,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 +467,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 +506,15 @@ class ECHO_collection(Folder, Persistent
)
+ def getOverview(self):
+ """overview graphics"""
+ return self.ZopeFind(self,obj_ids=['overview'])[0][1]
+
def ECHO_graphicEntry(self):
"""DO nothing"""
- if 'overview' in self.aq_parent.__dict__.keys():
+ overview = self.ZopeFind(self,obj_ids=['overview'])
+
+ if overview:
pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_draw.zpt').__of__(self)
return pt()
else:
@@ -543,7 +566,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 +670,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):