--- ZSQLExtend/ZSQLExtend.py 2004/10/28 14:16:00 1.46 +++ ZSQLExtend/ZSQLExtend.py 2004/10/29 10:45:22 1.47 @@ -62,7 +62,7 @@ class ZSQLExtendFolder(Folder,Persistent for oneclass in classes: ret[oneclass]=len(self.ZSQLSimpleSearch(statement + " where ("+wherePart+") and "+ relStatement%oneclass)) -. return (ret,allRecords) + return (ret,allRecords) def content_html(self): """template fuer content""" @@ -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,10 +504,53 @@ class ZSQLExtendFolder(Folder,Persistent storename="foundCount" return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd']),int(self.REQUEST.SESSION[storename]['count']))) + + def ZSQLNewSearch(self,linkText,storename=None,**argv): + """suche mit alten parametern bis auf die in argv getauschten""" + + if storename: + """store""" + else: + storename="foundCount" + qs=self.REQUEST.SESSION[storename]['qs'] + + 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) + + + 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 auswaehlen maxstr="" @@ -552,6 +570,9 @@ class ZSQLExtendFolder(Folder,Persistent select="oid,*" #print "Q",nostore,qs #check for op + + + splitted=qs.split(",") if tableExt: @@ -737,6 +758,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: @@ -1156,7 +1180,7 @@ class ZSQLBibliography(Folder,ZSQLExtend def getMetaDataXML(self): """crate index meta""" - pt=PageTemplateFile(os.path.join(package_home(globals()),'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()