Mengenai "Anda tidak dapat menambahkan blok menggunakan <reference name="left/>, apakah Anda yakin halaman CMS Anda memiliki blok bernama kiri? Misalnya, jika Anda mempertimbangkan halaman beranda default yang dikirimkan dengan data sampel Magento, tampaknya memiliki blok bernama kiri.

Namun, jika Anda melihat halaman di backend, Anda dapat melihatnya diatur untuk menggunakan templat root
`2 columns with right bar`
dan kemudian di area isinya, kolom kiri ditambahkan menggunakan markup HTML (beralih WYSIWYG ke tampilan sumber)
<div class="col-left side-col">
<p class="home-callout"><a href="{{store direct_url="apparel/shoes/womens/anashria-womens-premier-leather-sandal.html"}}"><img src="{{skin url='images/ph_callout_left_top.gif'}}" alt="" border="0" /></a></p>
<p class="home-callout"><img src="{{skin url='images/ph_callout_left_rebel.jpg'}}" alt="" border="0" /></p>
{{block type="tag/popular" template="tag/popular.phtml"}}</div>
Grafik terarah ini memperjelas tidak ada blok yang disebut leftuntuk dihubungkan ( klik untuk gambar berukuran penuh )

Mengenai pengaturan template, jika Anda melihat sumber untuk drop-down "Layout"
<select id="page_root_template" name="root_template" class=" required-entry select">
<option value="empty">Empty</option>
<option value="one_column">1 column</option>
<option value="two_columns_left">2 columns with left bar</option>
<option value="two_columns_right" selected="selected">2 columns with right bar</option>
<option value="three_columns">3 columns</option>
</select>
Anda dapat melihat ketika Anda menetapkan bidang ini, nilai aktual diselamatkan adalah sesuatu seperti one_column, two_columns_left, dll Nilai-nilai ini corespond menangani tata letak dengan nama yang sama.
#File: app/design/frontend/default/modern/layout/page.xml
<page_one_column translate="label">
<label>All One-Column Layout Pages</label>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
<!-- Mark root page block that template is applied -->
<action method="setIsHandle"><applied>1</applied></action>
<action method="setLayoutCode"><name>one_column</name></action>
</reference>
</page_one_column>
...
<page_two_columns_left translate="label">
<label>All Two-Column Layout Pages (Left Column)</label>
<reference name="root">
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
<!-- Mark root page block that template is applied -->
<action method="setIsHandle"><applied>1</applied></action>
<action method="setLayoutCode"><name>two_columns_left</name></action>
</reference>
</page_two_columns_left>
Saat Magento merender halaman CMS, itu mereferensikan nilai yang disimpan, dan menambahkan pegangan tata letak yang sesuai ke halaman. Meskipun ini bersinggungan dengan pertanyaan, pegangan itu ditambahkan di sini
#File: app/code/core/Mage/Cms/Helper/Page.php
protected function _renderPage(Mage_Core_Controller_Varien_Action $action, $pageId = null, $renderLayout = true)
{
//...
$action->addActionLayoutHandles();
if ($page->getRootTemplate()) {
$handle = ($page->getCustomRootTemplate()
&& $page->getCustomRootTemplate() != 'empty'
&& $inRange) ? $page->getCustomRootTemplate() : $page->getRootTemplate();
$action->getLayout()->helper('page/layout')->applyHandle($handle);
}
//...
}
Lebih penting lagi adalah urutan tata letak pegangan ditambahkan

Seperti yang Anda lihat dalam gambar di atas, page_two_columns_rightpegangan ditambahkan setelah itu cms_index_indexpegangan. Ini berarti jika Anda menambahkan kode pembaruan xml pembaruan untuk mengubah template di cms_index_indexkode Anda akan berjalan, tetapi kemudian pembaruan kode pembaruan xml di page_two_columns_rightakan berjalan setelahnya.
Saya selalu curiga ini dengan desain untuk memastikan template yang diatur dalam antarmuka pengguna selalu benar. Dalam versi Magento sebelumnya <action method="setIsHandle"><applied>1</applied></action>pemanggilan metode tampaknya ada karena alasan yang sama.
Jadi, tidak ada cara untuk melakukan apa yang Anda inginkan menggunakan kode xml tata letak murni. Jika Anda merasa nyaman dengan membuat modul khusus dan kode pengamat, lihatlah cms_page_renderacara tersebut. Kebakaran ini tepat sebelum loadLayoutUpdatesdipanggil, dan akan membiarkan Anda memasukkan nama pegangan tambahan, atau menghapus nama pegangan yang ada.