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

22

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

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

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

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

user9718
источник

Ответы:

23

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

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

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

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

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

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

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

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

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

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

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

philwinkle
источник
Это лучшее из всех трех решений ...
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 ...

user1704524
источник
0

Можете попробовать обновление макета

следующий код, как это

<reference name="top.container">
    <block type="core/template"
                   name="linkcoupon_block"
                   as="linkcoupon_block"
                   template="linkcoupon/static.phtml"
                   output="toHtml"
            />
</reference>
Alex
источник