【问题标题】:Custom targets for widget Layout Updates in Magento 2Magento 2 中小部件布局更新的自定义目标
【发布时间】:2016-06-28 05:07:55
【问题描述】:

我想帮助解决如何将自定义容器添加为小部件的“布局更新”..

目前,我只有 3 个基本选项可供选择(主内容区、侧边栏主和侧边栏附加),但我希望能够将小部件添加到通过各种 default.xml 文件创建的容器中.

我该怎么做呢?

谢谢, 卢克

【问题讨论】:

    标签: magento magento2


    【解决方案1】:

    在 widget.xml 中你创建了额外的区域。在目录模块下你可以看到。

    <widget id="new_products" class="Magento\Catalog\Block\Product\Widget\NewWidget" is_email_compatible="true"
            placeholder_image="Magento_Catalog::images/product_widget_new.png" ttl="86400">
        <label translate="true">Catalog New Products List</label>
        <description translate="true">List of Products that are set as New</description>
        <parameters>
            <parameter name="display_type" xsi:type="select" required="true" visible="true">
                <label translate="true">Display Type</label>
                <description translate="true">All products - recently added products, New products - products marked as new</description>
                <options>
                    <option name="default" value="all_products" selected="true">
                        <label translate="true">All products</label>
                    </option>
                    <option name="item" value="new_products">
                        <label translate="true">New products</label>
                    </option>
                </options>
            </parameter>
            <parameter name="show_pager" xsi:type="select" visible="true"
                       source_model="Magento\Config\Model\Config\Source\Yesno">
                <label translate="true">Display Page Control</label>
            </parameter>
            <parameter name="products_per_page" xsi:type="text" required="true" visible="true">
                <label translate="true">Number of Products per Page</label>
                <depends>
                    <parameter name="show_pager" value="1" />
                </depends>
                <value>5</value>
            </parameter>
            <parameter name="products_count" xsi:type="text" required="true" visible="true">
                <label translate="true">Number of Products to Display</label>
                <value>10</value>
            </parameter>
            <parameter name="template" xsi:type="select" required="true" visible="true">
                <label translate="true">Template</label>
                <options>
                    <option name="default" value="product/widget/new/content/new_grid.phtml" selected="true">
                        <label translate="true">New Products Grid Template</label>
                    </option>
                    <option name="list" value="product/widget/new/content/new_list.phtml">
                        <label translate="true">New Products List Template</label>
                    </option>
                    <option name="list_default"
                            value="product/widget/new/column/new_default_list.phtml">
                        <label translate="true">New Products Images and Names Template</label>
                    </option>
                    <option name="list_names"
                            value="product/widget/new/column/new_names_list.phtml">
                        <label translate="true">New Products Names Only Template</label>
                    </option>
                    <option name="list_images"
                            value="product/widget/new/column/new_images_list.phtml">
                        <label translate="true">New Products Images Only Template</label>
                    </option>
                </options>
            </parameter>
            <parameter name="cache_lifetime" xsi:type="text" visible="true">
                <label translate="true">Cache Lifetime (Seconds)</label>
                <description translate="true">86400 by default, if not set. To refresh instantly, clear the Blocks HTML Output cache.</description>
            </parameter>
        </parameters>
        <containers>
            <container name="sidebar.main">
                <template name="default" value="list_default" />
                <template name="names_only" value="list_names" />
                <template name="images_only" value="list_images" />
            </container>
            <container name="content">
                <template name="grid" value="default" />
                <template name="list" value="list" />
            </container>
            <container name="sidebar.additional">
                <template name="default" value="list_default" />
                <template name="names_only" value="list_names" />
                <template name="images_only" value="list_images" />
            </container>
        </containers>
    </widget>
    

    请翻看上面的代码&lt;containers&gt;标签你就明白了。有一个容器标签

    【讨论】:

    • 感谢您的回复。我想我应该提到我一直在尝试将额外的容器添加到 module-reports/etc/widget.xml 文件中,因为我正在尝试将最近查看的小部件添加到新容器中,但它们没有出现在 CMS 中。
    • 它对我有用。在查看产品后将最近查看的小部件添加到主页,然后检查您的主页。
    • 您应该在页面布局中包含自定义容器
    • 谢谢伙计,问题是我设置的自定义容器没有标签属性,所以 Magento 忽略了它作为可能的布局目标。我现在必须弄清楚如何在不编辑核心文件的情况下将我的 节点添加到最近查看的小部件的 节点...
    猜你喜欢
    • 1970-01-01
    • 2015-01-16
    • 2016-10-09
    • 2014-08-29
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多