<div>hi, </div>
<div>I think you goes wrong way,All you have done is just like Christophe said:</div>
<div>&nbsp;</div>
<div>&quot;create an IMyFolder interface, implemented by MyFolder<br>as a subclass of Folder (nothing more), then to register an index.html for<br>IMyFolder.&quot;</div>
<div>&nbsp;</div>
<div>and maybe &quot;containerViews&quot; zcml directive will help you.</div>
<div>&nbsp;</div>
<div>however,if you stand on your way,try this:</div>
<div>&nbsp;</div>
<div>from zope.security.checker import CheckerPublic, Checker, defineChecker</div>
<div>@adapter(IDatabaseOpenedWithRootEvent)def RegisterLocalPage(event):</div>
<div>&nbsp;&nbsp;&nbsp; # security setting</div>
<div>&nbsp;&nbsp;&nbsp; required = {}</div>
<div>&nbsp;&nbsp;&nbsp; for n in ( &#39;browserDefault&#39;, &#39;__call__&#39;, &#39;publishTraverse&#39;):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required[n] = CheckerPublic</div>
<div>&nbsp;&nbsp;&nbsp; defineChecker(NewFolderIndex, Checker(required))</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; db, conn, root, root_folder = getInformationFromEvent(event)&nbsp;&nbsp;&nbsp; </div>
<div>&nbsp;&nbsp;&nbsp; for city in root_folder:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sm = root_folder[city].getSiteManager()&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sm.registerAdapter(NewFolderIndex, [IFolder, IMyLayer], IBrowserPage, &#39;index.html&#39;)</div>
<div>&nbsp;&nbsp;&nbsp; transaction.commit()&nbsp;&nbsp;&nbsp; conn.close()<br><br></div>
<div class="gmail_quote">On Jan 6, 2008 10:19 PM, nixon &lt;<a href="mailto:nxnth@yahoo.com.cn">nxnth@yahoo.com.cn</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><pre>Thank you, Christophe!<br><br>I write code according to your FAQ, but an error occurs.<br>My code is:
<br><br>class NewFolderIndex(BrowserPage):<br> #adapts(IFolder, IMyLayer)<br> <br> #__call__ = ViewPageTemplateFile(&#39;skin/test.pt&#39;)<br> def __call__(self):<br>  self.request.response.setHeader(&#39;Content-Type&#39;, &#39;text/plain&#39;)
<br>  return <a href="http://self.context.name/" target="_blank">self.context.name</a><br><br>@adapter(IDatabaseOpenedWithRootEvent)<br>def RegisterLocalPage(event):<br>    db, conn, root, root_folder = getInformationFromEvent(event)
<br>    for city in root_folder:<br>        sm = root_folder[city].getSiteManager()<br>        sm.registerAdapter(NewFolderIndex, [IFolder, IMyLayer], IBrowserPage, &#39;index.html&#39;)<br>    transaction.commit()<br>    
conn.close()<br><br>Zope starts up without any issue. But when I access the &#39;index.html&#39;, an error occurs:<br><br>Traceback (most recent call last):<br>  File &quot;D:\wp\Python24\Lib\site-packages\zope\publisher\publish.py&quot;, line 130, i
<br>n publish<br>    obj =
 request.traverse(obj)<br>  File &quot;D:\wp\Python24\Lib\site-packages\zope\publisher\browser.py&quot;, line 527, i<br>n traverse<br>    ob, add_steps = publication.getDefaultTraversal(self, ob)<br>  File &quot;D:\wp\Python24\Lib\site-packages\zope\app\publication\browser.py&quot;, line
<br>66, in getDefaultTraversal<br>    return ob.browserDefault(request)<br>ForbiddenAttribute: (&#39;browserDefault&#39;, &lt;mailnice.reglocalpage.NewFolderIndex obj<br>ect at 0x027F8BF0&gt;)<br><br>I dont know why. It seems the inherited 
BrowserPage.browserDefault is available.<br><br>Thank you!<br>R Nixon <br></pre>
<p>
<hr size="1">
<a href="http://cn.mail.yahoo.com/gc/index.html?entry=5&amp;souce=mail_mailletter_tagline" target="_blank">ÑÅ»¢ÓÊÏä´«µÝÐÂÄê×£¸££¬¸öÐԺؿ¨ËÍÇ×Åó£¡</a> 
<p></p><br>_______________________________________________<br>Zope3-users mailing list<br><a href="mailto:Zope3-users@zope.org">Zope3-users@zope.org</a><br><a href="http://mail.zope.org/mailman/listinfo/zope3-users" target="_blank">
http://mail.zope.org/mailman/listinfo/zope3-users</a><br><br></p></blockquote></div><br><br clear="all"><br>-- <br>cheers<br>best regards