如何将商店ID设置为cms块输出

时间:2017-07-05 10:45:40

标签: magento magento-1.8

我使用下面的代码来显示静态块内容,但每次只显示第一个存储块。我在管理端加载此cms块。 我有两个具有相同标识符的块,但是将它分配给不同的商店,所以我希望以明智的方式显示它。

这是我使用的代码,但它没有帮助。

Mage::app()->getLayout()->createBlock('cms/block')->setBlockId('pdf_page_of')->setStoreId($storeId)->toHtml()

4 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

Mage::getModel('cms/block')
    ->setStoreId(Mage::app()>getStore()->getId())
    ->load('pdf_page_of')
;

答案 1 :(得分:1)

试试这个

/* set required store */
    Mage::app()->setCurrentStore($storeId);
            $addresBlock =  Mage::app()->getLayout()->createBlock('cms/block')->setBlockId('pdfaddress')->toHtml();
    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
/* reset admin store after wind up our purpose.*/

答案 2 :(得分:0)

请使用以下不同的$ storeId

$block = Mage::getModel('cms/block')->setStoreId($storeId)->load('newest_product');
echo $block->getTitle();
echo $block->getContent();

答案 3 :(得分:0)

在这种情况下

$blockId = 'block_id';
$storeId = 5;
$block = Mage::getModel('cms/block')->setStoreId($storeId)->load($blockId);

请记住,如果您已在商店ID 0中使用$ blockId块,则无论您在$ storeId中拥有什么值,都会为商店0加载$ block。发生这种情况是因为所有其他商店视图都存在商店ID 0。

我假设

Mage_Core_Model_App::ADMIN_STORE_ID

返回0.