[Zope] How To Convert Files To Page Templates?
Chris Withers
chris at simplistix.co.uk
Wed Nov 8 03:16:21 EST 2006
Nancy Donnelly wrote:
> That helped a lot! I yahoo'd (can't google any more since they've sold out to the interests gathering our personal data for Homeland Security) "put_factory" and got this code snippet:
>
> if ext == 'dtml':
> from OFS.DTMLDocument import DTMLDocument
>
> return DTMLDocument( '', __name__=name )
>
> So...how would I rewrite that to change it into a page template?
Here's a more complete PUT_factory that I use:
from Products.PythonScripts.PythonScript import PythonScript
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from OFS.DTMLDocument import DTMLDocument
from OFS.Image import Image
from OFS.Image import File
def PUT_factory( self, name, typ, body ):
# Gimme a PageTemplate or a PythonScript, but never DTML!
if typ=='text/x-python' or (body and body[0]=='#') or
name.endswith('.py'):
ob = PythonScript( name )
elif typ.startswith('text') or name.endswith('.pt'):
ob = ZopePageTemplate(name, body, content_type='text/html')
elif typ.startswith('image/'):
ob = Image(name, '', body, content_type=typ)
else:
ob = File(name, '', body, content_type=typ)
return ob
hth,
Chris
--
Simplistix - Content Management, Zope & Python Consulting
- http://www.simplistix.co.uk
More information about the Zope
mailing list