--- ZSQLExtend/ZSQLExtend.py 2004/12/04 21:33:12 1.52 +++ ZSQLExtend/ZSQLExtend.py 2005/01/25 19:30:11 1.56 @@ -1,17 +1,20 @@ from OFS.Folder import Folder -from Globals import Persistent from Acquisition import Implicit -from Globals import DTMLFile,package_home +from Globals import DTMLFile,package_home,Persistent import urllib import re import string +import sys #from pyPgSQL import libpq from AccessControl import getSecurityManager -import os.path + from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.ZSQLMethods.SQL import SQLConnectionIDs import Shared.DC.ZRDB.DA +import zLOG +import os.path +import os def analyseIntSearch(word): #analyse integer searches @@ -307,8 +310,31 @@ class ZSQLExtendFolder(Folder,Persistent #print "INLINE:",query return self.ZSQLSimpleSearch(query) - def ZSQLSimpleSearch(self,query=None): + """simple search""" + if not query: + query=self.query + + 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","") + + try: + return self._v_searchSQL.__call__(var=query) + except : + if sys.exc_info()[0]=="Database Error": + try: + getattr(self,self.connection_id).manage_open_connection() + except: pass + else: + try: + return self._v_searchSQL.__call__(var=query) + except : + if sys.exc_info()[0]=="Database Error": + try: + getattr(self,self.connection_id).manage_open_connection() + except: pass + + def ZSQLSimpleSearch2(self,query=None): """ returrn SQLSearch""" #print "hi",query if not query: @@ -1222,8 +1248,16 @@ class ZSQLBibliography(Folder,ZSQLExtend return retdata,fieldlist + def createRDFTag(self,tag,content): + """create RDF""" + if content: + ret=""" %s"""%(tag,content,tag) + return ret.decode('latin-1') + else: + return "" + def createIndexTag(self,tag,content): - """creste tag""" + """create tag""" if content: ret="""<%s>%s"""%(tag,content,tag) return ret @@ -1240,12 +1274,62 @@ class ZSQLBibliography(Folder,ZSQLExtend pt.content_type="text/xml" return pt() - def getMetaDataXML(self): + def getMetaDataRDF(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.rdf')).__of__(self) pt.content_type="text/xml" return pt() + def getMetaDataXML(self): + """crate index meta""" + find=self.ZopeFind(self,obj_ids=["record.xml"]) + if not find: + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record.xml')).__of__(self) + pt.content_type="text/xml" + return pt() + else: + return find[0][1]() + + def createVLMAtripels(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 id_text from %s limit ALL"%'cdli_cat'): + 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) + + #found2=self.ZSQLInlineSearchU(_table="cdli_imglist",id_text=found.id_text) + #create collectionobject info + subject="http://xserve02.mpiwg-berlin.mpg.de:8880/cdlineu/cdli_coll/cdli2/cdli_templates/cdli_templates/textdisplay.html?-table=cdli_cat&id_text=%s"%found.id_text + object="http://xserve02:8880/cdlidata/images/getMetaDataRDF?id_text=%s"%found.id_text + predicate="metadata" + ret+="%s\t%s\t%s\n"%(subject,object,predicate) + #create image + subject="http://xserve02.mpiwg-berlin.mpg.de:8880/cdlineu/cdli_coll/cdli2/cdli_templates/cdli_templates/textdisplay.html?-table=cdli_cat&id_text=%s"%found.id_text + object="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&mo=rawfile"%found.id_text + predicate="image" + + ret+="%s\t%s\t%s\n"%(subject,object,predicate) + + #create thumb + subject="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&mo=rawfile"%found.id_text + object="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&dw=100&dh=100"%found.id_text + predicate="thumb" + + ret+="%s\t%s\t%s\n"%(subject,object,predicate) + + return ret + + def getMetaDatasXML(self): """index""" # check if the request's host part was OK