大家好,大家好!!!

我在footer.phtml中使用以下命令,以获取我的所有cms /块
 在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();?>


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

有什么建议吗?

最佳答案

如果您追求的是纯粹的代码重用,那么类似的方法将起作用

<?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; ?>


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

关于php - 如何在Magento页脚中编写php循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19496483/

10-11 18:24