Magento Custom Extension To show my account links - magento

I have created a Magento extension, to integrate OST Ticket into magenta. This is working great however the only issue I'm having is to display the "My Account" Links.
On my account dashboard I have the following links:
Account Dashboard
Support Tickets
Account Information
Address Book
My Orders
Billing Agreements
Recurring Profiles
My Product Reviews
My Wishlist
My Applications
Newsletter Subscriptions
My Downloadable Products
When I include the block into my extension using the following code:
<support_index_index>
<reference name="content">
<block type="support/list" name="support_list" template="support/list.phtml" />
</reference>
<reference name="left">
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="support/navigation.phtml">
<action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
<action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
<action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
</block>
<remove name="tags_popular"/>
<remove name="leftnav" />
</reference>
</support_index_index>
I only get 4 links:
Account Dashboard
Support Tickets
Account Information
Address Book
Can someone please explain to me why this would happen and how I can get around this?

Take a look # /app/design/frontend/default/default/layout/review.xml
<customer_account>
<!-- Mage_Review -->
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="review"><name>reviews</name><path>review/customer</path><label>My Product Reviews</label></action>
</reference>
</customer_account>
See Magento - How to add/remove links on my account navigation?

Related

Changing the columns on Magento's "Contact Us" page

Is there a simple way to change the column settings on Magento's "Contact Us" page through the CMS? It seems that by default the "Contact Us" page is not listed among the other CMS pages. Do I need to override the settings via XML?
Thank you for your help!
First, determine the "layout handle" for the contact page. For u i guess it is "contacts_index_index"
U can find this in file app/design/frontend/your-package/your-theme/layout/local.xml or contact.xml
<contacts_index_index translate="label">
<label>Contact Us Form</label>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
<action method="setHeaderTitle" translate="title" module="contacts"><title>Contact Us</title></action>
</reference>
<reference name="content">
<block type="core/template" name="contactForm" template="contacts/form.phtml"/>
</reference>
</contacts_index_index>
Change the setTemplate call to reference your template
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
<action method="setHeaderTitle" translate="title" module="contacts"><title>Contact Us</title></action>
</reference>
Alternately, add the handle reference to your local.xml file. The local.xml file is applied last, so whatever goes in there "wins"
<layout>
<contacts_index_index>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
</contacts_index_index>
</layout>
This is what worked for me:
Go to CMS > Manage Pages interface in the admin panel.
Create the contact page here and insert the following code:
<!– CONTACT FORM –>
{{block type="core/template" name="contactForm" form_action="/contacts/index/post" template="contacts/form.phtml"}}
<!– END OF CONTACT FORM –>
Click on the Design tab and change the layout to 1 column.

Magento get recently viewed product Customer wise

i want to get recently viewed product customer wise so that if customer can come to the website next time and login than, he can find last seen products
please help me
thank you in Advance
I am sure that Magento already does this in the block Mage_Reports_Block_Product_Viewed.
This can be added to the home page and uses the template app\design\frontend\base\default\template\reports\home_product_viewed.phtml
The xml layout for the home page "cms_index_index" and the account homepage "customer_account_index" should look something like:
<cms_index_index>
<reference name="content">
<block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new">
<action method="addPriceBlockType">
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</block>
</reference>
</cms_index_index>
<customer_account_index>
<reference name="my.account.wrapper">
<block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new">
<action method="addPriceBlockType">
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</block>
</reference>
</customer_account_index>

Magento - local.xml not recognising customer_logged_out

I am using Magento 1.7.0.2 and would like to show some links only when the customer is logged out.
If I add the below code to local.xml nothing happens (I am logged out):
<customer_logged_out>
<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>Test</label><url helper="customer/getLoginUrl"/><title>Test</title><prepare/><urlParams/><position>100</position></action>
</reference>
<remove name="reorder"></remove>
</customer_logged_out>
However as soon as I remove the customer_logged_out tags the link gets displayed (for everyone) ie:
<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>Test</label><url helper="customer/getLoginUrl"/><title>Test</title><prepare/><urlParams/><position>100</position></action>
</reference>
<remove name="reorder"></remove>
If I try to use customer_logged_in tags nothing gets displayed also.
Why are these logged_in/logged_out tags not working in local.xml?

How can I display only My account link in top links in magento?

I have displayed all links in footer and i want to display My account link only in header
So how can i do that.
Should i use static block from cms pages or block from xml file?
Can anyone please help me
Thanks in advance
Another way to add "My Account" link
goto app/design/frontend/default(or your theme package)/(theme folder)/page/html/header.phtml.
In this file you can add your custom 'li' tag and can put a link for "My Account" as Controller moves it to My Account PAGE.
One more way here for you :)
Open theme/layout/customer.xml file and then modify the section that shows customer links on all pages, to include a link home and also a link to other customer service pages that you have deemed necessary, e.g. ‘returns’ (if you get a lot of those enquiries...).
<default>
<!-- Mage_Customer -->
<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>Home</label><url></url><title>Home</title><prepare>true</prepare><urlParams/><position>5</position></action>
<action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>94</position></action>
<action method="addLink" translate="label title" module="customer"><label>Deliveries</label><url>deliveries</url><title>Deliveries</title><prepare>true</prepare><urlParams/><position>95</position></action>
<action method="addLink" translate="label title" module="customer"><label>Returns</label><url>returns</url><title>Returns</title><prepare>true</prepare><urlParams/><position>96</position></action>
<action method="addLink" translate="label title" module="customer"><label>Contact Us</label><url>contacts</url><title>Contact Us</title><prepare>true</prepare><urlParams/><position>97</position></action>
</reference>
</default>
Enjoy :)
Option 1:
The layout files are used to display links in the top.links block. You can remove them in the relevant xml files, and leave everything else as is, e.g. in checkout.xml you have something like:
<default>
<reference name="top.links">
<block type="checkout/links" name="checkout_cart_link">
<action method="addCartLink"></action>
<action method="addCheckoutLink"></action>
</block>
</reference>
</default>
If you remove the block then they would no longer show these two links in the top.links block.
Option 2:
The alternative is, as you say, to create a cms block and include this in your header instead. To include a cms block in a template file you can use
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('toplinksblock')->toHtml() ?>
Or if you want to use the layout system use this in the layout file:
<reference name="footer">
<block type="cms/block" name="sample_links">
<action method="setBlockId"><block_id>sample_links</block_id></action>
</block>
</reference>
then this in the template file:
<?php echo $this->getChildHtml('sample_links') ?>
Option 3:
Or just edit top.links.phtml.

how to add shopping cart url under top links in magento through customer.xml

I tried a lot to add shopping cart url in magento
please show me how to add shopping cart url under top links in magento through customer.xml
i did in this way.
<default>
<!-- Mage_Customer -->
<reference name="top.links">
<action method="addLink" translate="label title" module="checkout"><label>Shopping Cart</label><url helper="checkout/getShoppingCartUrl"/><title>Shopping Cart</title><prepare/><urlParams/><position>10</position></action>
</reference>
</default>
Try this:
<default>
<reference name="top.links">
<block type="checkout/links" name="checkout_cart_link">
<action method="addCheckoutLink"></action>
</block>
</reference>
</default>

Resources