3

Ploneには、Zope2に同梱されている退屈なZope クイックスタートページをなくす素晴らしいハックがあります。これは次のように変更されます。

ここに画像の説明を入力

これに:

ここに画像の説明を入力

関連するコードは次の場所にありますProducts/CMFPlone/browser/admin.zcml( https://github.com/plone/Products.CMFPlone/blob/master/Products/CMFPlone/browser/admin.zcml#L35 ):

  <browser:page
      for="OFS.interfaces.IApplication"
      name="plone-overview"
      class=".admin.Overview"
      permission="zope.Public"
      template="templates/plone-overview.pt"
      />

そして、それはなぜhttp://localhost:8080/plone-overviewplone-overviewテンプレートをレンダリングするのかを説明していますが、なぜ/どのようにアプリケーションルート、つまりhttp://localhost:8080同じテンプレートをレンダリングするのでしょうか?

4

1 に答える 1

5

同じ ZCML ファイルがAppTraverserアダプタを登録します。このアダプターは、トラバーサルをインターセプトするためにOFS.interfaces.IApplicationオブジェクトを適応させます。IRequest

IRequestアダプターpublishTraverse()メソッドでは、名前index_htmlがトラバースされると、アダプターは同じplone-overviewビューを返します。

def publishTraverse(self, request, name):
    if name == 'index_html':
        view = queryMultiAdapter((self.context, request),
                    Interface, 'plone-overview')
        if view is not None:
            return view
    return DefaultPublishTraverse.publishTraverse(self, request, name)

AppTraverserクラス定義を参照してください。

于 2013-05-27T23:32:34.113 に答える