2013-08-08 2 views
1

В magento Я хочу показать статический блок только на домашней странице.Magento :: Пользовательский блок не работает на главной странице

Я попробовал решение, упомянутое в this question, но это не сработало.

Я добавил этот код, в page.xml файл, и он начал давать ошибку, поэтому я вырезать его из их и поместить его в файл local.xml:

<cms_index_index> 
    <reference name="content"> 
    <block type="cms/block" name="home-page-block"> 
     <action method="setBlockId"><block_id>home-page-block</block_id></action> 
    </block> 
    </reference> 
<cms_index_index> 

Он не давал ошибку, но все же не показывает статический блок. Я даже ввел это в файл 2columns-right.phtml, хотя я думаю, что это не было необходимо.

<?php echo $this->getChildHtml('home-page-block') ?> 

Но это все еще не сработало. Может кто-то указать, что мне не хватает?

ответ

0
one of the easiest thing to do is 
<?php 
$homePageUrl = Mage::getBaseUrl(); //this gets you your domain name sort of 
$currentUrl = $this->helper('core/url')->getCurrentUrl(); // this gets the current url 

//you can now do your conditional stuff in here 
if($currentUrl == $homePageUrl) : ?> 

//then display your block by calling the block 
    <div style="margin: 0 auto; width: 100%; max-width: 1180px;"> 
     <?php echo $this->getLayout() 
      ->createBlock('cms/block') 
      ->setBlockId('seo-homepage') 
      ->toHtml(); 
     ?> 
    </div> 
<?php endif; ?> 
0

Предполагая, что вы уже выполнили всю стандартную процедуру Clear-cache, disable-cache, я думаю, что дескриптор должен быть cms_index_defaultindex вместо cms_index_index.

Во-вторых, вы правы в отношении getChildHtml() бит не обязательно, так как вы уже находитесь в <reference name="content" />.

+0

Я думаю, что я помещал его в неправильный файл. Я вставлял его в файл cms.xml по адресу: '' , и он работал – anwartheravian

Смежные вопросы