Как добавить блок на домашней странице над содержимым, под навигацией только на главной странице?


22

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

Я использую Magento версии 1.9.

Смотрите изображение:

Введите описание изображения здесь

Ответы:


23

Вам не нужно создавать модуль вообще. Вы можете использовать виджеты в Magento 1.4+:

Нажмите на CMS> Виджеты:

введите описание изображения здесь

Нажмите «Добавить новый экземпляр виджета»:

введите описание изображения здесь

Выберите «CMS Static Block» и название вашей темы:

введите описание изображения здесь

Затем в разделе «Свойства внешнего интерфейса» присвойте ему заголовок и нажмите «Добавить обновление макета» и настройте его, как показано, для отображения только на домашней странице в главном блоке контента:

введите описание изображения здесь

В разделе Widget Options выберите статический блок, который вы хотите отобразить:

введите описание изображения здесь


Это лучшее из всех трех решений ...
user1704524

Есть ли способ сделать это в 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

Спасибо за это! Но я пытаюсь сделать это до появления панировочных сухарей. Я пытался раньше = "breadcurmbs", но он говорит, что XML является недействительным. Как я могу сделать эту работу?
Алисса Рейес

@AlyssaReyes Если бы вы использовали «хлебные крошки», вы могли бы попробовать «хлебные крошки»: p
Мартен Вольфсен,

6

Попробуйте это всегда работает

<reference name="after_body_start">
    <block type="core/template"  name="block_name" template="template/template.phtml" />
</reference>

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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.