--- ZSQLExtend/ZSQLExtend.py 2004/10/22 13:32:24 1.44
+++ ZSQLExtend/ZSQLExtend.py 2004/10/29 13:40:24 1.48
@@ -71,7 +71,7 @@ class ZSQLExtendFolder(Folder,Persistent
obj=getattr(self,"ZSQLBibliography_template")
return obj()
except:
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/ZSQLBibliography_template_standard.zpt',content_type='text/htm').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ZSQLBibliography_template_standard.zpt'),content_type='text/html').__of__(self)
pt.content_type="text/html"
return pt()
@@ -104,7 +104,7 @@ class ZSQLExtendFolder(Folder,Persistent
def changeZSQLExtendForm(self):
"""change folder config"""
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/changeZSQLExtendForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeZSQLExtendForm.zpt')).__of__(self)
return pt()
@@ -380,32 +380,7 @@ class ZSQLExtendFolder(Folder,Persistent
self.ZSQLSimpleSearch(queryString)
return self.REQUEST.RESPONSE.redirect(format)
- def ZSQLChange_old(self):
- """change entries"""
- qs=self.REQUEST['QUERY_STRING']
- #print "CHANGE QS",self.REQUEST
- #return self.REQUEST
- changeList=[]
- for q in qs.split("&"):
- name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower()))
- value=q.split("=")[1]
- value=re.sub(r'\+'," ",value)
- value=urllib.unquote(value)
- if name=="-table":
- table=urllib.unquote(value)
- elif name=="-identify":
- identify=urllib.unquote(value)
- identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1])
- elif name=="-format":
- format=urllib.unquote(value)
- elif (not name[0]=="-") and (not len(value)==0):
- changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value)))
- changeString=string.join(changeList,",")
- queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)
- self.ZSQLSimpleSearch(queryString)
- return self.REQUEST.RESPONSE.redirect(format)
-
-
+
def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],**argv):
"""find2"""
@@ -529,18 +504,70 @@ class ZSQLExtendFolder(Folder,Persistent
storename="foundCount"
return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd']),int(self.REQUEST.SESSION[storename]['count'])))
+
+ def ZSQLNewQuery(self,linkText,storename=None,**argv):
+ """suche neu"""
+ return self.ZSQLNewSearch(linkText,storename,url=self.REQUEST['URL'],args=argv)
+
+ def ZSQLNewSearch(self,linkText,storename=None,url=None,args=None,**argv):
+ """suche mit alten parametern bis auf die in argv getauschten"""
+
+ if storename:
+ """store"""
+ else:
+ storename="foundCount"
+ qs=self.REQUEST.SESSION[storename]['qs']
+
+ if args:
+ argv=args
+
+ querys=qs.split(",")
+ argList=[]
+ arg=""
+ queryList=[x.split("=")[0] for x in querys]
+
+ for argTmp in argv.keys():
+
+
+ arg=argTmp[0:]
+ if arg[0]=="_":arg="-"+argTmp[1:] # aender _ in - als standard
+
+ if arg not in queryList: # noch nicht drin
+ querys.append("%s=%s"%(arg,argv[argTmp]))
+ argList.append(arg)
+
+
+
+ newquery=[]
+ for query in querys:
+ queryArg=query.split("=")[0]
+ qarg=queryArg[0:]
+ if qarg[0]=="-":qarg="_"+queryArg[1:] # aender _ in - als standard
+
+ if queryArg in argList:
+ newquery.append("%s=%s"%(queryArg,argv[qarg]))
+ else:
+ newquery.append(query)
+
+ if url:
+ str=url+"?"+"&".join(newquery)
+ else:
+ str="ZSQLSearch?"+"&".join(newquery)
+
+ return """ %s"""%(str,linkText)
def parseQueryString(self,qs,iCT,storemax="no",select=None,nostore=None,storename=None,tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None):
"""analysieren den QueryString"""
- #print "NO",nostore
+
+
lop="AND" # standardsuche mit and
- max="ALL" #standard alle auswählen
+ max="ALL" #standard alle auswaehlen
maxstr=""
whereList=[]
sort=""
op="bw"
opfields={}
- lopfields={} #Verknüpfung bei mehrfachauswahl von einem feld
+ lopfields={} #Verknuepfung bei mehrfachauswahl von einem feld
sortfields={} #order of sortfields
sortAllFields=None
skip=""
@@ -552,6 +579,9 @@ class ZSQLExtendFolder(Folder,Persistent
select="oid,*"
#print "Q",nostore,qs
#check for op
+
+
+
splitted=qs.split(",")
if tableExt:
@@ -737,6 +767,9 @@ class ZSQLExtendFolder(Folder,Persistent
#print "QUERYSTRING:",self.REQUEST.SESSION[storename]['queryString2']
if not self.REQUEST.SESSION.has_key(storename):
self.REQUEST.SESSION[storename]={}
+
+ self.REQUEST.SESSION[storename]['qs']=qs #sichere Querystring
+
if self.REQUEST.SESSION[storename].has_key('queryString2'):
if not self.REQUEST.SESSION[storename]['queryString2']==query2:
@@ -863,8 +896,8 @@ class ZSQLExtendFolder(Folder,Persistent
newquery.append(query)
newquerystring=string.join(newquery,"&")
-
- return "%s"%(self.actualPath()+"?"+newquerystring,html)
+ return "%s"%(self.REQUEST['URL']+"?"+newquerystring,html)
+
def prevLink(self,html,storename="foundCount"):
@@ -890,7 +923,7 @@ class ZSQLExtendFolder(Folder,Persistent
if self.REQUEST['QUERY_STRING']=="":
qs=self.REQUEST.SESSION['query']
- #qs=re.sub(r'_','-',qs) #aendern für query
+ #qs=re.sub(r'_','-',qs) #aendern fuer query
queries=string.split(qs,",")
@@ -921,7 +954,7 @@ class ZSQLExtendFolder(Folder,Persistent
newquerystring=string.join(newquery,"&")
- return "%s"%(self.actualPath()+"?"+newquerystring,html)
+ return "%s"%(self.REQUEST['URL']+"?"+newquerystring,html)
@@ -1046,7 +1079,7 @@ class ZSQLBibliography(Folder,ZSQLExtend
def changeZSQLBibliographyForm(self):
"""change folder config"""
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/changeZSQLBibliographyForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeZSQLBibliographyForm.zpt')).__of__(self)
return pt()
@@ -1057,7 +1090,7 @@ class ZSQLBibliography(Folder,ZSQLExtend
obj=getattr(self,"ZSQLBibliography_template")
return obj()
except:
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/ZSQLBibliography_template_standard.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ZSQLBibliography_template_standard.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -1150,13 +1183,13 @@ class ZSQLBibliography(Folder,ZSQLExtend
fn=os.path.splitext(self.REQUEST['fn'])[0]+"."
self.REQUEST['fn']=fn
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/record2.xml').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record2.xml')).__of__(self)
pt.content_type="text/xml"
return pt()
def getMetaDataXML(self):
"""crate index meta"""
- pt=PageTemplateFile('Products/ZSQLExtend/zpt/record.xml').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record.xml')).__of__(self)
pt.content_type="text/xml"
return pt()