That same ZCML file registers a AppTraverser
adapter; this adapter adapts the OFS.interfaces.IApplication
object to IRequest
to intercept traversal.
In the IRequest
adapter publishTraverse()
method, when the index_html
name is traversed over, the adapter returns the same plone-overview
view:
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)
See the AppTraverser
class definition.