2012-11-15 40 views
7

我通過一個小部件實例插入一個cms靜態塊 - 我想從我的小部件模板中輸出靜態塊標題以及它的內容。默認的模板(應用程序/設計/前端/基/默認/模板/ CMS /空間/ static_block/default.phtml)只是有:Magento - 從它的block_id獲取cms靜態塊的標題?

<?php echo $this->getText(); ?> 

我改變了對的getData()而不是看什麼有可能搶,這是如下:

[type] => cms/widget_block 
[block_id] => 11 
[module_name] => Mage_Cms 
[text] => blahblahblah 

所以我猜的唯一方法是使用BLOCK_ID拿到冠軍,但不能完全弄清楚如何。我可以從$ this-> getBlockId()那裏抓取block_id - 但是那麼如何使用它來獲得標題?

我認爲以下可能的工作,但它並不:

$blockid = $this->getBlockId(); 
$blocktitle = Mage::getModel('cms/page')->load($blockid, 'block_id')->getTitle(); 

回答

9

似乎以下工作:

$blockid = $this->getBlockId(); 
$block = Mage::getModel('cms/block')->load($blockid); 
echo $block->getTitle(); 

總是幫助在這裏寫出來一個問題,一半的時間看到它寫幫我自己找到答案!

0

的另一種方法是將你的塊上創建功能吧:

public function getContactWidgetHtml() 
{ 
    $result = ''; 

    $widget = Mage::getModel('widget/widget_instance')->load(14); 

    if ($widget && $widget->getId()) { 
     $widgetBlock = $this->getLayout() 
      ->createBlock(
       $widget->getType(), 
       $widget->getTitle(), 
       $widget->getWidgetParameters() 
      ); 

     if ($widgetBlock) { 
      $result = $widgetBlock->toHtml(); 
     } 
    } 

    return $result; 
} 

,然後用在你的模板顯示出來:

echo $this->getContactWidgetHtml(); 
1

如果你有幾個商店,你想要你所在的商店,就是這樣的:

$title = Mage::getModel('cms/block') 
    ->setStoreId(Mage::app()->getStore()->getId()) 
    ->load($blockId) 
    ->getTitle();