我希望从模块设置脚本中安装一些默认的CMS块。谷歌搜索我得出结论,最好的方法是将数据/目录添加到模块。我正在尝试的是这样的,比如模块config.xml是:
<My_CustomMod>
<version>0.1.0</version>
</My_CustomMod>
所以我在My/CustomMod/data/custommod_setup/data-install-0.1.0.php
在那里,我有类似的东西:
$cmsBlocks = array(
array(
'title' => 'Footer Column One',
'identifier' => 'footer_column_one',
'content' => "stuff",
'is_active' => 1,
'stores' => 0
),
array(
'title' => 'Footer Column Two',
'identifier' => 'footer_column_two',
'content' => "more stuff",
'is_active' => 1,
'stores' => 0
)
);
foreach ($cmsBlocks as $data) {
Mage::getModel('cms/block')->setData($data)->save();
}
我已经清除缓存并期望能够查看管理员并查看这些新创建的块但它不起作用,我看不到CMS列表中的任何块,即:没有footer_column_one。知道我还应该做些什么才能让它发挥作用?我是否有必要在config.xml中添加其他内容?
答案 0 :(得分:0)
尝试以下脚本。我认为你没有正确设置商店
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $staticBlock = array( 'title' => 'My Static Block', 'identifier' => 'my-static-block', 'content' => 'Lorem ipsum', 'is_active' => 1, 'stores' => array(1) ); Mage::getModel('cms/block')->setData($staticBlock)->save();