在magento页面中的内容之前添加块

时间:2015-03-24 01:04:36

标签: php xml magento layout

我需要在我的某个网页my-page

中的面包屑后面添加一个块

我尝试在管理员中创建一个名为my-block的块,并在<?php echo $this->getChildHtml('my-block') ?>中添加frontend/theme/default/template/page/2columns-left.phtml,但它不会显示块my-block的内容。

我还添加了

<page-name>
    <reference name="root">
        <block type="core/template" name="my-block" as="my-block" before="content" after="breadcrumbs" template="page/html/my-block.phtml"/>
    </reference>
</page-name>

在local.xml文件中,但我不确定它是否真的有必要。

我错过了什么吗?

感谢

1 个答案:

答案 0 :(得分:1)

必须以不同方式调用Cms块以回显其内容。

在breadcrumbs.phtml下面的所有页面上渲染块:

  

app \ design \ frontend \ base \ default \ layout \ page.xml

在面包屑之后添加:

  

在Layout.xml中

<block type="cms/block" name="block_name">
    <action method="setBlockId"><block_id>my-block</block_id></action>
</block>

然后你必须在3columns.phtml中反映出来:

 <?php echo $this->getChildHtml('my-block') ?>

可能更容易在每页上进行。

启用模板提示,找到要附加cms内容的块并将其中包含在其中:

  

在模板文件中:

 // Insert the block into the page.
$sBlockId = 'my-block';
$oBlock = Mage::getModel( 'cms/block' );
$oBlock->setStoreId( Mage::app()->getStore()->getId() );
$oBlock->load( $sBlockId, 'identifier' );
$oCmsHelper = Mage::helper( 'cms' );
$oProcessor = $oCmsHelper->getPageTemplateProcessor();
$sHtml = $oProcessor->filter( $oBlock->getContent() );
echo $sHtml;
  

OR:

echo Mage::app()->getLayout()->createBlock( 'cms/block' )->setBlockId( 'my-block' )->toHtml();

理想情况下,您可能希望创建一个模板,然后通过layout.xml附加,并在该模板中回显我们的cms块。

  

创建一个模板,让您的cms在任何地方阻止:

     

应用\等\模块\ Spirit_Cms.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Spirit_Cms>
            <active>true</active>
            <codePool>local</codePool>
        </Spirit_Cms>
    </modules>
</config>
  

应用\代码\本地\精神\ CMS \等\ config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Spirit_Cms>
            <version>0.0.1</version>
        </Spirit_Cms>
    </modules>
    <frontend>
        <layout>
            <updates>
                <spirit_cms>
                    <file>custom.xml</file>
                </spirit_cms>
            </updates>
        </layout>
    </frontend>
</config>
  

应用\设计\前端\ RWD \默认\布局\ custom.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
        <reference name="content">
            <block type="core/template" name="custom" template="custom.phtml" output="toHtml" />
        </reference>
    </default>
</layout>
  

应用\设计\前端\ RWD \默认\模板\ custom.phtml

<?php echo Mage::app()->getLayout()->createBlock( 'cms/block' )->setBlockId( 'custom' )->toHtml(); ?>

在指定位置添加内容时更灵活/更少杂乱。