I have a custom tab on the product page which at the moment shows a static block.

What I need it to do is to show a different static block based on the text of an attribute.

For example, the tab will show a phtml file checking the text of a custom attribute then displaying the correct static block.

  • Your custom attribute type is drop-down or text? Oct 7, 2015 at 17:33
  • Drop down but can be changed if needed Oct 7, 2015 at 17:37
  • What have you tried so far? Any code you could share with us or a certain specific issue you run into? Oct 7, 2015 at 17:56

1 Answer 1


As per your requirement you will need to create number of static blocks same as your drop-down values.

Now for example you have drop-down attribute values test1,test2,test3 etc...

Create your static blocks with identifier static_blick_test1, static_blick_test2, static_blick_test3 etc...

Now in your phtml file you must have current product object and you can call it like.

<?php $attributeValue = strtolower($product->getAttributeText('custom_attribute_code')); ?>

Now based on this attribute value create your static block identifier like

<?php $staticBlockIdentifier = "static_block_".$attributeValue; ?>

Now you can call this static block like

<?php echo $this->getLayout()->createBlock("cms/block")->setBlockId($staticBlockIdentifier)->toHtml();?>

This way you can call your static block dynamically as per your custom attribute value in your product tab.

  • So I put all 3 in the phtml file? What do you mean current product object? Sorry :s Oct 7, 2015 at 18:11
  • $product = Mage::registry('çurrent_product'); or your file should have block 'catalog/product_view' Oct 7, 2015 at 18:25
  • You helped a lot, thank you. you have a typo though it should be $product = Mage::registry('current_product'); Oct 7, 2015 at 19:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.