Frage

Was ich erreichen möchte, ist, dass ich im cms/homepage/design HTML-Code habe, den ich nach einem bestimmten Element in der Homepage einfügen möchte.Dies ist der XML-Code:

<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>

und der Inhalt der text.phtml sollte der HTML-Code aus der Registerkarte „Design“ sein.Nun, ich möchte es nicht aus dem Design entfernen und den gesamten HTML-Code darin einfügen.Gibt es eine Funktion oder Methode, um den Inhalt des Designs von der Homepage aus aufzurufen?Dies ist der Inhalt der template/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>
War es hilfreich?

Lösung

Fügen Sie Ihren HTML-Inhalt in eine neue HTML-Datei ein.So sollten Sie es machen.

Datei: app\design\frontend\{your_package}\{your_theme}\template\homepage\my_homepage.phtml

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

Das heißt, Ihre HTML-Codes kommen hinein my_homepage.phtml Vorlage.Aktualisieren Sie nun den letzten Teil Ihres XML-Codes wie folgt.

<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>

Stellen Sie jetzt sicher, dass Sie text.phtml hält diesen Anruf..

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

Leeren Sie dann den gesamten Cache und laden Sie die Seite erneut.Du bist fertig.

Bearbeiten

Wenn Sie möchten, dass diese HTML-Codes vom Administrator aus bearbeitet werden können, fügen Sie diese HTML-Codes, wie Sie in Ihrem Kommentar angegeben haben, in einen statischen Block mit einer Kennung ein homepage_custom_code (Sie können hier alles verwenden) und ändern Sie dann Ihren XML-Code wie folgt.

Ansatz zur Layoutaktualisierung

<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>

und rufen Sie dann Ihren benutzerdefinierten Block auf text.phtml So wie wir es oben gemacht haben ^^^^.

Hard-Coding-Ansatz :(Ich hasse das.)

Andernfalls rufen Sie Ihren statischen Block direkt in Ihrem auf text.phtml so was.

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

Beides funktioniert.Aber ich empfehle den ersten Ansatz.Für mich sieht es klarer aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top