2013-10-24 3 views
0

Вот ситуация. У нас есть расширение для конфигуратора, которое мы хотели бы использовать на странице продукта только для определенных продуктов. Расширение настраивается как статический блок. Я думал, что я могу использовать оператор if в PHP с помощью XML для определения шаблона.Как я могу отображать статический блок условно посредством шаблона страницы продукта в Magento?

Вот мой каталог XML:

<reference name="content"> 
    <block type="partfinder/selector" name="partfinder_selector" template="partfinder/selector.phtml"/> 
</reference> 

Это мой PHP в файле view.php:

<?php 
if ($_product->getSku() = 10007) 
{ 
echo $this->getChildHtml('partfinder_selector'); 
} 
?> 

Что мне не хватает? Сейчас это просто разрушает мои страницы продуктов; все они.

Есть ли лучший способ сделать то, что я пытаюсь выполнить? Я знаю, что это плохая форма использовать блоки CMS таким образом, однако, похоже, это характер расширения.

+2

Я думаю, что вы забыли знак '='. 'if ($ _product-> getSku() = 10007)' должно быть 'if ($ _product-> getSku() == 10007)' – Marius

ответ

2

Вы можете использовать следующим образом:

<?php 
if ($_product->getSku() == '10007') { 
    echo $this->getLayout()->createBlock('cms/block')->setBlockId('partfinder_selector')->toHtml(); 
} 
?> 

вы пропустили == в вашей, если заявление.

+0

Он не выглядит так, как если бы инструкция PHP работала по назначению. Конфигуратор отображается на всех моих страницах продукта. Какие-либо предложения? – MacOfAges

+0

Вы пробовали распечатать код sku и попробовать эхо в утверждении if .. какой вывод? –

+0

Он печатается в начале кода, например: ' getProduct(); \t \t \t \t \t echo $ _product-> getSku(); \t \t \t \t \t?> ' – MacOfAges