0

我正在为 magento 中的供应商创建一个模块。我想在供应商登录链接top.links.

如何添加链接?

另外,谁能告诉我像 <customer_logged_out><customer_logged_in>in这样的标签的含义magento/app/design/frontend/base/default/layout/customer.xml

因为我用过<supplier_logged_in>并且<supplier_logged_out>

magento/app/design/frontend/default/default/layout/supplier.xml它不工作。

这是我文件中的示例代码

<supplier_logged_in>
    <reference name="top.links">
        <action method="addLink" translate="label title" module="supplier"><label>Log 11Out</label><url helper="customer/getLogoutUrl"/><title>Log Out</title><prepare/><urlParams/><position>100</position></action>
    </reference>
</supplier_logged_in>

还有任何<customer_logged_in>文件参考以使其正常工作吗?

4

1 回答 1

1

以下是如何在顶部链接中添加自定义链接,更多信息可以在这里找到http://www.classylama.com/development/magento-development/editing-magentos-top-links-the-better-way

<reference name="top.links">
                    <!-- Add custom links. Pretty self-explanatory.
                    Dig into app/code/core/Mage/Page/Block/Template/Links.php for more info -->
                    <action method="addLink" translate="label title">
                        <label>About Us</label>
                        <url>about</url>  <!-- can use full url also -->
                        <title>About Us</title>
                        <prepare>true</prepare> <!-- set true if adding base url param -->
                        <urlParams helper="core/url/getHomeUrl"/> <!-- base url - thanks @Russ! -->
                        <!-- there are a few param you can send to do different things in <urlParams> 
                                 dig into app/code/core/Mage/Core/Model/Url.php, around line 803 -->                   

                        <!-- below adds #add-fragment to the end of your url -->
                        <!-- <urlParams><_fragment>add-fragment</_fragment></urlParams> -->

                        <!-- below adds ?add-query to the end of your url -->
                        <!-- <urlParams><_query>add-fragment</_query></urlParams> -->

                        <!-- below gives you a new session id (i think...)-->
                        <!-- <urlParams><_nosid>true</_nosid></urlParams> -->

                        <!-- below replaces double quotes, single quotes, greater than, and less than signs 
                                 to their respective url escaped replacements (%22, %27, %3E, %3C) -->
                        <!-- <urlParams><_escape>i'm-a-blog-url</_escape></urlParams> -->

                        <position>1</position>
                        <liParams/>
                        <aParams>class="top-link-about-us"</aParams>
                        <beforeText></beforeText>
                        <afterText></afterText>
                    </action>
    </reference>

您需要在<default>节点或内部添加上面的代码<customer_logged_out><customer_logged_in>(当客户在您的商店中登录或注销时,Magento 使用这两个句柄添加功能)。

//app/core/Mage/Core/Model/Layout/Update.php.
class Mage_Customer_Model_Observer
{
    public function beforeLoadLayout($observer)
    {
        $loggedIn = Mage::getSingleton('customer/session')->isLoggedIn();

        $observer->getEvent()->getLayout()->getUpdate()
           ->addHandle('customer_logged_'.($loggedIn?'in':'out'));
    }
}

要在您的扩展中使用<supplier_logged_in>(如果需要),您首先需要在您的 Magento 自定义扩展中添加自定义布局句柄。要开始挖掘它,我推荐以下文章:

http://magebase.com/magento-tutorials/creating-custom-layout-handles/

http://www.classylama.com/magento/add-custom-layout-handles-eg-parent-categories

于 2012-11-07T21:18:29.603 回答