如何在内容上方的主页上,仅在主页导航下的位置添加块?


22

如何仅在内容部分的上方,但在导航下方的主页上添加一个块,以便在仍使用两栏模板的情况下在整个页面中展开?

我正在使用Magento 1.9版。

见图片:

在此处输入图片说明

Answers:


23

您根本不需要创建模块。您可以在Magento 1.4+中使用小部件:

点击CMS>窗口小部件:

在此处输入图片说明

单击“添加新的小部件实例”:

在此处输入图片说明

选择“ CMS静态块”,然后选择主题名称:

在此处输入图片说明

然后,在“前端属性”下为其赋予标题,然后单击“添加布局更新”,然后对其进行配置,以使其仅显示在主内容块的主页上:

在此处输入图片说明

在窗口小部件选项下,选择要显示的静态块:

在此处输入图片说明


这是所有三种解决方案中最好的...
user1704524 2014年

Magento 2有办法做到这一点吗?
kia4567

11

local.xml在下创建app/design/frontend/your package/your template/layout/

并把代码

<?xml version="1.0"?>
<layout version="0.1.0">
    <cms_index_index>
        <reference name="root">
            <block type="core/template"  name="my.vblock" before="content" template="page/home/myblock.phtml" after="breadcrumbs" />
        </reference>
    </cms_index_index>
 </layout>

那是一个好方法……
user1704524 2014年

谢谢这个!但是我想在面包屑之前做。我尝试过before =“ breadcurmbs”,但说XML无效。我该如何进行这项工作?
Alyssa Reyes 2014年

@AlyssaReyes如果您使用了'breadcurmbs',则可以尝试'breadcrumbs':p
Maarten Wolfsen


4

这是一种非常快捷的方法...

创建一个模块:

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_PageLayout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page/>
            </depends>
        </Namespace_PageLayout>
    </modules>
</config>

然后将以下内容添加到您的配置文件中

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_PageLayout>
            <version>0.1.0</version>
        </Namespace_PageLayout>
    </modules>
    <global>
        <page>
            <layouts>
                <homepage_layout translate="label">
                    <label>Homepage Layout</label>
                    <template>page/1column-home.phtml</template>
                </homepage_layout>
            </layouts>
        </page>
    </global>
</config>

在主题文件夹app / design / frontend / YOURTHEME / default / template / page / 1column-home.phtml中

添加以下内容:

<head>
    <?php echo $this->getChildHtml('head') ?>
</head>
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
**<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('custom_block')->toHtml(); ?>** 
        <div class="main-container col1-layout cms-home">
            <div class="main">
                <?php echo $this->getChildHtml('breadcrumbs') ?>
                <div class="col-main">
                    <?php echo $this->getChildHtml('global_messages') ?>
                    <?php echo $this->getChildHtml('content') ?>
                </div>
            </div>
        </div>
        <?php echo $this->getChildHtml('footer_before') ?>
        <?php echo $this->getChildHtml('footer') ?>
        <?php echo $this->getChildHtml('global_cookie_notice') ?>
        <?php echo $this->getChildHtml('before_body_end') ?>
    </div>
</div>
<?php echo $this->getAbsoluteFooter() ?>
</body>
</html>

然后在您的Magento管理员中创建一个名为'custom_block'或其他名称的静态块,并将其添加到标题后的1column-home.phtml中:

<?php echo $this->getChildHtml('header') ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('custom_block')->toHtml(); ?>

确保在静态块中添加一些内容,然后从CMS页面的“设计”标签中选择新的首页布局...


0

可以尝试版面更新

像这样的代码

<reference name="top.container">
    <block type="core/template"
                   name="linkcoupon_block"
                   as="linkcoupon_block"
                   template="linkcoupon/static.phtml"
                   output="toHtml"
            />
</reference>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.