ZCML File
configure.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:browser="http://namespaces.zope.org/browser"
    i18n_domain="zope"
    >
<browser:page
    class=".zptpage.ZPTPageEval"
    for="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.View"
    name="index.html"
    attribute="index"
    />
<browser:page
    class="zope.app.zptpage.zptpage.ZPTSourceView"
    for="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.ManageContent"
    name="source.html"
    attribute="__call__"
    />
<browser:addMenuItem
    title="ZPT Page"
    description="A simple, content-based Page Template"
    permission="zope.ManageContent"
    class="zope.app.zptpage.ZPTPage"
    view="zope.app.zptpage.ZPTPage"
    />
<browser:addform
    name="zope.app.zptpage.ZPTPage"
    schema="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.ManageContent"
    label="Add a ZPT Page"
    content_factory="zope.app.zptpage.ZPTPage"
    />
<browser:page
    class=".zptpage.EditForm"
    for="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.ManageContent"
    name="edit.html"
    menu="zmi_views"
    title="Edit"
    />
<browser:editform
    name="inlineCode.html"
    schema="zope.app.zptpage.interfaces.IZPTPage"
    for="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.ManageContent"
    template="inlinecode.pt"
    label="Inline Code"
    menu="zmi_views"
    title="Inline Code"
    fields="evaluateInlineCode"
    />
<browser:icon
    name="zmi_icon"
    for="zope.app.zptpage.interfaces.IZPTPage"
    file="zpt.gif"
    />
<browser:page
    for="zope.app.zptpage.interfaces.IZPTPage"
    permission="zope.ManageContent"
    name="preview.html"
    template="preview.pt"
    menu="zmi_views"
    title="Preview"
    />
</configure>