magento2의 레이아웃에는 엔티티 referenceBlock
와 referenceContainer
엔티티가 모두 사용됩니다.
그들 사이의 주요 차이점은 무엇이며 어떻게 이러한 엔티티를 magento1. *에 연결할 수 있습니까?
magento2의 레이아웃에는 엔티티 referenceBlock
와 referenceContainer
엔티티가 모두 사용됩니다.
그들 사이의 주요 차이점은 무엇이며 어떻게 이러한 엔티티를 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