両方referenceBlock
とreferenceContainer
エンティティは、magento2のレイアウトで使用されます。
それらの主な違いは何ですか?これらのエンティティをmagento1。*に関連付けるにはどうすればよいですか?
両方referenceBlock
とreferenceContainer
エンティティは、magento2のレイアウトで使用されます。
それらの主な違いは何ですか?これらのエンティティをmagento1。*に関連付けるにはどうすればよいですか?
回答:
基本的に、コンテナはcore/text_list
magento 1 のブロックに相当します。
「哲学的に」同じように機能しますが、唯一の違いは、containers
他の子ブロックのみをサポートする定義済みブロックです。
いくつかの例はcontent
、after.body.start
、header-wrapper
。
たとえば、で定義されたすべてのコンテナを確認できますMagento/Theme/view/base/page_layout/*
。
以下に例を示しempty.xml
ます。
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
<container name="root">
<container name="after.body.start" as="after.body.start" before="-" label="Page Top"/>
<container name="page.wrapper" as="page_wrapper" htmlTag="div" htmlClass="page-wrapper">
<container name="global.notices" as="global_notices" before="-"/>
<container name="main.content" htmlTag="main" htmlId="maincontent" htmlClass="page-main">
<container name="columns.top" label="Before Main Columns"/>
<container name="columns" htmlTag="div" htmlClass="columns">
<container name="main" label="Main Content Container" htmlTag="div" htmlClass="column main"/>
</container>
</container>
<container name="page.bottom" as="page_bottom" label="Before Page Footer Container" after="main.content" htmlTag="div" htmlClass="page-bottom"/>
<container name="before.body.end" as="before_body_end" after="-" label="Page Bottom"/>
</container>
</container>
</layout>
基本的に<container name="..." />
でアクセスできるものとして定義されているものreferenceContainer
。として<block .... />
参照できるものとして宣言されているものreferenceBlock