2010-12-15 5 views
1

Ich versuche mein Bestes, um das Magento-Design so zu bearbeiten, wie sie möchten (mit einer local.xml anstatt die page.xml bearbeiten), aber dies System ist so schrecklich und verschlungen, es erweist sich als sehr schwierig, dies zu tun.Kann nicht top.links (topLinks) blockieren in Magento

Das Problem, das ich jetzt habe, ist, dass ich nicht scheinen kann, den "top.links" -Block in einen anderen Block in der Kopfzeile zu verschieben. Momentan befindet sich dieser Block in page.xml im Kopfblock. Ich habe absolut alles in meiner local.xml versucht, um dies zum Laufen zu bringen, ich habe die folgenden Änderungen ausprobiert.

Entfernen Sie top.links aus der Kopfzeile, fügen Sie den "Hud" -Block hinzu.

<layout version="0.1.0"> 

    <default> 
     <!-- Here is where we edit the header block --> 
     <reference name="header"> 
      <remove name="top.links" /> 
      <remove name="top.search" /> 
      <!-- This is the block that holds the HUD --> 
      <block type="page/html" name="hud" as="hud" template="page/html/hud.phtml"> 
       <block type="page/template_links" name="top.links" as="topLinks" /> 
      </block> 
     </reference> 
    </default> 

</layout> 

alt text

Beachten Sie, dass die Verbindungen innerhalb des braunen Kasten sein sollte (dies ist der HUD-Block).

Entfernen nicht der top.links Block von Header aber das Hinzufügen zu Hud Block

<layout version="0.1.0"> 

    <default> 
     <!-- Here is where we edit the header block --> 
     <reference name="header"> 
      <remove name="top.search" /> 
      <!-- This is the block that holds the HUD --> 
      <block type="page/html" name="hud" as="hud" template="page/html/hud.phtml"> 
       <block type="page/template_links" name="top.links" as="topLinks" /> 
      </block> 
     </reference> 
    </default> 

</layout> 

alt text

Erstellt neue Vorlage Verbindungen basierend auf Code von top.links und bezeichnet dies in der Block des HUD wie folgt.

<layout version="0.1.0"> 

    <default> 
     <!-- Here is where we edit the header block --> 
     <reference name="header"> 
      <remove name="top.links" /> 
      <remove name="top.search" /> 
      <!-- This is the block that holds the HUD --> 
      <block type="page/html" name="hud" as="hud" template="page/html/hud.phtml"> 
       <block type="page/template_links" name="hud.links" as="hudLinks" template="page/template/hudLinks.phtml"/> 
      </block> 
     </reference> 
    </default> 

</layout> 

Unten ist hud.phtml

<!-- hud.phtml --> 
<div id="hud"> 
    <h3>Welcome</h3> 
    <?php echo $this->getChildHtml('hudLinks') ?> 
    <?php echo $this->getChildHtml('top.search') ?> 
</div> 

Damit werden die interessantesten Ergebnisse bringt. Ich kann sehen, dass die Vorlage gefunden wurde, aber nichts erscheint.

alt text

Ich bin wirklich ratlos mit diesem. Mache ich hier etwas völlig Falsches? Für das, was es wert ist, hier ist der Code, den ich für hudLinks.phtml und die Vorlage top.links verwende.

+0

Ich sehe kein Problem mit der Bearbeitung von 'page.xml', wenn es ein eigenes Thema ist. – clockworkgeek

+0

Das Thema, mit dem ich begonnen habe, verwendet im Grunde die Datei page.xml in der Basis von Magento. Ich habe versucht, dies mit der Verwendung einer page.xml-Datei im Layout-Ordner meines eigenen Themas zu überschreiben, aber es schien nicht zu funktionieren. Vielen Dank für Ihre Antwort. –

Antwort

2

"Entfernen" -Regeln werden am Ende verarbeitet, denke ich, also müssen Sie den Namen des Blocks ändern, den Sie einfügen. Nun sieh mal, wie ein Link hinzugefügt:

app/design/frontend/base/default/layout/customer.xml 
51:  <reference name="top.links"> 
52-   <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action> 
53-  </reference> 

Der Link werden den Block namens top.links hinzugefügt. Deshalb ist dein neuer Block leer. Lösung: Durchsuchen Sie XML-Dateien nach Vorkommen von top.links und fügen Sie den gefundenen Code zur Datei local.xml hinzu.

+0

Ich habe bereits den gleichen Code aus anderen XML-Dateien kopiert und eingefügt, wenn Sie diese Instanz verwenden. Ich werde den oben angegebenen Code ausprobieren und einen Kommentar abgeben. Danke für Ihre Antwort greg0ire. –

+0

@Liam Spencer: Nachdem Sie den Code kopiert und eingefügt haben, stellen Sie sicher, dass Sie das name-Attribut Ihres Referenz-Tags an den Namen Ihres neu erstellten Blocks anpassen. – greg0ire

+0

Vielen Dank für die Hilfe.Dies scheint für mich funktioniert zu haben und hat mir vielleicht geholfen, das Magento-System ein wenig mehr zu verstehen. Ich bin mir sicher, dass ich in Zukunft weitere Fragen stellen werde! Danke noch einmal! –

Verwandte Themen