--- ECHO_content/VLPExtension.py 2008/08/05 16:50:56 1.72 +++ ECHO_content/VLPExtension.py 2008/08/05 18:26:15 1.73 @@ -2,16 +2,10 @@ This module contains extensions which where originally made for the VLP. """ from OFS.Cache import Cacheable -from Products.ECHO_content.ECHO_collection import * from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from OFS.Image import File -try: - from Products.zogiLib import zogiLib -except: - print "Zogilib not installed, VLP_resource will not work" - import xml.dom.minidom import urllib import xmlrpclib @@ -23,6 +17,13 @@ from types import * from Globals import package_home import transaction +from Products.ECHO_content.ECHO_collection import * +from vlp_xmlhelpers import * +try: + from Products.zogiLib import zogiLib +except: + print "Zogilib not installed, VLP_resource will not work" + def lemmatize(str): """takes a str and addes links the dictionary service""" @@ -52,13 +53,14 @@ def checkXMLfrag(str): xmltempl = """ %s""" + try: - dom=xml.dom.minidom.parseString(xmltempl%str) + dom=xml.dom.minidom.parseString(xmltempl%utf8ify(str)) return str except: str=str.replace("& ","& ") - dom=xml.dom.minidom.parseString(xmltempl%str) + dom=xml.dom.minidom.parseString(xmltempl%utf8ify(str)) return str @@ -246,6 +248,7 @@ class VLP_essay(Folder): pages = self.objectItems(['DTML Document','File']) pages.sort(sortFind) + #logging.debug("pageList=%s"%repr(pages)) return pages @@ -262,17 +265,24 @@ class VLP_essay(Folder): if pageObj is not None: txt = "" - data = pageObj.data - while data is not None: - txt += str(data) - if isinstance(data, str): - data = None - else: - data = data.next + if pageObj.meta_type == 'File': + data = pageObj.data + #logging.debug("data=%s txt=%s"%(repr(data),txt)) + while data is not None: + if isinstance(data, str): + txt += data + data = None + else: + txt += data.data + data = data.next + else: + # not a File object... perhaps its executable + txt += pageObj() + xml = checkXMLfrag(txt) - return xml + return unicodify(xml) def getPage(self,pagenum):