Diff for /ECHO_content/ECHO_collection.py between versions 1.204 and 1.233

version 1.204, 2005/01/21 16:28:58 version 1.233, 2005/08/19 07:53:16
Line 1 Line 1
   
   
 """New version of the product started February, 8th. Without scientific classification, use content-type for further classification."""  """New version of the product started February, 8th. Without scientific classification, use content-type for further classification."""
 """Echo collection provides the classes for the ECHO content web-site.  """Echo collection provides the classes for the ECHO content web-site.
   
Line 39  from Globals import Persistent, package_ Line 41  from Globals import Persistent, package_
 from Acquisition import Implicit  from Acquisition import Implicit
   
 import urllib  import urllib
   import cgi
 import smtplib  import smtplib
 import time  import time
 from Ft.Xml.Domlette import NonvalidatingReader  from Ft.Xml.Domlette import NonvalidatingReader
Line 64  import xml.dom.minidom Line 67  import xml.dom.minidom
 import ECHO_helpers  import ECHO_helpers
 from ECHO_helpers import *  from ECHO_helpers import *
 from ECHO_language import *  from ECHO_language import *
   from ECHO_movie import *
   
 #regexp for extracting elements from xml  #regexp for extracting elements from xml
 patternTXT=r"<\s*txt.*?>(.*?)</txt>"  patternTXT=r"<\s*txt.*?>(.*?)</txt>"
