我在CMS->页面“主页”文件中。在内容我写这样的线是这样的:CMS页面添加块magento
{{block type="myfolder/newfile" template="myfolder/newfile.phtml"}}
我想渲染内容文件newfile.phtml。我做错了什么?
我的新文件下:应用程序\设计\前台\ DEFAULT \ themeas \模板\ MyFolder文件\ newfile.phtml
我在CMS->页面“主页”文件中。在内容我写这样的线是这样的:CMS页面添加块magento
{{block type="myfolder/newfile" template="myfolder/newfile.phtml"}}
我想渲染内容文件newfile.phtml。我做错了什么?
我的新文件下:应用程序\设计\前台\ DEFAULT \ themeas \模板\ MyFolder文件\ newfile.phtml
你需要给你的块的名称。这就是Magento将参考该块的方式。此外,您的块类型必须有效,才能呈现块。对于默认块尝试使用类型=“核心/模板”
你的新代码应该是这样的:
{{block type="core/template" name="my.block.name" template="myfolder/newfile.phtml"}}
约type属性另要注意,它并不是一个真正的目录/文件结构,相反,它是一个使用Magento自动加载器映射的URI。 “核心”涉及Mage_Core_Block_Core类(位于app/code/core/Mage/Core目录下),然后斜杠后的信息与该目录内的文件夹相关。因此type =“core/template”解析为位于app/code/core/Mage/Core/Block/Template.php的这个类Mage_Core_Block_Core_Template。所有的type属性都在告诉Magento你需要在你的块中加载哪些方法。
一对夫妇的其他类型的块,你可以尝试是:
对于产品列表:目录/所属类别
对于文本列表(块自动呈现出子块):核心/ text_list
对于分类块:目录/ category_view
还有更多,找到新的一个好方法就是看一个块,它对你正在做的事情做出类似的行为,并找到它在XML中定义的位置。
如果你想传递变量来将挡,你可以这样做:
{{block type="core/template" name="my.block.name" myvariable="5" template="myfolder/newfile.phtml"}}
我想提供一种替代方案:
以上答案做工精细,但它是我个人的不要在CMS页面的内容中插入块,因为客户可以(并且已经)在尝试使用所见即所得编辑文本和内容时删除了这一重要行。
你可以添加以下的中布局>布局更新XML一个CMS页面的部分:
<reference name="content">
<block after="-" type="your/block_type" name="block.name" template="your/block/template/file.phtml"/>
<action method="insert" ifconfig="your/block_type">
<block>block.name</block>
</action>
</reference>
这样一来,客户不太可能编辑这个标签!
希望这可以帮助其他人解决这个问题!
由于Magento 1.9.2.2或等效补丁,您还需要授予新块的权限。您在后端执行此操作: System |权限|块
也就是说,如果你想显示:
{{block type="catalog/product_bestseller" name="krillo.bestseller" template="catalog/product/bestseller.phtml"}}
添加您的块名称“目录/ product_bestseller”,并设置状态为“允许”在我的网站之一
它的工作没有名字,直到版本1.9.2.3 as'''{{block type =“catalog/product_list”category_id =“8”template =“catalog/product/featured.phtml”}}''' – lrkwz 2016-01-27 17:02:50
不要忘记给块权限,否则不会显示(magento版本1.9+)system-> permission-> blocks – Mike 2016-07-21 13:50:09