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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将商店ID设置为cms块输出相关的知识,希望对你有一定的参考价值。

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

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

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

试试这个

/* 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.*/
另一答案

您可以尝试以下代码:

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

请使用以下不同的$ storeId

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

在这种情况下

$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。

以上是关于如何将商店ID设置为cms块输出的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CMS 页面的内容拉入静态块?

将多个输出中的hls属性设置为单独的片段代码

如何在 Django Summernote 中显示编程片段的代码块?

Django CMS:如何避免在设置中设置 SITE_ID?

Magento:将静态块添加到结帐购物车

如何在 Magnolia CMS Marketing Tag 中登录用户 ID