Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Statischer Block in Sidebar nur bei einer bestimmten Kategorie - Eigenes Layoutupdate?! 
 
21cdb
Jr. Member
 
Total Posts:  19
Joined:  2008-03-19
 

Ziel
Wir möchten in der Linken Sidebar einen Block erzeugen der einen einfachen HTML Link enthält. Dieser Block soll nur erscheinen wenn man sich in einer bestimmten Kategorie (in diesem Fall Lederpuschen) befindet.

bisherige Umsetzung

1. Im Admin über den punkt CMS - Statische Blöcke einen Block erstellt. (Siehe Anhang Bild 10.png)
Blocktitel: Größentabelle
Seitenbezeichner: sizetable
Status: Aktiviert
Inhalt: Link zur Größentabelle (nur zu Testzwecken)

2. Katalog -> Kategorien verwalten, hier auf der linken Seite die Kategorie auswählen in der später der Block erscheinen soll.
Daraufhin “Eigene Gestaltung” bei den oberen Optionsreitern auswählen (siehe Anhang Bild 11.png)

Hier bei eigenes Layoutupdate folgendes eingetragen:

<reference name="left">
<
action method="setBlockId"><block_id>sizetable</block_id>
</
action>
</
reference>

Leider funktioniert dies jedoch nicht! Der Block wird nicht angezeigt! Weiß jemand was wir hier falsch machen?

Image Attachments
Bild 10.pngBild 11.png
 
Magento Community Magento Community
Magento Community
Magento Community
 
Rico_Neitzel
Moderator
 
Avatar
Total Posts:  857
Joined:  2007-09-05
Würzburg, Germany
 

euer codeschnipsel ist glaube ich nicht richtig.

versucht mal folgendes

<reference name="left">
      <
block type="cms/block" name="left.static.sizetable">
          <
action method="setBlockId"><block_id>sizetable</block_id></action>
      </
block>
  </
reference>

LG rico

 
Magento Community Magento Community
Magento Community
Magento Community
 
21cdb
Jr. Member
 
Total Posts:  19
Joined:  2008-03-19
 

Vielen Dank Rico,

nach deiner Methode funktioniert es. Ich muss gestehen ich finde es sehr verwirrend wie solche Dinge in Magento gehandhabt werden. Hat man es einmal verstanden geht es ja dann wirklich sehr leicht. Aber woher weiß ich sowas? Ich persönlich habe wirklich schon viel gesucht und gelesen, bin aber bislang noch nicht einer anständigen Dokumentation fündig geworden.

Ich weiß es gibt eine Möglichkeit die Position des neuen Blocks innerhalb der Sidebar zu verschieben (der neue Block soll ganz oben erscheinen, akuell erscheint er ganz unten). Ich werde selbst danach suchen, habe es jetzt nicht griffberiet. Solltest du zufällig noch einmal hier drüberlesen und du weißt es aus dem Kopf bin ich über eine Antwort natürlich sehr dankbar!

Vielen Dank vorab für die schnelle Hilfe bei obigem Problem!
21cdb

 
Magento Community Magento Community
Magento Community
Magento Community
 
21cdb
Jr. Member
 
Total Posts:  19
Joined:  2008-03-19
 

Der Vollständigkeit halber, ich habe den Artikel wieder gefunden:

http://www.magentocommerce.com/boards/viewthread/7020/#t26003

Zitat:

You can use the ‘before’ and ‘after’ attribute in the block tag to position the blocks.
1. before="-" positions the block before all other blocks
2. after="-" positions the block after all other block
3. before="some_block" positions this block before another block with name="some_block"
4. after="some_block" position this block after another block with name="some_block"

For example <block name="this_block" before="that_block"/>

 
Magento Community Magento Community
Magento Community
Magento Community
 
Rico_Neitzel
Moderator
 
Avatar
Total Posts:  857
Joined:  2007-09-05
Würzburg, Germany
 

richtig - entweder damit, wenn du neue blöcke einfügst alternativ kannst du natürlich den block innerhalt der XMLDatei einfach um die entsprechende position nach oben verschieben. das geht genauso.

LG Rico

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

Hallo,

ich habe ein ähnliches Problem.
Ich habe einen statischen Block über das Admin Panel angelegt, den ich auf allen Kategorieseiten anzeigen lassen will.
Diesen habe ich in der category.xml eingefügt.

<reference name="right">
    <
block type="cms/block" name="coupon_block" before="-">
        <
action method="setBlockId"><block_id>coupon_block</block_id></action>
    </
block>    
</
reference>

aber aus irgendeinem Grund kommt der Block trotz before="-" immer ziemlich am Schluss.
Die Reihenfolge ist zur Zeit:
- \reports/product_viewed.phtml (Recently Viewed Products )
-\checkout/cart/sidebar.phtml
- My Cart
- recently added products
- coupon block (den ich eingefügt habe)
-catalog/product/compare/sidebar.phtml (compare products)

Wo wird die Reihenfolge noch beeinflusst als in der catalog.xml ?
und warum scheint es in der catalog.xml nicht auf der Schreibweise, die in dem vorigen post beschrieben ist mit name="right.static.coupon_block" zu bestehen?

lg,
Johanna

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

Hallo,

wenn ich den Block, so wie im Post beschrieben, statt in der catalog.xml, im Admin-Panel unter ‘Kategorien verwalten’, eintrage, scheint er den Eintrag before="-" zu erkennen, in der catalog.xml unter <default> ist es ihm offenbar egal.

