page types

Page types are semantic abstractions of those controller actions which are used for page rendering. They help to qualify pages by context type, like Product View page, Shopping Cart page, and so on, providing business users the ability to customize page design. In particular, page types are used in the widget creation to define the pages where a widget can be displayed.

Page types are defined for the frontend area only, that is for the store front pages.

详细的请阅读参考文档。下面说说个人的理解。

page type 是页面的类型,比如产品列表页,不管你浏览的是哪一个产品分类,它的 layout handle 都是 catalog_category_view,而他的 label 是 Catalog Category

你应该已经知道 module 的 layout handle 是怎样申明以及如何对应的,如果不是很清楚,可以参考Magento 2 简介 —— 不再是 MVC (翻译)

page type 的声明

# File: magento\module-catalog\etc\frontend\page_types.xml
<?xml version="1.0"?>
<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_types.xsd">
    <type id="catalog_category_view" label="Catalog Category"/>
    <type id="catalog_product_compare_index" label="Catalog Product Compare List"/>
    <type id="catalog_product_gallery" label="Catalog Product Image Gallery Popup"/>
    <type id="catalog_product_view" label="Catalog Product View (Any)"/>
</page_types>

注意,他只可以用于 frontend,在相应的位置创建 page_types.xml,并像上面那样申明,widget 创建时就可以找到这个页面类型了。

创建 wiget 请参考创建小部件 (Creating a Widget)

下面讲创建小部件与 page types 相关的地方。

Layout Updates 部分点击 Add Layout Update,当你在 Display on 中选择了 Specified Pages 后,在 Page 下拉列表中你就可以看到如下所示的各种 page types。你可以找到 Catalog Category ,这和上面的声明是一致的。

你自己的模块也可以通过声明一个 page type ,这样就可以在创建 widget 时指定它了。

参考文档

Introduction to page types

发表评论

电子邮件地址不会被公开。 必填项已用*标注