Переместите только приветственное сообщение


Я все искал и искал, и, похоже, не могу найти ни одного конца, чтобы переместить этот фрагмент приветственного сообщения.

Я огляделся и нашел этот вопрос и ответ полезными, но не совсем то, что я искал.

Я нашел эти файлы, о которых говорится в приведенном выше ответе, однако на самом деле я хочу переместить ТОЛЬКО приветственное сообщение. Я бы хотел, чтобы он был во всю ширину над заголовком. Так что в идеале я хотел бы что-то сделать например: но, увы, я не знаю крючка для приветственного сообщения.

Приветственное сообщение находится в html/header.phtml, и на блок ссылаются из этого XML-файла, я не уверен, как ссылаться только на его xml-часть? Я попытался извлечь из ko javascript из заголовка.phtml и сделать его своим собственным в своем собственном бэкэнд-блоке, а затем сослаться на блок в default.xml файл, но это вообще ничего не делает. Просто полностью удаляет его.

Так вот что я подумал будет работать:

Я создал новый шаблон в папке мои темы magento_theme и назвал его config_headergroup_notification.phtml:

<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile

/**
 * @var \Magento\Theme\Block\Html\Header $block
 */
$welcomeMessage = $block->getWelcome();
?>
<?php switch ($block->getShowPart()):
    case 'welcome': ?>
        <li class="greet welcome" data-bind="scope: 'customer'">

                <h1> hello???</h1>
                <span data-bind="html:'<?=$block->escapeHtml($welcomeMessage) ?>'"></span>
            <!-- /ko -->
        </li>
        <script type="text/x-magento-init">
        {
            "*": {
                "Magento_Ui/js/core/app": {
                    "components": {
                        "customer": {
                            "component": "Magento_Customer/js/view/customer"
                        }
                    }
                }
            }
        }
        </script>
    <?php break; ?>

    <?php case 'other': ?>
        <?php echo $block->getChildHtml(); ?>
    <?php break; ?>

<?php endswitch; ?>

Затем добавил части кода header.phtml, который, как я думал, вызовет мое приветственное сообщение.

Затем в моих темах Magento_Theme default.xml файл, который я добавил:

<referenceContainer name="header.panel">
              <block class="Magento\Framework\View\Element\Template" name="config.header.notification" before="-" template="Magento_Theme::config_headergroup_notification.phtml" />
        </referenceContainer>

Но это просто не работает. Я знаю, что функция работает, потому что, если я просто добавлю немного текста в файл config_headergroup_notification.phtml и, конечно, очищу свою тему файлы и кэш текст отображается в разделе "заголовок.панель", но мое приветственное сообщение просто не будет отображаться, если я сделаю какие-либо другие попытки внести изменения.

Итак, я подумал, что смогу найти блок для ссылки и просто переместить его, как я делал с другими в своем default.xml файл. Так что я надеюсь, что мне просто нужно найти название блока ТОЛЬКО для этого приветственного сообщения, а затем переместить его туда, куда я хочу. Как этот первый пример в моем вопросе:

<move element="welcome.message" destination="header.panel" before="-"/>

Может ли кто-нибудь предоставить какие-либо понимание или совет по этому поводу? Я не программист Magento, но у меня есть хорошее представление об этих основных изменениях xml.

Author: kia4567, 2018-10-23

1 answers

Хорошо, я нашел решение, которое работает на мою тему, где родитель пуст.

Yourtheme/Magento_Theme/layout/default.xml

В теге body добавьте следующее:

<referenceBlock name="header.panel">
<block class="Magento\Theme\Block\Html\Header" name="header" as="header" before="-">
    <arguments>
        <argument name="show_part" xsi:type="string">welcome</argument>
    </arguments>
</block>
 </referenceBlock>

Или

 <referenceContainer name="header.panel">
    <block class="Magento\Theme\Block\Html\Header" name="welcome" as="header" before="-">
        <arguments>
            <argument name="show_part" xsi:type="string">welcome</argument>
        </arguments>
    </block>
     </referenceContainer>

И настройте свой файл less примерно так:

li.greet.welcome {
   width: 100%;
   display: block;
   margin: auto;
   background-color: green;
   text-align: center;
}
 2
Author: BartZalas, 2018-10-24 21:53:03