如何在Magento页脚中编写php循环?

时间:2013-10-21 13:54:00

标签: php css magento loops magento-1.7

嗨,所有开发人员都在那里!!!

我在 footer.phtml 中使用以下命令来获取所有 cms / blocks  在magento的页脚

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


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


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

我想知道我是否能找到一些循环以获取我所有的块(家庭,联系人,博客等等)以避免重复上述代码...

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

如果你所追求的是纯粹的代码重用,那么这样的东西就可以了

<?php $_blocks = array('home','contact','block'); ?>
<?php foreach($_blocks as $_blockName): ?>
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_blockName)->toHtml();?>
<?php endforeach; ?>

只需将新块名称添加到$_blocks数组即可。

您也可以使用类似

所有块执行此操作
    <?php $_blocks = Mage::getModel('cms/block')->getCollection(); ?>
    <?php foreach($_blocks as $_block): ?>
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_block->getIdentifier())->toHtml();?>
    <?php endforeach; ?>

但正如其他人所提到的那样,添加到系统中的新块似乎是一个坏主意。

答案 1 :(得分:1)

这篇文章可能有所帮助: Magento - How do you return results of unlimited CMS Static blocks (with certain "Identifier") to a CMS Page

您可以使用集合来获取所有cms块,也可以过滤它们。

答案 2 :(得分:0)

你做不到。或者你必须为它编写自己的函数。