Diff for /ECHO_content/ECHO_helpers.py between versions 1.32 and 1.38

version 1.32, 2004/12/10 19:33:09 version 1.38, 2005/02/03 11:34:00
Line 4  import socket Line 4  import socket
 import urllib  import urllib
 import string  import string
 import xml.dom.minidom  import xml.dom.minidom
 from types import *  import types
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from Globals import package_home  from Globals import package_home
Line 37  class ECHO_basis: Line 37  class ECHO_basis:
         """showrdf"""          """showrdf"""
             self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')              self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
         ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n"""          ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n"""
         ret+=self.getRDF(urn="echo:colllectionroot")+"\n"  
           ret+=self.getRDF(urn="echo:collectionroot")+"\n"
   
   
         ret+="""</RDF:RDF>"""          ret+="""</RDF:RDF>"""
             return ret               return ret 
Line 95  class ECHO_basis: Line 97  class ECHO_basis:
                   
     def getTitle(self):      def getTitle(self):
     """title"""      """title"""
       return self.decode(self.title)
     try:      try:
         return self.title.encode('utf-8','ignore')           return self.title.encode('utf-8','ignore') 
     except:      except:
Line 103  class ECHO_basis: Line 106  class ECHO_basis:
           
     def getLabel(self):      def getLabel(self):
     """title"""      """title"""
   
       return self.decode(self.label)
     try:      try:
         return self.label.encode('utf-8','ignore')           return self.label.encode('utf-8','ignore') 
     except:      except:
Line 310  class ECHO_basis: Line 315  class ECHO_basis:
   
 def toList(field):  def toList(field):
     """Einzelfeld in Liste umwandeln"""      """Einzelfeld in Liste umwandeln"""
     if type(field)==StringType:      if type(field)==types.StringType:
         return [field]          return [field]
     else:      else:
         return field          return field
Line 386  def checkOnlyOneInGroup(object): Line 391  def checkOnlyOneInGroup(object):
 def getSubCols(self,sortfield="weight",subColTypes= displayTypes,sortFieldMD=None):  def getSubCols(self,sortfield="weight",subColTypes= displayTypes,sortFieldMD=None):
   
     def sortfnc(sortfield,x,y):      def sortfnc(sortfield,x,y):
           try:
         xa=x[1].getMDValue(sortfield)          xa=x[1].getMDValue(sortfield)
           except:
               xa=""
           try:
         ya=y[1].getMDValue(sortfield)          ya=y[1].getMDValue(sortfield)
         print xa,ya          except:
               ya=""
           #print xa,ya
         return cmp(xa,ya)          return cmp(xa,ya)
           
     sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))      sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))
Line 407  def getSubCols(self,sortfield="weight",s Line 418  def getSubCols(self,sortfield="weight",s
             """nothing"""              """nothing"""
                           
         tmplist=[]          tmplist=[]
   
         for x in ids:          for x in ids:
             if hasattr(x,sortfield):              if hasattr(x,sortfield):
                 try:                  try:
                   tmp=int(getattr(x,sortfield))
                     x=int(x)  
                 except:                  except:
                     """nothing"""  
                 tmp=getattr(x,sortfield)                  tmp=getattr(x,sortfield)
                   
             else:              else:
                 tmp=10000000                  tmp=10000000
               
             tmplist.append((tmp,x))              tmplist.append((tmp,x))
   
     if not sortFieldMD:      if not sortFieldMD:
Line 580  def checkDiffs(self,metadict): Line 592  def checkDiffs(self,metadict):
         return diffs          return diffs
           
   
 def zptFile(self, path):  def zptFile(self, path, orphaned=False):
     """returns a page template file from the product"""      """returns a page template file from the product"""
       if orphaned:
       # unusual case
       pt=PageTemplateFile(os.path.join(package_home(globals()), path))
       else:
     pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self)
     return pt      return pt
   
   
 def sendFile(self, filename, type):  def findObjectPath(startobject, filename):
     """sends an object or a local file (in the product) as response"""      """returns the object with the name filename starting at startobject"""
       if startobject is None:
       return None
     paths = filename.split('/')      paths = filename.split('/')
     object = self      object = startobject
     # look for an object called filename  
     for path in paths:      for path in paths:
         if hasattr(object, path):          if hasattr(object, path):
         object = getattr(object, path)          object = getattr(object, path)
     else:      else:
         object = None          object = None
         break          break
       return object
   
   
   def zptObjectOrFile(self, filename, localdir='zpt', orphaned=False):
       """returns a page template instance or a file from the product"""
       # look for an object called path
       pt = findObjectPath(self, filename)
       # the object should also not be a python function
       if (pt is None) or isinstance(pt, types.FunctionType):
       # get a ZPT file
       pt = zptFile(self, localdir+'/'+filename, orphaned=orphaned)
       return pt
   
   
   def sendFile(self, filename, type):
       """sends an object or a local file (in the product) as response"""
       # look for an object called filename
       object = findObjectPath(self, filename)
     if object:      if object:
     # if the object exists then send it      # if the object exists then send it
     return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)      return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)

Removed from v.1.32  
changed lines
  Added in v.1.38


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