Как добавить HTML-код после элемента на главной странице?

magento.stackexchange https://magento.stackexchange.com//questions/78179

  •  13-12-2019
  •  | 
  •  

Вопрос

Чего я хочу добиться, так это того, что у меня есть некоторый HTML-код в cms/homepage/design, который я хочу вставить после определенного элемента на главной странице.Это XML-код:

<cms_index_index translate="label">
        <reference name="content">
            <block type="sama_productblocks/list" name="sama_productblocks_newproducts" after="call_to_actions" template="sama_productblocks/list.phtml">
                <action method="setIdentifier"><id>homepage-latest</id></action>
            </block>

            <block type="core/template" name="top_banners" before="-" template="homepage/topbanners.phtml">
                <block type="experius_linkmanager/link_list" name="homepage_banner">
                    <action method="setIdentifier"><key>hoesjesoutlet-homepage_banner</key></action>
                </block>
                <block type="experius_linkmanager/link_list" name="homepage_small">
                    <action method="setIdentifier"><key>hoesjesoutlet-homepage_small</key></action>
                </block>
            </block>
            <block type="core/template" name="cta_banners" after="modelfilter_search" template="homepage/cta.phtml">
                <block type="experius_linkmanager/link_list" name="homepage_cta">
                    <action method="setIdentifier"><key>hoesjesoutlet-homepage_cta</key></action>
                </block>
            </block>
            <block type="core/template" name="home_text" after="modelfilter_search" template="homepage/text.phtml">
                <!-- Here should I call the html code -->
            </block>
        </reference>
    </cms_index_index>

и содержимое text.phtml должно быть HTML-кодом с вкладки «Дизайн».Ну не хочу я это убирать из дизайна и ставить туда весь html код.Есть ли функция или метод для вызова содержимого дизайна с главной страницы?Это содержимое шаблона/homepage/text.phtml.

<div class="cta_row">
    <?php // echo $this->getChildHtml('homepage_text');
    // here i want to put the html code from the design tab from homepage
    ?>
</div>
Это было полезно?

Решение

Поместите содержимое HTML в новый файл phtml.Вот как вам следует это сделать.

Файл: app\design\frontend\{your_package}\{your_theme}\template\homepage\my_homepage.phtml

<!-- put your html code inside this file -->

т.е. ваши html-коды входят внутрь my_homepage.phtml шаблон.Теперь обновите последнюю часть вашего XML-кода следующим образом.

<block type="core/template" name="home_text" after="modelfilter_search" template="homepage/text.phtml">
    <!-- call to your custom html code block -->
    <block type="core/template" name="my.homepage.block" as="homepage_text" template="homepage/my_homepage.phtml" />
</block>

Теперь убедитесь, что ваш text.phtml держит этот звонок..

<?php echo $this->getChildHtml('homepage_text') ?>

Затем очистите весь кеш и снова загрузите страницу.Вы сделали.

Редактировать

Если вы хотите, чтобы эти HTML-коды можно было редактировать с помощью администратора, то, как вы указали в своем комментарии, поместите эти HTML-коды в статический блок с идентификатором. homepage_custom_code (здесь вы можете использовать что угодно), а затем измените свой XML-код следующим образом.

Подход к обновлению макета

<block type="core/template" name="home_text" after="modelfilter_search" template="homepage/text.phtml">
    <!-- call to your custom html code block -->
    <block type="cms/block" name="my.homepage.sb" as="homepage_text">
         <action method="setBlockId">
               <block_id>homepage_custom_code</block_id>
         </action>
</block>

а затем вызовите свой пользовательский блок text.phtml точно так же, как мы сделали чуть выше ^^^^.

Жесткий подход к кодированию :(Я ненавижу это.)

В противном случае вызовите статический блок непосредственно внутри вашего text.phtml так.

 <?php 
     $this->getLayout()->createBlock(
         'cms/block', 
         'my_custom_text_from_sb', 
          array('block_id' => 'homepage_custom_code')
      )
      ->toHtml() 
  ?>

Оба способа работают.Но я рекомендую первый подход.Для меня это выглядит более понятным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top