Wie füge ich nach einem Element auf der Homepage HTML-Code hinzu?
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>
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.