2012-11-15 21 views
7

Tôi đang chèn một khối tĩnh cms qua một thể hiện widget - và tôi muốn xuất ra tiêu đề khối tĩnh cũng như nội dung của nó, từ bên trong mẫu tiện ích của tôi. Các mẫu mặc định (ứng dụng/thiết kế/frontend/base/default/template/cms/widget/static_block/default.phtml) chỉ đơn giản có:Magento - Lấy tiêu đề của một khối tĩnh cms từ block_id của nó?

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

tôi đã thay đổi đó để getData() thay vì để xem những gì nó có thể lấy, như sau:

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

Vì vậy, tôi đoán cách duy nhất là sử dụng block_id để lấy tiêu đề, nhưng không thể tìm ra cách. Tôi có thể lấy block_id từ đó với $ this-> getBlockId() - nhưng sau đó làm thế nào để tôi sử dụng để có được tiêu đề?

Tôi nghĩ những điều sau có thể làm việc nhưng nó không:

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

Trả lời

9

Có vẻ các công việc sau:

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

Luôn giúp để viết ra một câu hỏi ở đây, một nửa thời gian nhìn thấy nó bằng văn bản giúp tôi tự tìm ra câu trả lời!

0

Một phương pháp khác là tạo ra một chức năng cho nó trên khối của bạn:

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; 
} 

Và sau đó hiển thị trong mẫu của bạn sử dụng:

echo $this->getContactWidgetHtml(); 
1

Nếu bạn có một số cửa hàng và bạn muốn cho cửa hàng bạn đang ở, nó giống như:

$title = Mage::getModel('cms/block') 
    ->setStoreId(Mage::app()->getStore()->getId()) 
    ->load($blockId) 
    ->getTitle(); 
Các vấn đề liên quan