Magento - 如何判断我是否在 "My Account" 页面上?

Magento - How can I tell if I'm on a "My Account" page?

我想在我的 Magento 网站的页面顶部添加一些内容,但前提是客户位于 "My Account" 部分。我会将它添加到 /app/design/frontend/xxxx/xxxx/template/page/html/header.phtml。如何检测客户是否在 "My Account" 部分?

我发现了一些行不通的方法,最接近的是 Mage::app()->getFrontController()->getRequest()->getRouteName(),它无法提供可靠的方法来检查我是否在 "My Account"部分。

这些页面在XML中都有<update handle="customer_account" />,请问有什么办法可以得到当前页面的句柄吗?

试试这个:

在布局页面中

<customer_account_index translate="label">
    <label>Custom Page</label>
        <reference name="header">
        <block type="page/header" name="header">
            <action method="setTemplate"><template>your_custom_header_template_path/yourcustomheader.phtml</template></action>
        </block>
    </reference>
    <!-- Mage_Customer -->
    <update handle="customer_account"/>
</customer_account_index>

参考链接:

http://www.atwix.com/magento/how-to-change-the-header-of-magento-cms-page/

http://istockphp.com/magento/adding-custom-page-to-the-customer-account-dashboard/

magento 的做法是编辑您的 local.xml 文件。

你应该像这样使用 customer_account_index 句柄:

<customer_account_index>
  <reference name="header">
    <block type="core/template" name="new_customer_data" template="page/html/customer.phtml"/>
  </reference>
</customer_account_index>

使用您想要的数据创建 page/html/customer.phtml

并在 template/page/html/header.phtml 中写入 <?php echo $this->getChildHtml('new_customer_data') ?>

另一种方式是:

<?php $action = Mage::app()->getFrontController()->getAction();
echo $action->getFullActionName('_');
if($action->getFullActionName('_')=="customer_account_index")
{

}?>