Hesabım Düzen XML Sorunu Magento

2 Cevap php

Ben müşterinin "hesabım" sayfaları için düzgün çalışması için Customer.xml düzeni dosyası alma sorunları yaşıyorum.

Navigasyon bağlantıları ve sayfanın sol tarafında genellikle önce sipariş öğeleri sayfada gösterilmez, ama ben xml dosyasında "içerik" için başvuru adını değiştirmek eğer 'dışında, bu (gösterir Açıkçası o sağ tarafta). Ben (2columns-left.phtml) başvuran var şablonunu kontrol ettik ve ('sol') getChildHtml doğru konumda bulunmaktadır.

Soruna neden bloğu:

<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>

Bu temelde, bu% 100 çalışıyor, bizim siteler başka birinden düz üzerinden kopyalandı. Ben boşuna (örneğin, şablon ve düzeni xml hem de referans adını değiştirerek) aklınıza gelebilecek her şeyi denedim. "Içerik" alanına koyduğunuzda onlar kadar gösteriyor, çünkü düzen başvuran şablonları açıkça çalışıyoruz.

Magento Bu yükleme sürümü 1.3.1.1 olduğunu.

Bana vermek zorunda herhangi bir tavsiye takdir ...

* Güncelleme: I "global_messages" için başvuru değiştirerek denedim, ve bu da orada görünmüyor. Sadece "içerik" bölümünde çalışmak gibi görünüyor. *

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>

2 Cevap

İlk şeyler. Eğer Magento uygulama önbelleği temizlendi ettik emin olun. Tüm düzen XML Magento tarafından önbelleğe, bu yüzden yeni bir dosya bırakarak herhangi bir değişiklik tetiklemek için yeterli değildir.

Sol taraftaki sütunda işleme değil gibi geliyor. İşte bunun için birkaç olası nedeni var

  1. Sizin kök şablon iki sütun sol düzeni dışında bir set ediliyor

  2. Bir etiketi yerde bu sol sütunu Zap oluyor düzen içine enjekte ediliyor

  3. Onu düzgün bir hale getirmek için gereken alt blokları yok böylece "sol" blok geçersiz ediliyor

Böylece, adım 1 bu üç anlamaya etmektir. Tüm php / phtml dosyalarındaki bazı keyfi ama fark metni (i iki

biri , vb gibi bir şey doğru eğilimi) bu yüzden dosyaların {hangi söyleyebilirim [(0)]} yüklenen.

Bir şablon hata ayıklama ayarı da mevcuttur

System->Configuration->Developer->Debug->Template Path Hints

hangi benzer bir şey yapar. Bunu kullanmak istiyorsanız (varsayılan üzerinde ayarlanamaz) bir özel yapılandırma kapsamına detaya gerekir

Bunlardan birini yaparken doğrudan soruna işaret olmaz, onlar (umarım) bireysel nedenleri ekarte izin verir.

Düzenleri ile ilgili akılda tutulması gereken önemli bir şey var. Bu XML dosyalarının isimleri keyfi vardır. Onlar yol düzenleri çalışma all düzen XML dev bir XML dosya birleştirilebilir edilir. Sonra, her istek için, bu büyük XML dosyası bir sayfa isteği var "işler" ne bağlı olarak azalır. Bir kolu gibi bir şeydir veya . Diğer bir deyişle, diğer düzen dosyaları herhangi bir şey Customer.xml içinde not sadece şeyler, ödeme sayfasında size sorunlara neden olabilir.

Sizinle çalışıyoruz Magento sitesi düzeni Magento herhangi bir sayfa isteği ile arar kolları değiştirecek geçersiz olan bir denetleyici ya da iki, olması da mümkündür.

Varlık noktası, orada bu neden olabilir bir takım şeyler var, ve biz Magneto iç yapısına içinde gözetleme gerekir. Geliştirme ortamında bu modülü yükleyin (ben üzerinde çalışıyorum deneysel bir hata ayıklama bir şey)

http://alanstorm.com/2005/projects/Layoutviewer.tar.gz

Eğer o kadar var ve çalışırken, aşağıdaki sorgu dizesi ile mağazada bir sayfayı yüklemek

http://magento.example.com/customer/account/?showLayout=handles

Bu magento herhangi bir istek kullandığı kolları gösterecektir. Sen gibi bir şey bir listesini görmelisiniz

  1. Varsayılan
  2. STORE_bare_us
  3. THEME_\frontend_Varsayılan_Varsayılan
  4. customer_account_index
  5. customer_logged_in

4 numaralı farklı bir şey (companyname_modulename_customer_account_index) ise, sitenizin bu istek için özel bir denetleyicisi vardır demektir. Bu durum buysa, içinde sizin düzenleri etiketleri aramak isteyeceksiniz Eğer yapmak istediğiniz geçersiz olabilir.

Sonra, aşağıdaki sorgu dizesi ile bir Magento URL yüklemek

http://magento.example.com/customer/account/?showLayout=page

Sen tarayıcıda işlenen bir XML dosya görmelisiniz. Bu size isteklerin son düzen XML. Ayarlanmış bir çıkış niteliğine sahip bir etiketi (büyük olasılıkla adında kök aramak)

<block type="page/html" name="root" output="toHtml" template="page/2columns-left.phtml">

Çıkış öznitelik bu Magento ile render başlayacak şablon demektir. Bu iki sütun düzeni değilse, sorununuzu çözmek yakınsın.

Sonraki, kök modülü içinde sol adında bir modül için bakmak

<block type="core/text_list" name="left" as="left" ignore="1"/>

Bu bir nitelik göz ardı varsa, muhtemelen bir karşılık etiketi olacak

<remove name="left"/>

düzeninde bir yerde. Bunu kaldırmak isteyeceksiniz.

Ayrıca, kök blok aslında adı sol olan bir çocuk blok olduğundan emin olun.

<block type="page/html" name="root" output="toHtml" ... >
    ...
    <block type="core/text_list" name="left" as "left" />
    ...
</block>

Son olarak, ve bu daha bir aklı kontrol edilir

http://magento.example.com/checkout/cart/?showLayout=package

ShowLayout sorgu dizesi parametresi "paket" belirterek size entire paket düzeni gösterecektir. Bu tek bir kombine tüm Layout.xml dosyaları. Emin magento (cache) ekliyoruz XML biliyor yapmak ve doğru dosyaları düzenleme emin olmak için kullanabilirsiniz. Sen örnek de size mutlu değiliz sonuçlar vermektedir beklenmedik düzen intrusctions aramak için her sap bölümü yapabilirsiniz.

Dolu (bu sorunu olan herkes için) yanıt olarak, app / kod / toplum Alan'ın modülü koyarsanız, "topluluk" codePool kullanmak için app / etc / modules / Alanstormdotcom_Layoutviewer.xml düzenlemek gerekir. Modülü varsayılan (en azından sürüm burada Alan'ın cevap bağlantılı) tarafından yerel app / code / kurulacak bekliyor.