Magento random block generator / block randomiser
This could be pretty useful if you want to combine XML block control with a random content display (eg. banner ads).
Very easily achieved, simply create 1 file in ./base/default/template/page/html/random_block.phtml
<?php
$children = $this->getSortedChildren();
if(is_array($children)) {
shuffle($children);
echo $this->getChildHtml($children[0]);
}
?>
Then in your relevant XML file - control the output by using:
<block type="core/template" name="left.callout.random" template="page/html/random_block.phtml" before="-">
<block type="core/template" name="left.callout.random1" template="callouts/left_col.phtml">
<action method="setImgWidth"><width>240</width></action>
<action method="setImgSrc"><src>images/image1.png</src></action>
<action method="setImgAlt" translate="alt" module="catalog"><alt>some alt text</alt></action>
<action method="setLinkUrl"><url>link url</url></action>
</block>
<block type="core/template" name="left.callout.random2" template="callouts/left_col.phtml">
<action method="setImgWidth"><width>240</width></action>
<action method="setImgSrc"><src>images/image2.png</src></action>
<action method="setImgAlt" translate="alt" module="catalog"><alt>some alt text</alt></action>
<action method="setLinkUrl"><url>link url</url></action>
</block>
</block>
You can add any type of block you want and it will just grab one at random.
[syntaxhighlighter]