Aber: ich möchte den Block eigentlich für alle Kategorien und Unterkategorien anzeigen lassen, und, wenn ich in der Kategorie im Dropdownfeld ‘für diese Kategorie und alle Unterkategorien anzeigen’ auswähle, kommt der Block trotzdem nur direkt in der Kategorie zum Vorschein, wo ich ihn im Backend eintetragen habe, in den Unterkategorien nicht mehr.

Woran kann das wohl liegen? Eigentlich hatte ich auch gedacht, dass ich mir mit dem Eintrag in der catalog.xml es ersparen könnte, den Block jetzt wirklich für alle Kategorien und Unterkategorien händisch einzutragen…

Das wird ziemlich mühsam so. Kann mir jemand erklären (möglichst detailliert, bin ein ziemlicher Anfänger), wie ich dabei vorgehen muss? auch vor allem wegen der Reihenfolge der Blöcke, falls es doch besser über die catalog.xml zu lösen ist.

vielen Dank und liebe Grüße,
Johanna

 
Magento Community Magento Community
Magento Community
Magento Community
 
ds_1984
Mentor
 
Avatar
Total Posts:  3116
Joined:  2008-12-09
Potsdam, Germany
 

Woher hast du denn eine category.xml - die kenne ich gar nicht…

Da es ja um eine Kategorie geht , wäre wichtig wo in der catalog.xml du deine Veränderungen einfügst.

Achte auf die folgenden Kommentare in der Datei:

<!--
Category default layout
-->

und

<!--
Category layered navigation layout
-->

Das sind die Bereiche um die es geht. “default” ist zunächst global für alle Seiten egal ob Kategorie oder Produktseite.

Liebe Grüße - Daniel

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

Hallo ds_1984,

jetzt habe ich erst mal etwas suchen müssen, bis ich gefunden habe, wie du auf category.xml gekommen bist. Stimmt in meinem ersten Post hatte ich mich vertippt, catalog.xml habe ich natürlich gemeint red face

Den Eintrag hatte ich im <default> Bereich der catalog.xml gemacht. Ich habe den Block jetzt in eine eigene phtml-Datei ausgelagert. Damit steht jetzt in der catalog.xml folgendes:

<reference name="right">
        <
block type="catalog/navigation" name="catalog.coupon" template="catalog/navigation/coupon.phtml" before="-" /> 
           <
block type="core/template" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
            <!--<
block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml"/> -->
        </
reference>

ich würde daraus schließen, dass coupon.phtml grundsätzlich vor allem anderen geladen wird, oder habe ich was falsch verstanden?
Tatsache ist jedenfalls, dass coupon.phtml ganz am schluss geladen wird.
Die Reihenfolge ist jetzt:
- Recently viewed products
- My cart
- recently added products
- compare products
- Coupon block von mir

Ich habe festgestellt, dass in der report.xml folgendes geladen wird:

<layout version="0.1.0">
    <default>
        <!-- 
Mage_Reports -->
        <
reference name="right">
          <
block type="reports/product_viewed" before="right.permanent.callout" name="right.reports.product.viewed" template="reports/product_viewed.phtml" />
            <
block type="reports/product_compared" before="right.permanent.callout" name="right.reports.product.compared" template="reports/product_compared.phtml" />
        </
reference>
    </default>
</
layout>

im <default> Bereich von checkout.xml steht schließlich folgender Code

<reference name="right">
            <
block type="checkout/cart_sidebar" name="cart_sidebar" template="checkout/cart/sidebar.phtml" before="-">
                <
action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action>
                <
action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action>
                <
action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action>
            </
block
        </
reference>

Ich habe mit den einzelnen Teilen etwas herumgespielt, aber ich komme nicht wirklich drauf, wie die Reihenfolge dabei festgelegt wird. Vor allem warum das ‘recently viewed products’ so hartnäckig ganz oben erscheint, ist mir ein Rätsel. Sollte das sich nicht gleich verhalten, wie das ‘compared products’?

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

Hallo,

inzwischen habe ich es irgendwie hinbekommen, dass die Reihenfolge der Blöcke wie gewünscht stattfindet. Ich kann allerdings so im nachhinein nicht mehr eruieren was vorher falsch war und jetzt anders ist red face

dafür hab ich jetzt auch ein ziemlich ähnliches Problem: ich möchte die Suchbox vom Header in den linken Sidebar bekommen, und zwar als untersten Eintrag. in der catalogsearch.xml habe ich bereits im <default>-Bereich den Teil
<reference name="header">
in
<reference name="left"> geändert. Damit kommt die Suchbox auch brav in der linken Seite, aber sehr hartnäckig immer über allen anderen Einträgen grrr
im <default>-Bereich der catalogsearch.xml steht damit für den Bereich “left” folgendes drin:

<reference name="left">
            <
block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml" after="-"/>
 </
reference>

mit dem after="-" sollte es doch immer ganz unten kommen, oder nicht? Ich sehe eigentlich auch nicht, dass in irgeneiner xml-Datei vielleicht noch einer anderes after="-" für den linken Bereich stehen würde, das sich mit diesem Eintrag spießen würde.

Kann mir da jemand einen Tip geben, woran das liegen könnte?

lg,
Johanna

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top