version 1.61, 2005/02/23 14:53:57
|
version 1.65, 2005/10/10 15:36:40
|
Line 11 from Products.PageTemplates.ZopePageTemp
|
Line 11 from Products.PageTemplates.ZopePageTemp
|
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
|
|
from Products.ZSQLMethods.SQL import SQLConnectionIDs |
from Products.ZSQLMethods.SQL import SQLConnectionIDs |
|
from xml.sax.saxutils import escape |
|
from types import * |
import Shared.DC.ZRDB.DA |
import Shared.DC.ZRDB.DA |
import zLOG |
import zLOG |
import os.path |
import os.path |
import os |
import os |
|
|
|
|
def analyseIntSearch(word): |
def analyseIntSearch(word): |
#analyse integer searches |
#analyse integer searches |
|
|
Line 49 class ZSQLExtendFolder(Folder,Persistent
|
Line 52 class ZSQLExtendFolder(Folder,Persistent
|
"""Folder""" |
"""Folder""" |
meta_type="ZSQLExtendFolder" |
meta_type="ZSQLExtendFolder" |
|
|
|
|
def testneu(self): |
def testneu(self): |
"""test""" |
"""test""" |
relStatement="""period like '%s%%'""" |
relStatement="""period like '%s%%'""" |
Line 249 class ZSQLExtendFolder(Folder,Persistent
|
Line 253 class ZSQLExtendFolder(Folder,Persistent
|
ret+="""</select>""" |
ret+="""</select>""" |
return ret |
return ret |
|
|
def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple='',startValue=None,additionalSelect="",size=None): |
def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple='',startValue=None,additionalSelect="",size=None,linelen=None): |
"""generate select options form a search list |
"""generate select options form a search list |
es wird |
es wird |
<select name=fieldname mutiple> |
<select name=fieldname mutiple> |
Line 283 class ZSQLExtendFolder(Folder,Persistent
|
Line 287 class ZSQLExtendFolder(Folder,Persistent
|
field=getattr(result,fieldName) |
field=getattr(result,fieldName) |
fieldValue=getattr(result,valueName) |
fieldValue=getattr(result,valueName) |
if fieldValue: |
if fieldValue: |
|
if not linelen: |
ret+="""<option value="%s">%s</option>"""%(field,fieldValue) |
ret+="""<option value="%s">%s</option>"""%(field,fieldValue) |
|
else: |
|
mist = """%s"""%(fieldValue) |
|
if len(mist) > string.atoi(linelen): |
|
mist = mist[:string.atoi(linelen)] |
|
ret+="""<option value="%s">%s</option>"""%(field,mist) |
ret+="""</select>""" |
ret+="""</select>""" |
return ret |
return ret |
|
|
Line 340 class ZSQLExtendFolder(Folder,Persistent
|
Line 350 class ZSQLExtendFolder(Folder,Persistent
|
#print "INLINE:",query |
#print "INLINE:",query |
return self.ZSQLSimpleSearch(query) |
return self.ZSQLSimpleSearch(query) |
|
|
|
|
def ZSQLSimpleSearch(self,query=None,max_rows=1000000): |
def ZSQLSimpleSearch(self,query=None,max_rows=1000000): |
"""simple search""" |
"""simple search""" |
|
|
Line 348 class ZSQLExtendFolder(Folder,Persistent
|
Line 359 class ZSQLExtendFolder(Folder,Persistent
|
|
|
if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")): |
if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")): |
self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.connection_id,"var","<dtml-var var>") |
self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.connection_id,"var","<dtml-var var>") |
|
|
self._v_searchSQL.max_rows_=max_rows |
self._v_searchSQL.max_rows_=max_rows |
try: |
try: |
|
|
return self._v_searchSQL.__call__(var=query) |
return self._v_searchSQL.__call__(var=query) |
except : |
except : |
if sys.exc_info()[0]=="Database Error": |
if sys.exc_info()[0]=="Database Error": |
Line 359 class ZSQLExtendFolder(Folder,Persistent
|
Line 372 class ZSQLExtendFolder(Folder,Persistent
|
else: |
else: |
try: |
try: |
self._v_searchSQL.max_rows_=max_rows |
self._v_searchSQL.max_rows_=max_rows |
|
|
return self._v_searchSQL.__call__(var=query) |
return self._v_searchSQL.__call__(var=query) |
except : |
except : |
if sys.exc_info()[0]=="Database Error": |
if sys.exc_info()[0]=="Database Error": |
Line 421 class ZSQLExtendFolder(Folder,Persistent
|
Line 435 class ZSQLExtendFolder(Folder,Persistent
|
self.ZSQLSimpleSearch(queryString) |
self.ZSQLSimpleSearch(queryString) |
return self.REQUEST.RESPONSE.redirect(format) |
return self.REQUEST.RESPONSE.redirect(format) |
|
|
def ZSQLChange(self,**argv): |
def ZSQLChange(self,format=None,RESPONSE=None,**argv): |
"""change entries""" |
"""change entries""" |
#qs=self.REQUEST['QUERY_STRING'] |
#qs=self.REQUEST['QUERY_STRING'] |
# very bad hack |
# very bad hack |
|
|
qs_temp=[] |
qs_temp=[] |
|
|
for a in self.REQUEST.form.keys(): |
for a in self.REQUEST.form.keys(): |
qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a]))) |
qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a]))) |
|
|
qs=string.join(qs_temp,"&") |
qs=string.join(qs_temp,",") |
|
|
|
for field in argv.keys(): |
|
if field[0]=="_": |
|
fieldTmp="-"+field[1:] |
|
else: |
|
fieldTmp=field |
|
|
|
qs+=",%s=%s"%(fieldTmp,argv[field]) |
|
|
|
|
#print "CHANGE QS",self.REQUEST |
|
#return self.REQUEST |
|
changeList=[] |
changeList=[] |
for q in qs.split("&"): |
for q in qs.split(","): |
|
|
name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower())) |
name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower())) |
value=q.split("=")[1] |
value="=".join(q.split("=")[1:]) |
value=re.sub(r'\+'," ",value) |
value=re.sub(r'\+'," ",value) |
value=urllib.unquote(value) |
value=urllib.unquote(value) |
|
|
if name=="-table": |
if name=="-table": |
table=urllib.unquote(value) |
table=urllib.unquote(value) |
elif name=="-identify": |
elif name=="-identify": |
Line 450 class ZSQLExtendFolder(Folder,Persistent
|
Line 473 class ZSQLExtendFolder(Folder,Persistent
|
format=urllib.unquote(value) |
format=urllib.unquote(value) |
elif (not name[0]=="-") and (not len(value)==0): |
elif (not name[0]=="-") and (not len(value)==0): |
changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value))) |
changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value))) |
|
|
changeString=string.join(changeList,",") |
changeString=string.join(changeList,",") |
queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify) |
queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify) |
self.ZSQLSimpleSearch(queryString) |
self.ZSQLSimpleSearch(queryString) |
return self.REQUEST.RESPONSE.redirect(format) |
|
|
|
|
|
|
if RESPONSE and format: |
|
return RESPONSE.redirect(format) |
|
else: |
|
return True |
|
|
|
|
def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],restrictField='id_text',**argv): |
def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],restrictField='id_text',**argv): |
"""find2""" |
"""find2""" |
Line 1288 class ZSQLBibliography(Folder,ZSQLExtend
|
Line 1316 class ZSQLBibliography(Folder,ZSQLExtend
|
|
|
return retdata,fieldlist |
return retdata,fieldlist |
|
|
def createRDFTag(self,tag,content,namespace="ns"): |
def createRDFTag(self,tag,content,namespace="cdli"): |
"""create RDF""" |
"""create RDF""" |
if content: |
if content: |
tag=namespace+":"+tag |
tag=namespace+":"+tag |
|
if (type(content) is StringType) or (type(content) is UnicodeType): |
|
ret=""" <%s>%s</%s>"""%(tag,escape(content),tag) |
|
else: |
ret=""" <%s>%s</%s>"""%(tag,content,tag) |
ret=""" <%s>%s</%s>"""%(tag,content,tag) |
return ret.decode('latin-1') |
return ret.decode('latin-1') |
else: |
else: |
Line 1299 class ZSQLBibliography(Folder,ZSQLExtend
|
Line 1330 class ZSQLBibliography(Folder,ZSQLExtend
|
|
|
def createIndexTag(self,tag,content): |
def createIndexTag(self,tag,content): |
"""create tag""" |
"""create tag""" |
|
|
if content: |
if content: |
|
if (type(content) is StringType) or (type(content) is UnicodeType): |
|
ret=""" <%s>%s</%s>"""%(tag,escape(content),tag) |
|
else: |
ret="""<%s>%s</%s>"""%(tag,content,tag) |
ret="""<%s>%s</%s>"""%(tag,content,tag) |
return ret |
return ret.decode('latin-1') |
|
|
else: |
else: |
return "" |
return "" |
|
|