2012-11-15 10 views
7

私はウィジェットインスタンスを介してcmsスタティックブロックを挿入しています。私はウィジェットテンプレート内からスタティックブロックタイトルとコンテンツを出力したいと思います。デフォルトのテンプレート(アプリ/設計/フロントエンド/ベース/デフォルト/テンプレート/ CMS /ウィジェット/ static_block/default.phtml)は、単に持っている:Magento - cmsスタティックブロックのタイトルをblock_idから取得していますか?

<?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(); 
関連する問題