使用local.xml Magento 1.9 CE中的if语句显示/隐藏产品选项卡

时间:2015-10-08 05:33:57

标签: php xml magento product magento-1.9

我使用CE 1.9对magento来说相当新。

我知道如何通过local.xml删除/添加产品页面上的标签 但是,我试图根据产品属性的值隐藏/显示标签。

我已成功创建自定义标签。另外我创建的customTab.phtml文件能够让if语句成功运行... ... ...

这是我在phtml文件中的代码:

    <?php
    $staticBlockId = 'block_product_tab2';
    $product = Mage::registry('current_product'); ?>

<?php   if($product->getRepairservice()): ?>
            <div class="std"><?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($staticBlockId)->toHtml(); ?></div>

<?php   endif; ?>

这将成功隐藏或显示内容&#34;选项卡的基于属性的布尔值。但是它仍然显示标签,它只是空的。

所以我认为我需要去local.xml创建的地方,但我不确定如何构造if语句或获取属性的访问权限。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为最明确的方法是创建自己的布局句柄,请参阅:http://inchoo.net/magento/custom-layout-update-handles/。您可以检查自己是否在产品页面上检查getRepairservice(),例如:

// Inside the controllerActionLayoutLoadBefore() function of Inchoo's example
$layout = $observer->getEvent()->getLayout();
$product = Mage::registry('current_product');

if($product && $product->getRepairservice())
{
    $layout->getUpdate()->addHandle('REPAIR_SERVICE')
}

之后,您可以使用XML很好地添加选项卡。

<REPAIR_SERVICE>
    <reference name="product.info">
        <block type="catalog/product_view_description" name="product.new.tab" as="new.tab" template="catalog/product/view/mynewcustomtab.phtml">
            <action method="addToParentGroup"><group>detailed_info</group></action>
            <action method="setTitle" translate="value"><value>Custom Tab</value></action>
        </block>
    </reference>
</REPAIR_SERVICE>