--- ZSQLExtend/ZSQLExtend.py 2004/10/19 11:24:12 1.41
+++ ZSQLExtend/ZSQLExtend.py 2004/10/28 14:16:00 1.46
@@ -13,6 +13,24 @@ from Products.PageTemplates.PageTemplate
from Products.ZSQLMethods.SQL import SQLConnectionIDs
import Shared.DC.ZRDB.DA
+def analyseIntSearch(word):
+ #analyse integer searches
+
+ splitted=word.split("-")
+
+ if len(splitted)==1:
+ return "="+splitted[0]
+
+ if splitted[0]=="":
+ return "< "+splitted[1]
+
+ if splitted[1]=='':
+ return "> "+splitted[0]
+ else:
+ return "BETWEEN "+splitted[0]+" AND "+splitted[1]
+
+
+
def sql_quote(v):
# quote dictionary
quote_dict = {"\'": "''", "\\": "\\\\"}
@@ -40,11 +58,11 @@ class ZSQLExtendFolder(Folder,Persistent
"""suche relative haufigkeiten"""
ret={}
allRecords=len(self.ZSQLSimpleSearch(statement + " where "+wherePart))
- print statement + " where "+wherePart
+
for oneclass in classes:
ret[oneclass]=len(self.ZSQLSimpleSearch(statement + " where ("+wherePart+") and "+ relStatement%oneclass))
- print statement + " where ("+wherePart+") and "+ relStatement%oneclass
- return (ret,allRecords)
+
+. return (ret,allRecords)
def content_html(self):
"""template fuer content"""
@@ -53,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()
@@ -86,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()
@@ -268,14 +286,14 @@ class ZSQLExtendFolder(Folder,Persistent
qs=[]
-
+
#print "INLINE:",query
return self.ZSQLSimpleSearch(query)
def ZSQLSimpleSearch(self,query=None):
""" returrn SQLSearch"""
- #print query
+ #print "hi",query
if not query:
query=self.query
if getattr(self,'_v_search',None):
@@ -516,13 +534,13 @@ class ZSQLExtendFolder(Folder,Persistent
"""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=""
@@ -660,7 +678,19 @@ class ZSQLExtendFolder(Folder,Persistent
tmps.append(name+" LIKE "+sql_quote("%"+word+"%"))
tmp=string.join(tmps,' AND ')
-
+
+ elif op=="numerical":
+ term=analyseIntSearch(value)
+ tmp=(name+" "+term)
+ elif op=="grep":
+ tmp=(name+" ~* "+sql_quote(value))
+ elif op=="one":
+ tmps=[]
+ for word in value.split(" "):
+ tmps.append(name+" LIKE "+sql_quote("%"+word+"%"))
+
+ tmp=string.join(tmps,' OR ')
+
op="ct"
if (not tableExt) or (namealt.split('.')[0]==tableExt):
@@ -786,6 +816,7 @@ class ZSQLExtendFolder(Folder,Persistent
def nextLink(self,html,storename="foundCount"):
"""nextLink"""
+
try:
limit=self.REQUEST.SESSION[storename]['rangeSize']
if int(limit)==0 :
@@ -832,12 +863,13 @@ 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"):
"""prev link"""
+
try:
limit=self.REQUEST.SESSION[storename]['rangeSize']
if int(limit)==0 :
@@ -858,7 +890,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,",")
@@ -889,7 +921,7 @@ class ZSQLExtendFolder(Folder,Persistent
newquerystring=string.join(newquery,"&")
- return "%s"%(self.actualPath()+"?"+newquerystring,html)
+ return "%s"%(self.REQUEST['URL']+"?"+newquerystring,html)
@@ -1014,7 +1046,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()
@@ -1025,7 +1057,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()
@@ -1118,13 +1150,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()