2

我有一个静态块,我想通过一个通过 cron 运行的脚本来更新它。

我发现了如何以编程方式创建或检索块,但不知道如何编辑现有块。

这适用于检索块:

// Retrieve the layout object
$layout = Mage::getSingleton('core/layout');

// Generate a CMS block object
$block = $layout->createBlock('cms/block');

// Set the block ID of the static block
$block->setBlockId('my_block_id');

// Write the static block content to screen
echo $block->toHtml();

我想我在这里遗漏了一些简单的东西,但是在这个块上执行 setContent() 然后 save() 只会导致“Invalid method Mage_Cms_Block_Block::save”

4

3 回答 3

7

按块 ID:

Mage::getModel('cms/block')->load($id)
  ->setData('content', 'Example content')
  ->save();

按标识符:

Mage::getModel('cms/block')
  ->getCollection()
  ->addFieldToFilter('identifier', 'my_block_id')
  ->load()
  ->setData('content', 'Example content')
  ->save();
于 2012-06-14T10:03:33.563 回答
6
$identifier = 'footer_links';
Mage::getModel('cms/block')
    ->load($identifier, 'identifier')
    ->setData('content', 'Your new block content')
    ->save()
;

或者,如果您知道块 ID:

$id = 1;
Mage::getModel('cms/block')
    ->load($id)
    ->setData('content', 'Your new block content')
    ->save()
;
于 2012-06-14T10:09:16.697 回答
0

使用 magento 脚本更新和添加静态块

function createBlock($blockData) {

$block = Mage::getModel('cms/block')->load($blockData['identifier']);
$block->setTitle($blockData['title']);
$block->setIdentifier($blockData['identifier']);
$block->setStores(array($blockData['storeId']));
$block->setIsActive($blockData['active']);
$block->setContent($blockData['content']);
$block->save();

}

请参考我的博客一步一步的解释

http://www.pearlbells.co.uk/how-to-create-and-update-the-static-blocks-using-magento-script/

于 2016-11-05T01:17:16.920 回答