Line 86  def setECHO_collectionInformation(self,t Line 89  def setECHO_collectionInformation(self,t
         self.credits=toList(credits)          self.credits=toList(credits)
         self.weight=weight          self.weight=weight
   
   class ECHO_locale(ZopePageTemplate):
       """localisierung"""
   
       meta_type="ECHO_locale"
   
       def __init__(self,id,lang,title,label,text=None,content_type=None):
           self.lang=lang
           self.title=title
           self.label=label
           if text:
               self.pt_edit(text, content_type)
           self.id=id
   
       manage_options = ZopePageTemplate.manage_options+(
           {'label':'Main Config','action':'change_ECHO_localeForm'},
           )
   
       def change_ECHO_localeForm(self):
           """change form"""
           pt=zptFile(self, 'zpt/ChangeECHO_localeForm.zpt')
           return pt()
       
       def change_ECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
           """change echo locale"""
           self.lang=lang
           self.title=title
           self.label=label
           if not text is None:
               self.pt_edit(text, content_type)
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
           
   def manage_addECHO_localeForm(self):
        """Form for adding"""
        pt=zptFile(self, 'zpt/AddECHO_localeForm.zpt')
        return pt()
   
   def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
       """add echo locale"""
   
       id="locale_"+lang
       
       self._setObject(id, ECHO_locale(id,lang,title,label,text,content_type))
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
   
                           
 class ECHO_copyright(Folder,ECHO_basis):  class ECHO_copyright(Folder,ECHO_basis):
     """Copyright informationen"""      """Copyright informationen"""
Line 153  class ECHO_layoutTemplate(ZopePageTempla Line 204  class ECHO_layoutTemplate(ZopePageTempla
   
         self.ZBindings_edit(self._default_bindings)          self.ZBindings_edit(self._default_bindings)
         if text is None:          if text is None:
             self._default_content_fn = os.path.join(package_home(globals()),              self._default_content_fn = os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%EchoType)
                                                'zpt/ECHO_%s_template_standard.zpt'%EchoType)  
             text = open(self._default_content_fn).read()              text = open(self._default_content_fn).read()
         self.pt_edit(text, content_type)          self.pt_edit(text, content_type)
   
Line 212  class ECHO_fullText(ZopePageTemplate,ECH Line 262  class ECHO_fullText(ZopePageTemplate,ECH
           
     def getPage(self,nr='1'):      def getPage(self,nr='1'):
         """get page n"""          """get page n"""
         dom=xml.dom.minidom.parseString(self())          #return self().encode('latin-1','ignore')
           dom=xml.dom.minidom.parseString(self().encode('utf-8','ignore'))
         pages=dom.getElementsByTagName('page')          pages=dom.getElementsByTagName('page')
                   
         return pages[int(nr)-1].toxml('utf-8')          return pages[int(nr)-1].toxml()
           
 # Product registration and Add support  # Product registration and Add support
 manage_addECHO_fullTextForm = PageTemplateFile(  manage_addECHO_fullTextForm = PageTemplateFile(
Line 262  class ECHO_resource(Folder,Persistent,EC Line 313  class ECHO_resource(Folder,Persistent,EC
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
     security.declareProtected('View','index_html')  
   
       
       
     security.declareProtected('View','createPDF')      security.declareProtected('View','createPDF')
     def createPDF(self,RESPONSE=None,local=None,dpi=150):      def createPDF(self,RESPONSE=None,local=None,dpi=150):
Line 561  class ECHO_resource(Folder,Persistent,EC Line 609  class ECHO_resource(Folder,Persistent,EC
                 startpage=self.createImageUrl()                  startpage=self.createImageUrl()
           
         params="startpage=%s"%startpage          params="startpage=%s"%startpage
         print 'http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))          #print 'http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))
                                                                                                                                     
         ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read()          ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read()
           
Line 655  class ECHO_resource(Folder,Persistent,EC Line 703  class ECHO_resource(Folder,Persistent,EC
   
           
   
           security.declarePublic('content_html')  
     def content_html(self):      def content_html(self):
         """template fuer content"""          """template fuer content"""
         return ECHO_basis.content_html(self,'resource')          return ECHO_basis.content_html(self,'resource')
Line 968  class ECHO_resource(Folder,Persistent,EC Line 1016  class ECHO_resource(Folder,Persistent,EC
   
   
     def getMDValue(self,fieldName,empty=None):      def getMDValue(self,fieldName,empty=None):
         if empty:          if not empty:
             return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType)              return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType)
                   
         else:          else:
Line 1065  class ECHO_resource(Folder,Persistent,EC Line 1113  class ECHO_resource(Folder,Persistent,EC
             if ret == "":              if ret == "":
                 return None                  return None
             else:              else:
               
                 return ret                  return ret
         except:          except:
             return None              return None
Line 1199  class ECHO_resource(Folder,Persistent,EC Line 1248  class ECHO_resource(Folder,Persistent,EC
         if not error=="": #Fehler beim Auslesen des Metafiles          if not error=="": #Fehler beim Auslesen des Metafiles
         return "ERROR:",error          return "ERROR:",error
           
       if not self.contentType:
           self.contentType=metadict['bib_type'].lower()
   
     if not (metadict['bib_type'].lower()==self.contentType.lower()):      if not (metadict['bib_type'].lower()==self.contentType.lower()):
         self.REQUEST.SESSION['contentStorage']=metadict['bib_type']          self.REQUEST.SESSION['contentStorage']=metadict['bib_type']
Line 1237  class ECHO_resource(Folder,Persistent,EC Line 1288  class ECHO_resource(Folder,Persistent,EC
             return None              return None
                   
                   
       security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         pdf=self.checkRDF(self.link)          pdf=self.checkRDF(self.link)
Line 1304  def manage_addECHO_resourceForm(self): Line 1356  def manage_addECHO_resourceForm(self):
   
   
   
 def manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None):  def manage_addECHO_resource(self,id,title,label,description="",responsible="",link="",metalink="",weight="",copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None):
     """addaresource"""      """addresource"""
   
     newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords)      newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords)
   
Line 1320  class ECHO_externalLink(Folder,ECHO_basi Line 1372  class ECHO_externalLink(Folder,ECHO_basi
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
     meta_type='ECHO_externalLink'      meta_type='ECHO_externalLink'
   
       security.declarePublic('content_html')
     def content_html(self):      def content_html(self):
         """template fuer content"""          """template fuer content"""
         return ECHO_basis.content_html(self,'externalLink')          return ECHO_basis.content_html(self,'externalLink')
Line 1366  class ECHO_externalLink(Folder,ECHO_basi Line 1418  class ECHO_externalLink(Folder,ECHO_basi
                           
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
         {'label':'Main Config','action':'ECHO_externalLink_config'},          {'label':'Main Config','action':'ECHO_externalLink_config'},
       {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
         )          )
   
                   
Line 1404  class ECHO_link(ECHO_externalLink): Line 1457  class ECHO_link(ECHO_externalLink):
         else:          else:
             return ECHO_basis.content_html(self,'collection')              return ECHO_basis.content_html(self,'collection')
           
       def index_html(self):
           """standard link"""
           if self.link:
            splitted=self.link.split("?")
            if len(splitted)>1:
               params=cgi.parse_qs(splitted[1])
   
               for x in params.keys():
                   if type(params[x]) is ListType:
                       params[x]=params[x][0]
           
   
            else:
               params={}
           
            params['backLink']=self.aq_parent.absolute_url()
            params['startLink']=splitted[0]+"?"+urllib.urlencode(params)
           
           
            return self.REQUEST.RESPONSE.redirect(splitted[0]+"?"+urllib.urlencode(params))
           else:
            return ""
   
 def manage_addECHO_linkForm(self):  def manage_addECHO_linkForm(self):
         """Form for external Links"""          """Form for external Links"""
         pt=zptFile(self, 'zpt/AddECHO_linkForm.zpt')          pt=zptFile(self, 'zpt/AddECHO_linkForm.zpt')
         return pt()          return pt()
   
   
 def manage_addECHO_link(self,id,title,label,description,contentType,responsible,link,weight,coords=None,credits=None,RESPONSE=None):  def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,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)
Line 1431  class ECHO_collection(Folder, Persistent Line 1507  class ECHO_collection(Folder, Persistent
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
   
       def localizeObjects(self):
           """localize all objects"""
           contents=self.ZopeFind(self,obj_metatypes=['ECHO_externalLink','ECHO_link','ECHO_mapText'])
   
           find=self.ZopeFind(self,obj_ids=('locale_en'))
           if not find:
           self.manage_addECHO_locale("en",'','')
           for content in contents:
               if content[1].meta_type in['ECHO_link','ECHO_externalLink']:
                   find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText'))
                   if find:
                       root=find[0][1]
   
                       locale=find[0][1].ZopeFind(find[0][1],obj_ids=('locale_en'))
                   else:
                       root=None
               else:
                   root=content[1]
                   locale=content[1].ZopeFind(content[1],obj_ids=('locale_en'))
               if root and not locale:
                   root.manage_addECHO_locale("en",'','')
               
           pt=zptFile(self, 'zpt/localizeObjects.zpt')
           return pt()
   
   
       def localize(self,REQUEST,RESPONSE):
           """localize"""
           for key in REQUEST.form.keys():
               splitted=key.split("!")
   
               if splitted[0]=="" or splitted[0]=="en" or splitted[0]=="title" or splitted[0]=="label":
                   if splitted[0]=="en":
                       setattr(self.locale_en,splitted[1],REQUEST.form[key])
                   else:
                       setattr(self,splitted[0],REQUEST.form[key])
               else:
                   obj=getattr(self,splitted[0])
   
                   if obj.meta_type=="ECHO_mapText":
                       if splitted[1]=="en":
                           obj.locale_en.pt_edit(REQUEST.form[key],None)
                       else:
                           obj.pt_edit(REQUEST.form[key],None)
                   else:
                       text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText'])
                       if splitted[1]=="en":
                           
                           text[0][1].locale_en.pt_edit(REQUEST.form[key],None)
                       else:
                           text[0][1].pt_edit(REQUEST.form[key],None)
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
   
     def getRDF(self,urn=None):      def getRDF(self,urn=None):
         """rdf of the collection"""          """rdf of the collection"""
                   
Line 1528  class ECHO_collection(Folder, Persistent Line 1659  class ECHO_collection(Folder, Persistent
         ret=""          ret=""
         argv=self.REQUEST.form          argv=self.REQUEST.form
                   
         resources=self.ZopeFind(self,obj_metatypes=['ECHO_pageTemplate','ECHO_resource','ECHO_collection','ECHO_link','ECHO_externalLink'])          resources=self.ZopeFind(self,obj_metatypes=['ECHO_pageTemplate','ECHO_movie','ECHO_resource','ECHO_collection','ECHO_link','ECHO_externalLink'])
         for resource in resources:          for resource in resources:
                         
             try:              try:
Line 1543  class ECHO_collection(Folder, Persistent Line 1674  class ECHO_collection(Folder, Persistent
         ret=""          ret=""
         argv=self.REQUEST.form          argv=self.REQUEST.form
                   
         resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])          resources=self.ZopeFind(self,obj_metatypes=['ECHO_pageTemplate','ECHO_movie','ECHO_resource','ECHO_collection','ECHO_link','ECHO_externalLink'])
         for resource in resources:          for resource in resources:
                         
             try:              try:
Line 1553  class ECHO_collection(Folder, Persistent Line 1684  class ECHO_collection(Folder, Persistent
                 pass                  pass
         return ret          return ret
                   
       def changeLabelsInCollection(self):
           """change all lables of a collection"""
           ret=""
           argv=self.REQUEST.form
           
           resources=self.ZopeFind(self,obj_metatypes=['ECHO_pageTemplate','ECHO_movie','ECHO_resource','ECHO_collection','ECHO_link','ECHO_externalLink'])
           for resource in resources:
              
               try:
                   ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                               resource[1].label=argv[resource[1].getId()][0:]
               except:
                   pass
           return ret
          
     def updateCollection(self,RESPONSE=None):      def updateCollection(self,RESPONSE=None):
         """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""          """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""
         files=os.listdir(self.path)          files=os.listdir(self.path)
Line 1765  class ECHO_collection(Folder, Persistent Line 1911  class ECHO_collection(Folder, Persistent
             manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","")              manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","")
         return ret          return ret
           
       security.declarePublic('getImageTag')
     def getImageTag(self):      def getImageTag(self):
         """GetTag"""          """GetTag"""
         try:          try:
Line 1772  class ECHO_collection(Folder, Persistent Line 1919  class ECHO_collection(Folder, Persistent
         except:          except:
             return ""              return ""
   
   
       def addMovie(self,id,title,label,description,contentType,responsible,link,thumbUrl,rawFile,lowresFile,metalink,weight,credits=None,coords=None,RESPONSE=None):
           """SSS"""
   
       #manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None)
       if not hasattr(self,id):
           try:
               manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,lowresFile,metalink,weight,credits=None,coords=None,RESPONSE=None)
               return "done"
           except:
               return None
       else:
           obj=getattr(self,id)
           obj.changeECHO_movie_main(metalink,link,rawFile,lowresFile,thumbUrl,title,label,description,contentType,weight=weight)
   
       return "changed"
   
     def addResource(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):      def addResource(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):
         """SSS"""          """SSS"""
         try:          try:
Line 1794  class ECHO_collection(Folder, Persistent Line 1958  class ECHO_collection(Folder, Persistent
         except:          except:
             return ""              return ""
                   
     def getCollectionTreeXML(self):      def getCollectionTreeXML(self,pwstr=None):
         """Tree as XML"""          """Tree as XML"""
   
     def addPassWd(str):      def addPassWd(str,pwstr=None):
         """adds a user/passwd to an url"""          """adds a user/passwd to an url"""
           if pwstr:
               txt2=re.sub(r"(http://)(.*?)","\g<1>%s@\g<2>"%pwstr,str)
           else:
         txt2=re.sub(r"(http://)(.*?)","\g<1>www:3333@\g<2>",str)          txt2=re.sub(r"(http://)(.*?)","\g<1>www:3333@\g<2>",str)
         return txt2          return txt2
   
         def getCollection(object,depth=0):          def getCollection(object,depth=0,pwstr=None):
             depth+=1              depth+=1
             collections=""              collections=""
             for entry in object.__dict__.keys():              for entry in object.__dict__.keys():
                 element=getattr(object,entry)                  element=getattr(object,entry)
                 try:                  try:
                     if element.meta_type in ["ECHO_collection","ECHO_group"]:                      if element.meta_type in ["ECHO_collection","ECHO_group"]:
                         collections+="<element name=\""+urllib.quote(element.title)+"\" url=\""+addPassWd(element.absolute_url())+"\">"                          collections+="<element name=\""+urllib.quote(element.title)+"\" url=\""+addPassWd(element.absolute_url(),pwstr=pwstr)+"\">"
                         collections+=getCollection(element,depth)+"</element>\n"                          collections+=getCollection(element,depth)+"</element>\n"
                 except:                  except:
                     """nothing"""                      """nothing"""
             return collections              return collections
                   
     ret="""<?xml version="1.0" encoding="utf-8" ?>"""      ret="""<?xml version="1.0" encoding="utf-8" ?>"""
         return ret+"<collection>"+getCollection(self)+"</collection>"          return ret+"<collection>"+getCollection(self,pwstr=pwstr)+"</collection>"
           
     def createAllJSAreas(self):      def createAllJSAreas(self):
         """create area calls for JavaScript"""          """create area calls for JavaScript"""
Line 1865  class ECHO_collection(Folder, Persistent Line 2032  class ECHO_collection(Folder, Persistent
     return ECHO_rerenderLinksMD(self,obj,types)      return ECHO_rerenderLinksMD(self,obj,types)
   
           
     def __init__(self,id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle,secondaryLink,imageTag="",bgcolour=""):      def __init__(self,id,title,label,description="",contentType="",responsible="",credits="",weight="",sortfield="",coords=[],secondaryLinkTitle="",secondaryLink="",imageTag="",bgcolour=""):
   
         self.id = id          self.id = id
         """Festlegen der ID"""          """Festlegen der ID"""
Line 1889  class ECHO_collection(Folder, Persistent Line 2056  class ECHO_collection(Folder, Persistent
         {'label':'Main Config','action':'ECHO_collection_config'},          {'label':'Main Config','action':'ECHO_collection_config'},
         {'label':'Change Labels','action':'changeLabels'},          {'label':'Change Labels','action':'changeLabels'},
         {'label':'Change Titles','action':'changeTitles'},          {'label':'Change Titles','action':'changeTitles'},
       {'label':'Localize','action':'localizeObjects'},
     {'label':'Change Weights','action':'changeWeights'},      {'label':'Change Weights','action':'changeWeights'},
         {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},          {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},
         {'label':'Graphic Coords','action':'ECHO_graphicEntry'},          {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
Line 1924  class ECHO_collection(Folder, Persistent Line 2092  class ECHO_collection(Folder, Persistent
   
                   
     security.declarePublic('changeECHO_collection')           security.declarePublic('changeECHO_collection')     
     def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None):      def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix=""):
         """Aenderung der Properties"""          """Aenderung der Properties"""
   
         self.secondaryLink=secondaryLink          self.secondaryLink=secondaryLink
Line 1933  class ECHO_collection(Folder, Persistent Line 2101  class ECHO_collection(Folder, Persistent
     self.bgcolour=bgcolour      self.bgcolour=bgcolour
         self.location=location          self.location=location
     self.isAlwaysClickable=isAlwaysClickable      self.isAlwaysClickable=isAlwaysClickable
       self.prefix=prefix[0:]
       self.suffix=suffix[0:]
                           
         setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)          setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)
                   
Line 1957  class ECHO_collection(Folder, Persistent Line 2127  class ECHO_collection(Folder, Persistent
         pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')          pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')
         return pt()          return pt()
   
     security.declareProtected('View','index_html')  
           
       security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         if self.ZCacheable_isCachingEnabled():          if self.ZCacheable_isCachingEnabled():
Line 1976  class ECHO_collection(Folder, Persistent Line 2146  class ECHO_collection(Folder, Persistent
         elif hasattr(self,'collection_index_template'):          elif hasattr(self,'collection_index_template'):
             ret=self.collection_index_template()                  ret=self.collection_index_template()    
         elif hasattr(self,'main_index_template'):          elif hasattr(self,'main_index_template'):
             ret=self.main_index_template()      
               ret=self.main_index_template.__of__(self)(self.main_template)
         else:          else:
         pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt')          pt=zptFile(self, 'zpt/ECHO_main_index_template_standard.zpt')
         pt.content_type="text/html"          pt.content_type="text/html"
Line 1985  class ECHO_collection(Folder, Persistent Line 2156  class ECHO_collection(Folder, Persistent
     self.ZCacheable_set(ret)      self.ZCacheable_set(ret)
         return ret          return ret
   
       security.declarePublic('content_html')
     def content_html(self,**argv):      def content_html(self,**argv):
         """template fuer content"""          """template fuer content"""
     #print "NN",argv      #print "NN",argv
Line 2025  class ECHO_collection(Folder, Persistent Line 2197  class ECHO_collection(Folder, Persistent
         """javascript"""          """javascript"""
         return sendFile(self, 'js/hl_add.js', 'text/plain')          return sendFile(self, 'js/hl_add.js', 'text/plain')
   
     def getAllMapAreas(self):      def getAllMapAreas(self,mapColTypes=['ECHO_collection','ECHO_resource','ECHO_link','ECHO_externalLink']):
         """Give list of coordinates"""          """Give list of coordinates"""
         mapColTypes=['ECHO_collection','ECHO_resource']          
         areas=[]          areas=[]
         for entry in self.getSubCols(self,subColTypes=mapColTypes):          for entry in self.getSubCols(subColTypes=mapColTypes):
             object=entry              object=entry
         areas.extend(object.getMapAreas())          areas.extend(object.getMapAreas())
         return areas          return areas
Line 2056  def manage_addECHO_collectionForm(self): Line 2228  def manage_addECHO_collectionForm(self):
         return pt()          return pt()
   
   
 def manage_addECHO_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""):  def manage_addECHO_collection(self,id,title,label,description="",contentType="",responsible="",weight=0,sortfield="weight",coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""):
     """add a echo collection"""      """add a echo collection"""
           
   
Line 2164  class ECHO_group(ECHO_collection): Line 2336  class ECHO_group(ECHO_collection):
                 except:                  except:
                     return "ECHO_groups"                      return "ECHO_groups"
   
           security.declarePublic('content_html')
     def content_html(self):      def content_html(self):
         """template fuer content"""          """template fuer content"""
         return ECHO_basis.content_html(self,'group')          return ECHO_basis.content_html(self,'group')
Line 2345  class ECHO_root(Folder,Persistent,Implic Line 2518  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
   
       def printer(self,txt):
           print txt
           print txt[2]
           print txt[2].getImageTag()
           print "HO"
           return txt[2].getImageTag()
   
       def printer2(self,txt):
           print txt
   
   
       def item2(self,txt):
           return txt[2]
   
       def setLanguage(self,lang):
           """Set language cookie"""
           self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")
   
       def switchLanguage(self):
           """Set language cookie"""
           if self.getLanguage()=="en":
               lang="de"
           else:
               lang="en"
           
           self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")
           self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])
       def getLanguage(self):
           """get language cookie"""
           lang= self.REQUEST.cookies.get('lang_exhibition','de')
           if lang == '':
               lang="de"
           return lang
       
     def getContentOverviewTemplate(self):      def getContentOverviewTemplate(self):
     """produces overview template with macro"""      """produces overview template with macro"""
     pt = zptObjectOrFile(self, 'content_overview_template')      pt = zptObjectOrFile(self, 'content_overview_template')
     return pt      return pt
   
       def mapstyle_css(self):
           """send mapstyle.css"""
           sendFile(self, 'html/ECHO_mapstyle.css', 'text/css')
   
   
     ###Cdli adds -> have to be removed      ###Cdli adds -> have to be removed
     def getTablet(self,item):      def getTablet(self,item):
         #print "getTablet"          #print "getTablet"
Line 2370  class ECHO_root(Folder,Persistent,Implic Line 2582  class ECHO_root(Folder,Persistent,Implic
   
     def checkResource(self,id):      def checkResource(self,id):
         """checks if a resource is in the tree, gives back none or list of resources"""          """checks if a resource is in the tree, gives back none or list of resources"""
           if not id:
           id=""
           splitted=id.split("/")
           id=splitted[len(splitted)-1]
         if hasattr(self,"_v_checkResource") and self._v_checkResource.has_key(id): #existiert ein cache und id ist bereits drin?          if hasattr(self,"_v_checkResource") and self._v_checkResource.has_key(id): #existiert ein cache und id ist bereits drin?
                 return self._v_checkResource[id]                  return self._v_checkResource[id]
   
Line 2591  class ECHO_root(Folder,Persistent,Implic Line 2807  class ECHO_root(Folder,Persistent,Implic
         except:          except:
             return ""              return ""
           
       security.declarePublic('getImageTag')
     def getImageTag(self):      def getImageTag(self):
         """needed by main_template"""          """needed by main_template"""
         return ""          return ""
           
     secondaryLink="" #needed by main_template      secondaryLink="" #needed by main_template
     secondaryLinkTitle="" #needed by main_template      secondaryLinkTitle="" #needed by main_template
           
Line 2601  class ECHO_root(Folder,Persistent,Implic Line 2819  class ECHO_root(Folder,Persistent,Implic
     """hack"""      """hack"""
     return "#dddddd"      return "#dddddd"
   
       security.declareProtected('View','contentTypeSelector_HTML')
     def contentTypeSelector_HTML(self,selected=None):      def contentTypeSelector_HTML(self,selected=None):
         """give type selector"""          """give type selector"""
         if not selected:          if not selected:
Line 2643  class ECHO_root(Folder,Persistent,Implic Line 2862  class ECHO_root(Folder,Persistent,Implic
          """nothing"""           """nothing"""
      return retStr       return retStr
   
     def renderingTypeSelector_HTML(self,selected=None):  
          """give type selector"""  
      if not selected:  
          retStr="<option selected>\n"  
      else:  
          retStr="<option>\n"  
            
      try: # erste version renderingTypes exists  
          for renderingType in self.ZopeFind(self.renderingTypes,obj_metatypes=["ECHO_renderingType"]):  
              if selected and (renderingType[0]==selected):  
                  retStr+="""<option selected value="%s">%s\n"""%(renderingType[0],renderingType[0])  
              else:                  
                  retStr+="""<option value="%s">%s\n"""%(renderingType[0],renderingType[0])  
      except:  
          """nothing"""  
      return retStr  
   
   
     def copyrightTypeSelector_HTML(self, object=None, selected=None,first=None):      def copyrightTypeSelector_HTML(self, object=None, selected=None,first=None):
          """give type selector"""           """give type selector"""
Line 2871  class ECHO_root(Folder,Persistent,Implic Line 3073  class ECHO_root(Folder,Persistent,Implic
                           
                 if self.checkRef(ref):                  if self.checkRef(ref):
             if pn:              if pn:
                 link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&p="+pn)                  link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&page="+pn)
             else:              else:
                 link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref)                  link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref)
   
Line 2918  class ECHO_root(Folder,Persistent,Implic Line 3120  class ECHO_root(Folder,Persistent,Implic
   
             #str= dom.toxml('utf-8')              #str= dom.toxml('utf-8')
         buf = cStringIO.StringIO()          buf = cStringIO.StringIO()
         PrettyPrint(dom, stream=buf, encoding='UTF-8')          PrettyPrint(dom, stream=buf)
         str = buf.getvalue()          str = buf.getvalue()
         buf.close()          buf.close()
         #str=PrettyPrint(dom.documentElement,encoding='UTF-8')          #str=PrettyPrint(dom.documentElement,encoding='UTF-8')
         #print link.toxml('utf-8')          #print link.toxml('utf-8')
         #print type(str)          #print type(str)
         retStr=regexpPage.search(str)          retStr=regexpPage.search(str)
           
         try: # hack warum fehtl manchmal page??          try: # hack warum fehtl manchmal page??
             return retStr.group(1)              return retStr.group(1)
         except:          except:
Line 2941  class ECHO_root(Folder,Persistent,Implic Line 3144  class ECHO_root(Folder,Persistent,Implic
         except:          except:
             """nothing"""              """nothing"""
                           
         dbs={'vl_technology':'','vl_people':'','vl_sites':''}          dbs={'vl_technology':'','vl_people':" AND complete='yes'",'vl_sites':''}
         res=None          res=None
         for db in dbs.keys():          for db in dbs.keys():
             res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))              res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))
Line 2954  class ECHO_root(Folder,Persistent,Implic Line 3157  class ECHO_root(Folder,Persistent,Implic
   
         return libpq.PgQuoteString(string)          return libpq.PgQuoteString(string)
                   
       security.declareProtected('View','getPartners')
     def getPartners(self):      def getPartners(self):
         """Get list of Partners. Presently only from a subfolder partners"""          """Get list of Partners. Presently only from a subfolder partners"""
     if hasattr(self,'partners'):                  if hasattr(self,'partners'):            

Removed from v.1.204  
changed lines
  Added in v.1.233


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>