Search code examples
phpmagentocontent-management-systemblockspecs

Magento - two if statements within same category


I have created the following to allow a different static CMS block to displayed on the product page depending on the category ID.

<?php 
    $_category_detail=Mage::registry('current_category'); //Get the current category id
    $product = Mage::getModel('catalog/product')->load($product_id);   //Get the current category id
    $category = Mage::getModel('catalog/layer')->getCurrentCategory(); //Get the current category id
    ?>
<?php if($category->getId()==23): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
    </div>
<?php endif;?>  

<?php if($category->getId()==10): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecjacket')->toHtml(); ?>
    </div>
<?php endif;?>

Everything is fine for the category part, though i would like to display a different block based on the product id in the same category.

For example (this is obviously not correct):

<?php if($category->getId()==23) "AND the product id are "372,363,354,349,344": ?>
<div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
</div>
else // if they are not the mentioned product id's 
<div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsstd')->toHtml(); ?>
</div> 

Solution

  • <?php 
        $_category_detail=Mage::registry('current_category'); //Get the current category
        $product = Mage::registry('current_product'); // Get the current product
        $productId = $this->getProduct()->getId(); // Get the current product ID
        $category = Mage::getModel('catalog/layer')->getCurrentCategory(); //Get the current category id
        ?>
    <!-- standard pants - sizing chart -->
    <?php if(in_array($this->getProduct()->getId(), array(372,363,354,349,344))): ?>
    <div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsstd')->toHtml(); ?>
    </div>
    <?php endif;?>
    <!-- slim pants - sizing chart -->
    <?php if(in_array($this->getProduct()->getId(), array(339,334,329,324,319,314))): ?>
    <div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
    </div>
    <?php endif;?>
    <!-- jackets - sizing chart -->
    <?php if($category->getId()==10): ?>
        <div id="sizingmap">
            <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecjacket')->toHtml(); ?>
        </div>
    <?php endif;?>
    

    thank you guys for your input, I was able to produce the result by putting bits and pieces of everyones codes together.

    Cheers :)