ZCML File
configure.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    i18n_domain="zope"
    >
<interface
    interface=".interfaces.IZPTPage"
    type="zope.app.content.interfaces.IContentType"
    />
<class
    class=".zptpage.ZPTPage"
    >
<factory
    id="zope.app.content.ZPTPage"
    title="ZPT Page"
    description="A simple, content-based Page Template"
    />
<require
    permission="zope.View"
    attributes="__call__ macros"
    />
<require
    permission="zope.ManageContent"
    set_attributes="source expand evaluateInlineCode content_type"
    interface=".interfaces.IZPTPage"
    />
<require
    permission="zope.View"
    interface=".interfaces.IRenderZPTPage"
    />
</class>
<adapter
    factory=".zptpage.ZPTFactory"
    provides="zope.filerepresentation.interfaces.IFileFactory"
    for="zope.app.folder.interfaces.IFolder"
    permission="zope.ManageContent"
    name=".pt"
    />
<adapter
    factory=".zptpage.ZPTReadFile"
    provides="zope.filerepresentation.interfaces.IReadFile"
    for=".interfaces.IZPTPage"
    permission="zope.ManageContent"
    />
<adapter
    factory=".zptpage.ZPTWriteFile"
    provides="zope.filerepresentation.interfaces.IWriteFile"
    for=".interfaces.IZPTPage"
    permission="zope.ManageContent"
    />
<adapter
    factory=".zptpage.Sized"
    provides="zope.size.interfaces.ISized"
    for=".interfaces.IZPTPage"
    permission="zope.ManageContent"
    trusted="y"
    />
<include
    package=".browser"
    />
</configure>