Quick Overview: I am trying to return results from a specific set of static blocks to a phtml file (which is then called on from a cms page) in Magento.
Note: I've been searching all over google and some answers get me closer than others but nothing I've tried seems to work 100%?
Details:
I already have a set of specific static blocks that all start with an identifier of testimonial-
. For example, each static block is like this: testimonial-1
, testimonial-2
, testimonial-3
and so on. I have a total of 5 on my dev site (more on live site but that is no consequence here).
I have a CMS Page with code pulling in the name.phtml
file (location of my phtml file is here: app/design/frontend/[package]/[template]/template/page/):
{{block type="core/template" template="page/name.phtml" title="Others Say:" identifier="testimonial-"}}
Here is my code for the .phtml file:
<?php
// add the collection with filters
$collection = Mage::getModel('cms/block')->getCollection()
->addFieldToFilter('identifier', array('like'=>'testimonial'.'%'))
->addFieldToFilter('is_active', 1);
// get the count
$blockCount = $collection->count();
echo 'Block Count: ' . $blockCount . '<br />'; // just for testing
$blockNum = 1;
foreach($collection as $key => $value){
$_blockId = $this->getIdentifier();
$block_ID = $_blockId . $blockNum;
echo "Key: " . $key . " - " . "Block ID: " . $block_ID . "<br />";
$blockNum++;
}
$_block = $this->getLayout()->createBlock('cms/block')->setBlockId($block_ID);
if ($_block) :
?>
<div class="block block-testimonial">
<div class="block-title">
<strong><?php echo $this->getTitle(); ?></strong>
</div>
<div class="block-content">
<?php echo $_block->toHtml(); ?>
</div>
The loop foreach($collection as $key => $value)
prints out this:
Key: 27 - Block ID: testimonial-1
Key: 28 - Block ID: testimonial-2
Key: 29 - Block ID: testimonial-3
Key: 30 - Block ID: testimonial-4
Key: 31 - Block ID: testimonial-5
Which is good.
However, the only block that is echoed is the last block (testimonial-5
). Since I'm trying to list out all the testimonial blocks, how can I echo out each block id to the page?
Go easy on me, I'm a beginner at php.