我有一个“auth-redirect”模块,它位于我所有页面布局文件的开头(1列,2列等)。这有助于确保在呈现任何页面之前,如果用户未经过正确的身份验证,则会重定向到登录页面。
我允许登录页面呈现的方式是在我的customer.xml文件中,我声明了以下内容:
<customer_account_login>
<remove name="auth-redirect"/>
...
</customer_account_login>
这非常有效。
但是我最近创建了另一个模块自定义模块,当我转到使用该模块的控制器并呈现模块布局的URL时,auth-redirect保留在页面中,因此我总是被重定向。
自定义模块布局如下所示:
<shipment_management_index>
<remove name="auth-redirect"/>
<reference name="content">
<block type="custom/vendor_shipment_info" template="custom/vendor/shipment/info.phtml" name="info"/>
</reference>
</shipment_management_index>
现在,我已经转到页面并使用Alan Storm的showLayout模块从?showLayout = page获取输出。您可以看到auth-redirect的元素位于页面中,位于正文下方,但顶部的auth-redirect仍在页面中。我错过了什么?
<layout><block name="formkey" type="core/template" template="core/formkey.phtml"/>
<block type="page/html" name="root" output="toHtml" template="page/1column.phtml">
<block type="page/html" name="auth-redirect" as="auth-redirect" template="page/html/auth-redirect.phtml" ignore="1"/>
<block type="page/html_head" name="head" as="head">
...
</block>
...
<remove name="auth-redirect"/>
<reference name="content">
<block type="custom/vendor_shipment_info" template="custom/vendor/shipment/info.phtml" name="info"/>
</reference>
</reference></layout>
答案 0 :(得分:3)
你的最后一段代码是否在同一个文件中?如果是这样,为什么不尝试评论/删除第一个
<block type="page/html" name="auth-redirect" as="auth-redirect" template="page/html/auth-redirect.phtml" ignore="1"/>
如果没有,如果要删除的“auth-redirect”块嵌套在“formkey”块中,则下面的代码可能会有效。
<reference name="formkey">
<action method="unsetChild"><name>auth-redirect</name></action>
</reference>