Ricky Sharma
Ricky Sharma

Reputation: 1919

how to add another HTML element in top.links after list element? NOT adding link

How can i add another element after <li>

So i can get this tree structure <ul><li><span><a>Logout</a></span></li></ul>

Currently my rendered html is looking like this. I want to have span element to do bit more with logout. I have tried a lot but no luck. Please help. Thank you

<ul class="links">
      <li class="first last">
         <a href="http://www.abc.com/index.php/customer/account/logout/" title="Log Out" class="logout-link">Logout</a>
      </li>
</ul>

layout to top.links is

<customer_logged_in>
<reference name="account.links">
    <action method="addLink" translate="label title" module="customer">
        <label>Logout</label>
        <url helper="customer/getLogoutUrl"/>
        <title>Log Out</title>
        <prepare/>
        <urlParams/>
        <position>2</position>
        <liParams></liParams>
        <aParams>class="logout-link"</aParams>
    </action>
    <action method="removeLinkByUrl">
        <url helper="customer/getRegisterUrl" />
    </action>
</reference>

If i am changing the links.phtml then change will apply for all the links or else i need to put if else in there but i needed it only for logout. so what is the best way to do that?

Is this achievable using addLinks method?

Upvotes: 1

Views: 2113

Answers (2)

zitix
zitix

Reputation: 820

You can create your own template (a copy of links.phtml) and apply it only for Top Links. Do it like this in your theme's local.xml:

<default>
    <reference name="top.links">

        <action method="setTemplate">
            <template>page/template/my_links.phtml</template>
        </action>

    </reference>
<default>

Then copy page/template/links.phtml and rename it to page/template/my_links.phtml and do whatever you need inside that new template file. It will be only used to render Top Links, not for any other links

Upvotes: 0

Axel
Axel

Reputation: 10772

You can do this using the beforeText and afterText parameters, like this:

<action method="addLink" translate="label title" module="customer">
    <label>Logout</label>
    <url helper="customer/getLogoutUrl"/>
    <title>Log Out</title>
    <prepare/>
    <urlParams/>
    <position>2</position>
    <liParams></liParams>
    <aParams>class="logout-link"</aParams>
    <beforeText><![CDATA[<span>]]></beforeText>
    <afterText><![CDATA[</span>]]></afterText>
</action>  

Which will modify your link to look something like this:

<li class="first last">
   <span><a href="http://www.abc.com/index.php/customer/account/logout/" title="Log Out" class="logout-link">Logout</a></span>
</li>

Upvotes: 3

Related Questions