简体   繁体   中英

Magento - Include TPL files in CMS

I'm performing a quick job for a Magento-based site and can't recall how to pull in TPL files within the CMS. I've tried using the following code in my CMS page...

{{block type="cms/block" block_id="page_heading" template="cms/content_heading2.phtml"}}

The TPL file is already in the correct folder... app/design/frontend/default/wfs/cms

I'm just not sure how to include this PHTML file correctly. Is it possible to provide the correct syntax?

Thanks!

When you say

`type="cms/block"`

you're telling Magento to create a 'cms/block template object, which translates to a Mage_Cms_Block_Block` class. If you take a look at this block's source

#File: app/code/core/Mage/Cms/Block/Block.php
protected function _toHtml()
{
    $blockId = $this->getBlockId();
    $html = '';
    if ($blockId) {
        $block = Mage::getModel('cms/block')
            ->setStoreId(Mage::app()->getStore()->getId())
            ->load($blockId);
        if ($block->getIsActive()) {
            /* @var $helper Mage_Cms_Helper_Data */
            $helper = Mage::helper('cms');
            $processor = $helper->getBlockTemplateProcessor();
            $html = $processor->filter($block->getContent());
        }
    }
    return $html;
}

you can see this doesn't render templates, but instead renders Magento's static block objects.

Try

`type="core/template"`

instead, and make sure your block ID is unique.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM