Do you mean you want the same block for any of the consoles? I suggest a switch statement
Replace the if statement you wrote with this:
switch($_product->getAttributeText('platform')){ case "xbox" : case "nintendo" : case "playstation" : echo $this->getLayout()->createBlock('cms/block')->setBlockId('console')->toHtml(); break; default : //here you can put a default other block or show nothing or whatever you want to do if the product is not a console }
Now you can add more consoles by adding more case "other console" : statements.
There are other ways. You could create an array of all consoles from the attribute values and then use inArray(); - that might be better for the general case if your client adds more consoles to the attribute via the Magento admin.
**EDITED ** following the comment below
If the attribute 'platform' is multiselect then $_product->getAttributeText('platform') will be string if one item is selected but if there are multiple items selected it will be an array. So you need to handle a single variable that can be string or array. Here we will convert string to array and use PHP's handy array_intersect() function.
I suggest:
$platformSelection = $_product->getAttributeText('platform'); if (is_string($platformSelection)) { //make it an array $platformSelection = array($platformSelection); //type casting of a sort } //$platformSelection is now an array so: //somehow know what the names of the consoles are: $consoles = array('xbox','nintendo','playstation'); if(array_intersect($consoles,$platformSelection)===array()) { //then there are no consoles selected //here you can put a default other block or show nothing or whatever you want to do if the product is not a console } else { //there are consoles selected echo $this->getLayout()->createBlock('cms/block')->setBlockId('console')->toHtml(); }
Note that the array_intersect() function compares the array elements strictly that is === so it is case sensitive and the function returns an empty array array() if there is no intersection.