Magento My Account Layout XML Problem
- by Remy
Hi there,
I'm having issues getting the customer.xml layout file to work properly for the customer's "my account" pages.
The navigation links and the previously ordered items that are usually on the left hand side of the page won't show up on the page, but if I change the reference name to "content" in the xml file, it shows up (except it's obviously then on the right hand side). I've checked the template it's referencing (2columns-left.phtml), and the getChildHtml('left') is there in the correct position.
The block that's causing the problem:
<customer_account>
<!-- Mage_Customer -->
<reference name="root">
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
</reference>
<reference name="left">
<action method="unsetChild"><name>catalog.navigation.all</name></action>
<action method="unsetChild"><name>callout.sendcard</name></action>
<action method="unsetChild"><name>callout.specialorder</name></action>
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/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>
<block type="sales/reorder_sidebar" name="sale.reorder.sidebar" as="reorder" template="sales/reorder/sidebar.phtml"/>
<remove name="tags_popular"/>
</reference>
</customer_account>
This was basically copied straight over from another one of our sites where this works 100%. I've tried everything I can think of (changing the name of the reference in both the template and the layout xml, for example) to no avail. The templates that the layout is referencing are obviously working because they do show up when put into the "content" area.
This installation of magento is version 1.3.1.1.
I appreciate any advice you have to give me...
*Update: I tried changing the reference to "global_messages", and it doesn't show there either. It only seems to work in the "content" section.*
Update 2: These are the results of using the "showLayout=page" query string on the page when used with Alan Storm's very handy debugging module (which you'll find in his answer below).
<?xml version="1.0"?>
<layout><block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">
<block type="page/html_head" name="head" as="head">
<action method="addJs">
<script>prototype/prototype.js</script>
</action>
<action method="addJs">
<script>prototype/validation.js</script>
</action>
<action method="addJs">
<script>paypoint/validation.js</script>
</action>
<action method="addJs">
<script>scriptaculous/builder.js</script>
</action>
<action method="addJs">
<script>scriptaculous/effects.js</script>
</action>
<action method="addJs">
<script>scriptaculous/dragdrop.js</script>
</action>
<action method="addJs">
<script>scriptaculous/controls.js</script>
</action>
<action method="addJs">
<script>scriptaculous/slider.js</script>
</action>
<action method="addJs">
<script>varien/js.js</script>
</action>
<action method="addJs">
<script>varien/form.js</script>
</action>
<action method="addJs">
<script>varien/menu.js</script>
</action>
<action method="addJs">
<script>mage/translate.js</script>
</action>
<action method="addJs">
<script>mage/cookies.js</script>
</action>
<action method="addCss">
<stylesheet>css/reset.css</stylesheet>
</action>
<action method="addCss">
<stylesheet>css/boxes.css</stylesheet>
</action>
<action method="addCss">
<stylesheet>css/clears.css</stylesheet>
</action>
<action method="addCss">
<stylesheet>css/menu.css</stylesheet>
</action>
<action method="addCss">
<stylesheet>css/calendar-blue.css</stylesheet>
</action>
<action method="addCss">
<stylesheet>css/styles.css</stylesheet>
</action>
<action method="addItem">
<type>skin_css</type>
<name>css/iestyles.css</name>
<params/>
<if>IE</if>
</action>
<action method="addItem">
<type>skin_css</type>
<name>css/ie7.css</name>
<params/>
<if>IE 7</if>
</action>
<action method="addItem">
<type>skin_css</type>
<name>css/ie7minus.css</name>
<params/>
<if>lt IE 7</if>
</action>
<action method="addItem">
<type>js</type>
<name>lib/ds-sleight.js</name>
<params/>
<if>lt IE 7</if>
</action>
<action method="addItem">
<type>js</type>
<name>varien/iehover-fix.js</name>
<params/>
<if>lt IE 7</if>
</action>
<action method="addCss">
<stylesheet>css/print.css</stylesheet>
<params>media="print"</params>
</action>
</block>
<block type="page/html_header" name="header" as="header">
<block type="page/template_links" name="top.links" as="topLinks"/>
<block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/>
<block type="core/template" name="top.nav" template="page/html/top.nav.phtml"/>
</block>
<block type="core/messages" name="global_messages" as="global_messages"/>
<block type="core/messages" name="messages" as="messages"/>
<block type="core/text_list" name="content" as="content"/>
<block type="core/text_list" name="right" as="right"/>
<block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml"/>
<block type="core/text_list" name="before_body_end" as="before_body_end"/>
</block>
<block type="core/profiler" output="toHtml"/>
<reference name="top.links">
<action method="addLink" translate="label title" module="customer">
<label>My Account</label>
<url helper="customer/getAccountUrl"/>
<title>My Account</title>
<prepare/>
<urlParams/>
<position>10</position>
</action>
</reference>
<reference name="root">
<action method="setTemplate">
<template>page/2columns-left.phtml</template>
</action>
</reference>
<reference name="top.menu">
<block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="catalog" ifconfig="catalog/seo/site_map">
<label>Site Map</label>
<url helper="catalog/map/getCategoryUrl"/>
<title>Site Map</title>
</action>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="catalogsearch" ifconfig="catalog/seo/search_terms">
<label>Search Terms</label>
<url helper="catalogsearch/getSearchTermUrl"/>
<title>Search Terms</title>
</action>
<action method="addLink" translate="label title" module="catalogsearch">
<label>Advanced Search</label>
<url helper="catalogsearch/getAdvancedSearchUrl"/>
<title>Advanced Search</title>
</action>
</reference>
<reference name="top.links">
<block type="checkout/links" name="checkout_cart_link">
<action method="addCartLink"/>
<action method="addCheckoutLink"/>
</block>
</reference>
<reference name="footer">
<block type="cms/block" name="cms_footer_links" before="footer_links">
<action method="setBlockId">
<block_id>footer_links</block_id>
</action>
</block>
</reference>
<reference name="left">
<block type="tag/popular" name="tags_popular" template="tag/popular.phtm" ignore="1">
<action method="setTemplate">
<template>tag/popular.phtml</template>
</action>
</block>
</reference>
<reference name="left">
</reference>
<reference name="before_body_end">
<block type="googleanalytics/ga" name="google_analytics" as="google_analytics"/>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="contacts" ifconfig="contacts/contacts/enabled">
<label>Contact Us</label>
<url>contact-us</url>
<title>Contact Us</title>
<prepare>true</prepare>
</action>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="rss" ifconfig="rss/config/active">
<label>RSS</label>
<url>rss</url>
<title>RSS testing</title>
<prepare>true</prepare>
<urlParams/>
<position/>
<li/>
<a>class="link-feed"</a>
</action>
</reference>
<reference name="wishlist_sidebar">
<action method="addPriceBlockType">
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</reference>
<reference name="cart_sidebar">
<action method="addItemRender">
<type>bundle</type>
<block>bundle/checkout_cart_item_renderer</block>
<template>checkout/cart/sidebar/default.phtml</template>
</action>
</reference>
<reference name="root">
<action method="setTemplate">
<template>page/2columns-left.phtml</template>
</action>
</reference>
<reference name="left">
<action method="unsetChild">
<name>catalog.navigation.all</name>
</action>
<action method="unsetChild">
<name>callout.sendcard</name>
</action>
<action method="unsetChild">
<name>callout.specialorder</name>
</action>
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/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>
<block type="sales/reorder_sidebar" name="sale.reorder.sidebar" as="reorder" template="sales/reorder/sidebar.phtml"/>
<remove name="tags_popular"/>
</reference>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="sales">
<name>orders</name>
<path>sales/order/history/</path>
<label>My Orders</label>
</action>
</reference>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="tag">
<name>tags</name>
<path>tag/customer/</path>
<label>My Tags</label>
</action>
</reference>
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="newsletter">
<name>newsletter</name>
<path>newsletter/manage/</path>
<label>Newsletter Subscriptions</label>
</action>
</reference>
<reference name="cart_sidebar">
<action method="addItemRender">
<type>bundle</type>
<block>bundle/checkout_cart_item_renderer</block>
<template>checkout/cart/sidebar/default.phtml</template>
</action>
</reference>
<update handle="customer_account"/>
<reference name="content">
<block type="customer/account_dashboard" name="customer_account_dashboard" template="customer/account/dashboard.phtml">
<block type="customer/account_dashboard_hello" name="customer_account_dashboard_hello" as="hello" template="customer/account/dashboard/hello.phtml"/>
<block type="core/template" name="customer_account_dashboard_top" as="top"/>
<block type="customer/account_dashboard_info" name="customer_account_dashboard_info" as="info" template="customer/account/dashboard/info.phtml"/>
<block type="customer/account_dashboard_newsletter" name="customer_account_dashboard_newsletter" as="newsletter" template="customer/account/dashboard/newsletter.phtml"/>
<block type="customer/account_dashboard_address" name="customer_account_dashboard_address" as="address" template="customer/account/dashboard/address.phtml"/>
<block type="core/template" name="customer_account_dashboard_info1" as="info1"/>
<block type="core/template" name="customer_account_dashboard_info2" as="info2"/>
</block>
</reference>
<reference name="right">
<action method="unsetChild">
<name>catalog_compare_sidebar</name>
</action>
</reference>
<reference name="customer_account_dashboard">
<action method="unsetChild">
<name>top</name>
</action>
<block type="sales/order_recent" name="customer_account_dashboard_top" as="top" template="sales/order/recent.phtml"/>
</reference>
<reference name="right">
<action method="unsetChild">
<name>right.poll</name>
</action>
</reference>
<reference name="customer_account_dashboard">
<action method="unsetChild">
<name>customer_account_dashboard_info2</name>
</action>
<block type="tag/customer_recent" name="customer_account_dashboard_info2" as="info2" template="tag/customer/recent.phtml"/>
</reference>
<reference name="right">
<action method="unsetChild">
<name>right.newsletter</name>
</action>
</reference>
<reference name="top.links">
<action method="addLink" translate="label title" module="customer">
<label>Log Out</label>
<url helper="customer/getLogoutUrl"/>
<title>Log Out</title>
<prepare/>
<urlParams/>
<position>100</position>
</action>
</reference></layout>