Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento-以编程方式保存静态块内容_Php_Magento_Static Block - Fatal编程技术网

Php Magento-以编程方式保存静态块内容

Php Magento-以编程方式保存静态块内容,php,magento,static-block,Php,Magento,Static Block,我有一个静态块,我想通过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 s

我有一个静态块,我想通过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(),只会导致“无效方法Mage\u Cms\u block\u block::save”

按块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();
或者,如果您知道块id:

$id = 1;
Mage::getModel('cms/block')
    ->load($id)
    ->setData('content', 'Your new block content')
    ->save()
;

使用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();
}

请参阅我的博客,以获得逐步的解释


谢谢,这很有效,迪诺德刚刚抢先回答了你的问题,所以我会接受他的!
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();