Magento Eigene Layout und Z-Block Extension

Platzierung eines Z-Blocks unter einer eigenen Layout

Zur Definition einer eigenen Layout muss man nur eine Extension erstellen und unter /app/local/IhrName/ExtensionName/etc/config.xml anlegen.

<?xml version=”1.0″?>
<config>
<global>
<page>
<layouts>

<ehdel_page_one module=”page” translate=”label”>
<label>Ehdel Z-Block (Left)</label>
<template>page/2columns-left.phtml</template>
<layout_handle>page_ehdel_page_one</layout_handle>
</ehdel_page_one>

</layouts>
</page>
</global>
</config>

Unter /app/etc/modules/IhrName_ExtensionName.xml anlegen.

<?xml version=”1.0″?>
<config>
<modules>
<Ehdel_CmsPageLayouts>
<codePool>local</codePool>
<active>true</active>
</Ehdel_CmsPageLayouts>
</modules>
</config>

Dann unter /app/design/frontend/base/default/layout/cms.xml anzupassen. Einfach am Schluss vor </layout> den Layout-Handle eintragen.

<page_ehdel_page_one>
<reference name=”left”>
<block type=”zblocks/block” name=”zblock-left” before=”-“>
<action method=”setPosition”>
<position>pos-ehdel-left-block</position>
</action>
</block>
</reference>
</page_ehdel_page_one>

</layout>

Zwischen <page_ehdel_page_one> muss nix eintragen werden, da ich vorhabe, die Layout durch XML unter jeweiligen Seiten, die die Layout verwenden, anzupassen. Also trage ich die XML dort ein.

Speziell für ZBlocks sehen die Codes so aus. (hier um einen Block in den linken Spalt einzufügen)

<reference name=”left”>
<block type=”zblocks/block” name=”zblock-left” before=”-“>
<action method=”setPosition”>
<position>pos-navi-zigw</position>
</action>
</block>
</reference>

name “zblock-left” identifiziert einen Block. Um die Codes unter cms.xml zu überscheiben, muss zblock-left wie im cms.xml eintragen werden. Also der Name bleibt gleich. Position ist die anzuzeigende Inhalt. Position wird im Backend unter CMS / Z-Blocks definiert. Jeder Block bekommt einen Titel (egal was, scheinbar nicht beim Aufruf verwendet) und eine Position.

Bemerkung: Die Position in der cms.xml sollte eher als Dummy verwendet werden. Wenn wir wirklich dafür einen Block erstellen. Wird dieser Block immer angezeigt, auch wenn ich nur z.B. eine andere Position anzeige wollte. Also die Codes lässt sich nicht mehr überscheiben. Wahrscheinlich liegt an before=”-“. Gibt es eine Möglichkeit, dass nur einen block angezeigt und gestoppt wird?

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *


1 + five =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>