version 1.86, 2006/05/17 20:18:38
|
version 1.88, 2006/05/17 21:42:49
|
Line 1
|
Line 1
|
genericServerPath="http://www.mpiwg-berlin.mpg.de/zogilib_images" #can be changed with main config |
genericServerPath="http://www.mpiwg-berlin.mpg.de/zogilib_images" #can be changed with main config |
|
|
|
|
|
from Ft.Xml.Domlette import NonvalidatingReader |
from OFS.Folder import Folder |
from OFS.Folder import Folder |
from OFS.OrderedFolder import OrderedFolder |
from OFS.OrderedFolder import OrderedFolder |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
Line 1631 class ImageCollection(OrderedFolder, Per
|
Line 1631 class ImageCollection(OrderedFolder, Per
|
|
|
def getImageByName(self,filename,onlyName=None): |
def getImageByName(self,filename,onlyName=None): |
"""get filename""" |
"""get filename""" |
|
#print repr(filename) |
#FIXME: umlaute in filename |
#FIXME: umlaute in filename |
fn=getattr(self,repr(filename),None) |
fn=getattr(self,repr(filename),None) |
if not fn: |
if not fn: |
Line 1870 class ImageCollectionMD(ImageCollection,
|
Line 1870 class ImageCollectionMD(ImageCollection,
|
|
|
def searchDB(self,REQUEST=None,RESPONSE=None,xml=None): |
def searchDB(self,REQUEST=None,RESPONSE=None,xml=None): |
"""search""" |
"""search""" |
#context.ZSQLFind(_table='vision_main') |
|
urlTmp=REQUEST['URL1'] |
|
|
|
url=urlTmp+'/searchResultXML?-table=%s&'%self.imageCollectionConfig.getTable()+REQUEST['QUERY_STRING'] |
rc=[] |
|
fnIds={} |
|
for found in self.ZSQLInlineSearch(args=self.REQUEST.form): |
|
key=getattr(found,self.imageCollectionConfig.getKey()) |
|
key=self.getImageByName(key,onlyName="yes") |
|
rc.append((key,'',0)) |
|
fnIds[key]=('',0) |
|
|
|
rc.sort() |
|
self.REQUEST.SESSION['filenames']=rc |
|
self.REQUEST.SESSION['filenamesIds']=fnIds |
|
|
if xml is None: |
overview=self.ZopeFind(self,obj_ids=['overview_selectedMD.html']) |
RESPONSE.redirect('xmlinput?url='+urllib.quote(url)) |
|
|
if overview: |
|
return overview[0][1]() |
else: |
else: |
RESPONSE.redirect(url) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selectedMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selectedMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
#urlTmp=REQUEST['URL1'] |
|
|
|
#url=urlTmp+'/searchResultXML?-table=%s&'%self.imageCollectionConfig.getTable()+REQUEST['QUERY_STRING'] |
|
|
|
#if xml is None: |
|
# RESPONSE.redirect('xmlinput?url='+urllib.quote(url)) |
|
#else: |
|
# RESPONSE.redirect(url) |
|
|
def index_html(self,fn=None,selection=None,generic='No',REQUEST=None,RESPONSE=None): |
def index_html(self,fn=None,selection=None,generic='No',REQUEST=None,RESPONSE=None): |
"""main template collection""" |
"""main template collection""" |
Line 2055 class ImageCollectionMD(ImageCollection,
|
Line 2078 class ImageCollectionMD(ImageCollection,
|
xmldoc=urllib.urlopen(url).read() |
xmldoc=urllib.urlopen(url).read() |
#return xmldoc |
#return xmldoc |
try: |
try: |
dom=xml.dom.minidom.parseString(xmldoc) |
dom=NonvalidatingReader.parseUri(url) |
|
|
except: |
except: |
return "ERROR: (%s %s) %s"%(sys.exc_info()[0],sys.exc_info()[1],xmldoc) |
return "ERROR: (%s %s) %s"%(sys.exc_info()[0],sys.exc_info()[1],xmldoc) |
|
|
images=dom.getElementsByTagName('image') |
|
|
|
|
images=dom.xpath("//image") |
rc=[] |
rc=[] |
fnIds={} |
fnIds={} |
for image in images: |
for image in images: |
|
|
imagename=image.getElementsByTagName('imagename')[0] |
imagename=image.xpath('./imagename')[0] |
|
|
|
|
|
|
|
|
idnr=image.getElementsByTagName('idnr')[0] |
idnr=image.xpath('./idnr')[0] |
id=getText(idnr.childNodes) |
id=getText(idnr.childNodes) |
try: |
try: |
numberOfPages=image.getElementsByTagName('numberOfPages')[0] |
numberOfPages=image.xpath('./numberOfPages')[0] |
except: |
except: |
numberOfPages=None |
numberOfPages=None |
|
|
Line 2088 class ImageCollectionMD(ImageCollection,
|
Line 2112 class ImageCollectionMD(ImageCollection,
|
|
|
texts=getText(imagename.childNodes).split("\n") #mehrere bilder in return getrennter liste |
texts=getText(imagename.childNodes).split("\n") #mehrere bilder in return getrennter liste |
for text in texts: |
for text in texts: |
|
|
if not text=="": |
if not text=="": |
text=self.getImageByName(text,onlyName="yes") |
text=self.getImageByName(text,onlyName="yes") |
try: |
try: |
Line 2100 class ImageCollectionMD(ImageCollection,
|
Line 2123 class ImageCollectionMD(ImageCollection,
|
|
|
|
|
rc.sort() |
rc.sort() |
|
|
self.REQUEST.SESSION['filenames']=rc |
self.REQUEST.SESSION['filenames']=rc |
self.REQUEST.SESSION['filenamesIds']=fnIds |
self.REQUEST.SESSION['filenamesIds']=fnIds |
|
|