--- ZSQLExtend/ZSQLExtend.py 2004/09/27 18:51:57 1.34 +++ ZSQLExtend/ZSQLExtend.py 2004/09/27 20:31:40 1.35 @@ -5,7 +5,7 @@ from Globals import DTMLFile import urllib import re import string -from pyPgSQL import libpq +#from pyPgSQL import libpq from AccessControl import getSecurityManager import os.path from Products.PageTemplates.PageTemplateFile import PageTemplateFile @@ -13,6 +13,14 @@ from Products.PageTemplates.PageTemplate from Products.ZSQLMethods.SQL import SQLConnectionIDs import Shared.DC.ZRDB.DA +def sql_quote(self, v): + # quote dictionary + quote_dict = {"\'": "''", "\\": "\\\\"} + for dkey in quote_dict.keys(): + if find(v, dkey) >= 0: + v=join(split(v,dkey),quote_dict[dkey]) + return "'%s'" % v + def showSQLConnectionIDs(self): return SQLConnectionIDs(self) @@ -294,7 +302,7 @@ class ZSQLExtendFolder(Folder,Persistent valueList=[] for x in addList.keys(): keyList.append("\""+x+"\"") - valueList.append(libpq.PgQuoteString(addList[x])) + valueList.append(sql_quote(addList[x])) keyString=string.join(keyList,",") valueString=string.join(valueList,",") @@ -304,7 +312,7 @@ class ZSQLExtendFolder(Folder,Persistent return self.REQUEST.RESPONSE.redirect(format) def ZSQLChange(self,**argv): - """Ändern von Einträgen""" + """change entries""" #qs=self.REQUEST['QUERY_STRING'] # very bad hack qs_temp=[] @@ -1119,11 +1127,24 @@ class ZSQLBibliography(Folder,ZSQLExtend def getMetaDatasXML(self): """index""" + # check if the request's host part was OK + http_host = self.REQUEST['HTTP_HOST'] + host_port = self.REQUEST['SERVER_PORT'] + fix_host = None + if http_host and http_host.rfind(host_port) == -1: + print "HTTP_HOST needs fixing!" + fix_host = http_host + ":" + host_port + ret=""" """ for found in self.ZSQLSimpleSearch("select oid from %s limit ALL"%self.tableName): - link=self.absolute_url()+"/"+"record.html?oid=%i"%found.oid - metalink=self.absolute_url()+"/"+"getMetaDataXML?oid=%i"%found.oid + base_url = self.absolute_url() + if fix_host: + #print "replacing ", http_host, " by ", fix_host + base_url = string.replace(base_url, http_host, fix_host, 1) + + link=base_url+"/"+"record.html?oid=%i"%found.oid + metalink=base_url+"/"+"getMetaDataXML?oid=%i"%found.oid ret+="""\n"""%(link,metalink)