Добавить блок перед контентом на странице magento

Мне нужно добавить блок сразу после хлебных крошек на одной из моих страниц, 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

Решение

Блоки Cms должны вызываться по-разному, чтобы отобразить их содержимое.

Чтобы отобразить блок на всех страницах ниже breadcrumbs.phtml:

Приложение \ дизайн \ интерфейс \ базы \ умолчанию \ расположение \ 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') ?>

Может быть, проще сделать это на каждой странице.

Включите подсказки шаблона, найдите блок, к которому вы хотите добавить свой контент, и поместите в него следующее:

В файле шаблона:

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

ИЛИ ЖЕ:

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>

Приложение \ код \ Local \ Дух \ 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(); ?>

Больше гибкости / меньше беспорядка при добавлении контента в указанное место.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]