Frage

Ich schreibe eine neue Layout -Datei für ein benutzerdefiniertes Modul. Als Teil davon muss ich die Toplinks zB einbeziehen. Melden Sie sich an, einen Wagen + (Menge), mein Konto, die Wunschliste und auch kürzlich angezeigt und sonst nichts. Meine Layout -Datei sieht so aus,

  <?xml version="1.0"?>
  <layout version="0.1.0">
<dynamicblocks_index_index>
    <block type="core/template" name="root" output="toHtml" template="dynamicblocks/index.phtml" >
        <block type="page/template_links" name="top.links" as="topLinks"/>
        <block type="reports/product_viewed" before="right.permanent.callout" name="right.reports.product.viewed" template="reports/product_viewed.phtml" />
    </block>
</dynamicblocks_index_index>

Ich habe den Link zum Laden der TopLinks von Seite.xml erhalten

  <block type="page/template_links" name="top.links" as="topLinks"/>

Ich bin mir sicher, dass dies die richtigen Informationen auf den Hauptseiten lädt, da ich, wenn ich es kommentiere, alle Top -Links verschwinden. Aber in meinem benutzerdefinierten Layout kann es nur einen Link laden (Anmeldung). Ich kann auch nicht sehen, wie meine Layout -Datei falsch ist oder fälschlicherweise referenziert, da sie die kürzlich angezeigten Produkte wie erwartet laden.

Das Problem, das ich habe, ist, dass die Top -Links nur den Anmeldeverbindungslink zurückgeben. Irgendwelche Ideen dazu?

War es hilfreich?

Lösung

Damit die Seite nur die Links anzeigen kann, musste ich dem XML mitteilen, dass bestimmte Dateien entfernen sollen. Dies ist mein aktualisierter XML

  <dynamicblocks_index_index>

    <reference name="root">
        <action method="setTemplate"><template>dynamicblocks/index.phtml</template></action>
    </reference>   

    <reference name="header">
        <remove name="store_language" />
        <remove name="catalog.topnav" />
        <remove name="top.search" />
    </reference>

    <!-- <block type="reports/product_viewed" before="right.permanent.callout" name="right.reports.product.viewed" template="reports/product_viewed.phtml" /> -->

</dynamicblocks_index_index>

Andere Tipps

Diese Antwort basiert auf der Diskussion.

Bevor Sie fortfahren, müssen Sie dies überprüfen Antworten Um die neue Layout -Vorlage ordnungsgemäß hinzuzufügen.

Ihre Layoutdatei sollte wie:

<?xml version="1.0"?>
<layout version="0.1.0">
    <dynamicblocks_index_index>
        <reference name="root">
            <action method="setTemplate">
                <template>module/file/path/template.phtml</template>
            </action>
        </reference>
    </dynamicblocks_index_index>
</layout>

Und in Ihrer Vorlagendatei haben Sie mitgeteilt, dass der geschriebene Code lautet: $this->getChildHtml();
Eigentlich ist das Problem, dass Sie den Namen des Blocks nicht angegeben hatten. Deshalb bekommen Sie alles, ob Sie nur das brauchen Top -Links. Der Code in Ihrer Vorlagendatei sieht also aus wie:

$this->getChildHtml('top.links');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top