Magento XML używający przed / po do umieszczania bloków prawie nigdy nie działa
Jestem front-endowym Magento, zbudowałem kilka własnych motywów i chcę lepiej zrozumieć pozycjonowanie bloków XML Magento ...
Zwykle używam alocal.xml
plik do manipulowania wszystkim, mogę zdefiniować blok w następujący sposób:
<cms_index_index>
<reference name="root">
<block type="core/template" name="example_block" as="exampleBlock" template="page/html/example-block.phtml"/>
</reference>
</cms_index_index>
Spowodowałoby to utworzenie bloku na stronie głównej (cms_index_index
) i ponieważ blok jest tworzony o jeden poziom poniżejroot
, Zwykle dzwoniłbym do bloku, dodając:
<?php echo $this->getChildHtml('exampleBlock') ?>
...do1column.phtml
(lub2columns-left
/right.phtml
, 3columns.phtml
itp). Blok można umieścić na dowolnej stronie, zastępując gocms_index_index
dla odpowiedniego tagu strony.
W podstawowych plikach XML iw samouczkach widzę takie rzeczy, jak poniższe:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
content
jest blokiem, który jest częścią ogólnej struktury strony magento iz tego, co rozumiem,before="content"
powinien umieścić go tam, gdzie się spodziewałeś, bez potrzeby używaniagetChildHtml('exampleBlock')
, do tej pory tak dobrze ... jednak przed / po prawie nigdy nie wydaje mi się działać, a ja często korzystam z metody getChildHtml jako kopii zapasowej, która nie zawsze jest idealna i oznacza edycję większej liczby plików .phtml niż to konieczne .
Próbowałem:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Nic się nie pojawia ...
<reference name="root">
<block type="core/template" name="example_block" after="header" template="page/html/example-block.phtml"/>
</reference>
Nadal nic .... Wiem też o używaniubefore="-"
lubafter="-"
umieścić coś przed wszystkim w jego bloku macierzystym. Od czasu do czasu mam z tym trochę szczęścia, ale generalnie jestem zdezorientowany i sfrustrowany.
Wszedłem w to miejsce po „magento xml przed / po niedziałającym” i zacząłem się zastanawiać, czy to po prostu to się dzieje… czy ktoś może wyjaśnić, kiedy mogę i nie mogę użyć pozycji przed / po do pozycjonowania bloków? Co jest nie tak z powyższymi przykładami?
Jestem w Magento 1.7.0.2 (najnowsze dostępne w momencie wysyłania)
Główną motywacją tego jest zmniejszenie liczby podstawowych plików .phtml, które muszę edytować, aby dodaćgetChildHtml()
, więc jeśli jest inny sposób (XML) na obejście tego, chciałbym wiedzieć ...