嗨,所有开发人员都在那里!!!
我在 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();?>
我想知道我是否能找到一些循环以获取我所有的块(家庭,联系人,博客等等)以避免重复上述代码...
有什么建议吗?
答案 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)
你做不到。或者你必须为它编写自己的函数。