version 1.285, 2007/02/20 15:55:21
|
version 1.298, 2008/11/20 10:45:15
|
Line 42 from Products.ZCatalog.CatalogPathAwaren
|
Line 42 from Products.ZCatalog.CatalogPathAwaren
|
from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon |
from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon |
|
|
import urllib |
import urllib |
|
import urllib2 |
import cgi |
import cgi |
import smtplib |
import smtplib |
import time |
import time |
Line 198 class ECHO_locale(ZopePageTemplate):
|
Line 199 class ECHO_locale(ZopePageTemplate):
|
self.lang=lang |
self.lang=lang |
self.title=title |
self.title=title |
self.label=label |
self.label=label |
if text: |
# default content |
|
if not text: |
|
text = open(self._default_content_fn).read() |
|
content_type = 'text/html' |
self.pt_edit(text, content_type) |
self.pt_edit(text, content_type) |
self.id=id |
self.id=id |
|
|
Line 217 class ECHO_locale(ZopePageTemplate):
|
Line 221 class ECHO_locale(ZopePageTemplate):
|
self.title=title |
self.title=title |
self.label=label |
self.label=label |
if not text is None: |
if not text is None: |
|
if content_type is None: |
|
content_type = self.content_type |
self.pt_edit(text, content_type) |
self.pt_edit(text, content_type) |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
Line 306 class ECHO_layoutTemplate(ZopePageTempla
|
Line 312 class ECHO_layoutTemplate(ZopePageTempla
|
if text is None: |
if text is None: |
self._default_content_fn = os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%EchoType) |
self._default_content_fn = os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%EchoType) |
text = open(self._default_content_fn).read() |
text = open(self._default_content_fn).read() |
|
if content_type is None: |
|
content_type = self.content_type |
self.pt_edit(text, content_type) |
self.pt_edit(text, content_type) |
|
|
|
|
Line 421 class ECHO_resource(CatalogAware,Folder,
|
Line 429 class ECHO_resource(CatalogAware,Folder,
|
|
|
getSubCols = ECHO_helpers.getSubCols |
getSubCols = ECHO_helpers.getSubCols |
|
|
|
def index_meta(self,RESPONSE=None): |
|
""" gibt das im metalink gespeicher xml-file zurueck""" |
|
url = self.metalink |
|
txt="" |
|
logging.debug("ml:%s"%url) |
|
try: |
|
page = urllib.urlopen(url); |
|
if RESPONSE: |
|
RESPONSE.setHeader("Content-Type","text/xml") |
|
|
|
txt = page.read(); |
|
except: |
|
logging.error("Cannot read metadata of: %s"%self.getId()) |
|
|
|
return txt |
|
|
def reindex(self): |
def reindex(self): |
"""generate fields for indexing and reindex""" |
"""generate fields for indexing and reindex""" |
|
|
Line 1176 class ECHO_resource(CatalogAware,Folder,
|
Line 1200 class ECHO_resource(CatalogAware,Folder,
|
only if metalink is set, otherwise it gives false |
only if metalink is set, otherwise it gives false |
""" |
""" |
|
|
|
texterUrl="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Texter?fn=/" |
|
|
vl,msg=self.checkValidityOfMetaLink() |
vl,msg=self.checkValidityOfMetaLink() |
|
|
|
if not vl: #ungueltiger link, versuche neuen |
|
newStr=re.match(".*/mpiwg/online/(.*)",self.metalink) # suche pfad hinter /mpiwg/online |
|
oldLink=self.metalink |
|
|
|
if newStr: |
|
self.metalink=texterUrl+newStr.group(1) |
|
vl,msg=self.checkValidityOfMetaLink() |
|
else: |
|
logging.error("change Viewer XX(mew Metadatafile) %s"%self.metalink) |
|
vl=False |
|
|
|
if not vl: # geht immer noch nicht, dann setzte wieder zurueck |
|
self.metalink=oldLink |
|
|
|
logging.info("change Viewer (mew Metadatafile) %s"%self.metalink) |
|
|
if vl: |
if vl: |
self.newViewer=newViewer |
self.newViewer=newViewer |
return vl,msg |
return vl,msg |
Line 1360 class ECHO_resource(CatalogAware,Folder,
|
Line 1402 class ECHO_resource(CatalogAware,Folder,
|
|
|
ret= self.metaDataHash.get(fieldNameTest,empty) |
ret= self.metaDataHash.get(fieldNameTest,empty) |
|
|
if type(ret) is StringType: |
return unicodify(ret) |
return ret.decode('utf-8') |
|
else: |
|
return ret |
|
|
|
getFieldValue=getMDValue #depricated |
getFieldValue=getMDValue #depricated |
|
|
Line 1424 class ECHO_resource(CatalogAware,Folder,
|
Line 1463 class ECHO_resource(CatalogAware,Folder,
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
return writeMetadata(self.metalink,self.metaDataHash) |
return writeMetadata(self.metalink,self.metaDataHash) |
|
|
|
def getMetaDataLink(self): |
|
"""get link to the meta data""" |
|
return self.metalink |
|
|
def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): |
def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): |
"""Aenderung der Properties""" |
"""Aenderung der Properties""" |
|
|
Line 1808 class ECHO_externalLink(Folder,ECHO_basi
|
Line 1851 class ECHO_externalLink(Folder,ECHO_basi
|
""" set linkType """ |
""" set linkType """ |
self.linkType = type |
self.linkType = type |
|
|
|
def checkLink(self): |
|
""" returns tuple (isWorking,Error) """ |
|
try: |
|
urllib2.urlopen(self.link) |
|
return (True, '') |
|
except urllib2.HTTPError, e: |
|
return (False, e.code) |
|
except urllib2.URLError, e: |
|
return (False, str(e.reason)) |
|
except: |
|
return (False, 'unknown Error') |
|
|
|
|
manage_options = ( |
manage_options = ( |
{'label':'Main Config','action':'ECHO_externalLink_config'}, |
{'label':'Main Config','action':'ECHO_externalLink_config'}, |
Line 1979 def manage_addECHO_linkForm(self):
|
Line 2034 def manage_addECHO_linkForm(self):
|
return pt() |
return pt() |
|
|
|
|
def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,RESPONSE=None): |
def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,linkType="external",RESPONSE=None): |
"""Add an external Link""" |
"""Add an external Link""" |
|
|
newObj=ECHO_link(id,link,title,label,description,contentType,responsible,credits,weight,coords) |
newObj=ECHO_link(id,link,title,label,description,contentType,responsible,credits,weight,coords,linkType) |
|
|
self._setObject(id,newObj) |
self._setObject(id,newObj) |
|
|
Line 2133 class ECHO_collection(CatalogAware, Fold
|
Line 2188 class ECHO_collection(CatalogAware, Fold
|
|
|
if obj.meta_type=="ECHO_mapText": |
if obj.meta_type=="ECHO_mapText": |
if splitted[1]=="en": |
if splitted[1]=="en": |
obj.locale_en.pt_edit(REQUEST.form[key],None) |
obj.locale_en.pt_edit(REQUEST.form[key],obj.locale_en.content_type) |
else: |
else: |
obj.pt_edit(REQUEST.form[key],None) |
obj.pt_edit(REQUEST.form[key],obj.content_type) |
else: |
else: |
text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText']) |
text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText']) |
if splitted[1]=="en": |
if splitted[1]=="en": |
|
|
text[0][1].locale_en.pt_edit(REQUEST.form[key],None) |
text[0][1].locale_en.pt_edit(REQUEST.form[key],text[0][1].locale_en.content_type) |
else: |
else: |
text[0][1].pt_edit(REQUEST.form[key],None) |
text[0][1].pt_edit(REQUEST.form[key],text[0][1].content_type) |
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
Line 2556 class ECHO_collection(CatalogAware, Fold
|
Line 2611 class ECHO_collection(CatalogAware, Fold
|
manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None) |
manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None) |
return "done" |
return "done" |
except: |
except: |
|
logging.error("ECHOcollection: (AddResource): %s %s"%sys.exc_info()[0:2]) |
return None |
return None |
|
|
|
def addResourceAndCreateLabelAndTitle(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None): |
|
"""SSS""" |
|
ret = self.addResource(id,title,label,description,contentType,responsible,link,metalink,weight,credits,coords,RESPONSE) |
|
if ret is None: |
|
return None |
|
|
|
try: |
|
server2=getattr(self,id) |
|
server2.copyIndex_meta2echo_resource() |
|
server2.generate_label() |
|
server2.generate_title() |
|
except: |
|
logging.error("An Error occured adding the resource A\n %s %s"%sys.exc_info()[0:2]) |
|
return None |
|
return "done" |
def getSecondaryLink(self): |
def getSecondaryLink(self): |
"""secondary link""" |
"""secondary link""" |
try: |
try: |
Line 2599 class ECHO_collection(CatalogAware, Fold
|
Line 2670 class ECHO_collection(CatalogAware, Fold
|
ret="""<?xml version="1.0" encoding="utf-8" ?>""" |
ret="""<?xml version="1.0" encoding="utf-8" ?>""" |
return ret+"<collection>"+getCollection(self,pwstr=pwstr)+"</collection>" |
return ret+"<collection>"+getCollection(self,pwstr=pwstr)+"</collection>" |
|
|
def createAllJSAreas(self): |
def createAllJSAreas(self,mapColTypes=None): |
"""create area calls for JavaScript""" |
"""create area calls for JavaScript""" |
areas = self.getAllMapAreas() |
areas = self.getAllMapAreas(mapColTypes=mapColTypes) |
return self.createJSAreas(areas) |
return self.createJSAreas(areas) |
|
|
|
|
Line 2826 class ECHO_collection(CatalogAware, Fold
|
Line 2897 class ECHO_collection(CatalogAware, Fold
|
"""javascript""" |
"""javascript""" |
return sendFile(self, 'js/hl_add.js', 'text/plain') |
return sendFile(self, 'js/hl_add.js', 'text/plain') |
|
|
def getAllMapAreas(self,mapColTypes=['ECHO_collection','ECHO_resource','ECHO_link','ECHO_externalLink']): |
def getAllMapAreas(self,mapColTypes=None): |
"""Give list of coordinates""" |
"""Give list of coordinates""" |
|
if mapColTypes is None: |
|
mapColTypes=['ECHO_collection','ECHO_resource','ECHO_link','ECHO_externalLink'] |
|
|
areas=[] |
areas=[] |
for entry in self.getSubCols(subColTypes=mapColTypes): |
for entry in self.getSubCols(subColTypes=mapColTypes): |
Line 3166 class ECHO_root(Folder,Persistent,Implic
|
Line 3239 class ECHO_root(Folder,Persistent,Implic
|
) |
) |
|
|
|
|
|
def getECHORootURL(self): |
|
return self.absolute_url() |
|
|
|
def getECHORoot(self): |
|
return self |
|
|
def copySearchFields(self,RESPONSE=None): |
def copySearchFields(self,RESPONSE=None): |
"""copys < metadatafields to the object""" |
"""copys < metadatafields to the object""" |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
Line 3478 class ECHO_root(Folder,Persistent,Implic
|
Line 3557 class ECHO_root(Folder,Persistent,Implic
|
"""ret attribute if existing""" |
"""ret attribute if existing""" |
try: |
try: |
|
|
return getattr(found,field).decode('ascii','ignore') |
return getattr(found,field)#.decode('utf-8','ignore') |
except: |
except: |
|
logging.error("can't: decode: %s"%repr(field)) |
|
logging.error(" %s %s"%(sys.exc_info()[0],sys.exc_info()[1])) |
return "" |
return "" |
|
|
security.declarePublic('getImageTag') |
security.declarePublic('getImageTag') |
Line 3716 class ECHO_root(Folder,Persistent,Implic
|
Line 3797 class ECHO_root(Folder,Persistent,Implic
|
|
|
def formatAscii(self,str,url=None): |
def formatAscii(self,str,url=None): |
"""ersetze ascii umbrueche durch <br>""" |
"""ersetze ascii umbrueche durch <br>""" |
#url=None |
|
|
if not str: |
|
return "" |
|
|
if url: |
if url: |
|
|
retStr="" |
retStr="" |
Line 3728 class ECHO_root(Folder,Persistent,Implic
|
Line 3812 class ECHO_root(Folder,Persistent,Implic
|
retStr+="""<a href="%s">%s</a><br/>"""%(strUrl,word) |
retStr+="""<a href="%s">%s</a><br/>"""%(strUrl,word) |
str=retStr |
str=retStr |
if str: |
if str: |
return re.sub(r"[\n]","<br/>",str) |
str = re.sub(r"[\n]","<br/>",str) |
|
return unicodify(str) |
else: |
else: |
return "" |
return u"" |
|
|
link2html=vlp_xmlhelpers.link2html |
link2html=vlp_xmlhelpers.link2html |
related2html=vlp_xmlhelpers.related2html |
related2html=vlp_xmlhelpers.related2html |
Line 3867 class ECHO_root(Folder,Persistent,Implic
|
Line 3952 class ECHO_root(Folder,Persistent,Implic
|
self.REQUEST.RESPONSE.setHeader("Content-Type", "text/xml") |
self.REQUEST.RESPONSE.setHeader("Content-Type", "text/xml") |
self.REQUEST.RESPONSE.write(ret) |
self.REQUEST.RESPONSE.write(ret) |
|
|
|
def getCollectionsXML(self,viewerType=None,filter=None): |
|
"""gebe collections aus""" |
|
ret="""<?xml version="1.0" ?> |
|
<index>""" |
|
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_collection','ECHO_group'],search_sub=1): |
|
|
|
echo_url=resource[1].absolute_url() |
|
|
|
ret+="""\n<collection echoLink="%s"/>"""%urllib.quote(echo_url,safe='/:?') |
|
ret +="""\n</index>""" |
|
|
|
self.REQUEST.RESPONSE.setHeader("Content-Type", "text/xml") |
|
self.REQUEST.RESPONSE.write(ret) |
|
|
def getFullTextsXML(self,viewerType=None,filter=None): |
def getFullTextsXML(self,viewerType=None,filter=None): |
"""gebe all ressourcen aus""" |
"""gebe all ressourcen aus""" |
ret="""<?xml version="1.0" ?> |
ret="""<?xml version="1.0" ?> |
Line 4101 class ECHO_linkList(ZopePageTemplate,ECH
|
Line 4200 class ECHO_linkList(ZopePageTemplate,ECH
|
self.ZBindings_edit(self._default_bindings) |
self.ZBindings_edit(self._default_bindings) |
if text is None: |
if text is None: |
text = '' |
text = '' |
|
if content_type is None: |
|
content_type = self.content_type |
self.pt_edit(text, contentType) |
self.pt_edit(text, contentType) |
|
|
|
|