內的Magento的控件佈局我加入一個有特色的產品小部件來使用的Magento 2內置的目錄產品列表控件站點的主頁。什麼我希望做的是延長在vendor/magento/module-catolog/widget/etc/widget.xml
發現,這樣我可以與WYSIWIG
編輯器CMS塊添加此窗口小部件時添加其他模板選項窗口小部件的佈局文件。擴展主題
現在,我已經位於app/design/frontend/Vendor/theme
一個主題,我試圖把我自己的widget.xml
文件在app/design/frontend/Vendor/theme/Magento_CatalogWidget/widget.xml
,但似乎這無法覆蓋原始widget.xml
文件。
這裏是我的代碼:
<widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd">
<widget id="products_list" class="Magento\CatalogWidget\Block\Product\ProductsList" is_email_compatible="true"
placeholder_image="Magento_CatalogWidget::images/products_list.png" ttl="86400">
<label translate="true">Catalog Products List</label>
<description translate="true">List of Products</description>
<parameters>
<parameter name="template" xsi:type="select" required="true" visible="true">
<label translate="true">Template</label>
<options>
<option name="default" value="product/widget/content/grid.phtml" selected="true">
<label translate="true">Products Grid Template</label>
</option>
<option name="default" value="product/widget/content/alternate-grid.phtml" selected="true">
<label translate="true">Alternate Products Grid Template</label>
</option>
</options>
</parameter>
</parameters>
</widget>
</widgets>
我想模板參數中添加一個選項,這樣我可以插入窗口小部件時選擇一個「替代產品網格模板」。
下面是從magento-catalog-widget
原.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd">
<widget id="products_list" class="Magento\CatalogWidget\Block\Product\ProductsList" is_email_compatible="true"
placeholder_image="Magento_CatalogWidget::images/products_list.png" ttl="86400">
<label translate="true">Catalog Products List</label>
<description translate="true">List of Products</description>
<parameters>
<parameter name="title" xsi:type="text" required="false" visible="true">
<label translate="true">Title</label>
</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/content/grid.phtml" selected="true">
<label translate="true">Products Grid 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>
<parameter name="condition" xsi:type="conditions" visible="true" required="true" sort_order="10"
class="Magento\CatalogWidget\Block\Product\Widget\Conditions">
<label translate="true">Conditions</label>
</parameter>
</parameters>
<containers>
<container name="content">
<template name="grid" value="default" />
</container>
<container name="content.top">
<template name="grid" value="default" />
</container>
<container name="content.bottom">
<template name="grid" value="default" />
</container>
</containers>
</widget>
</widgets>
我知道,如果我成功地擴展了文件,因爲我已經嘗試過編輯原始文件並添加在widget時看到我的新的選擇,這將工作管理員。顯然,這不是最好的做法,我希望widget.xml文件只能在我的自定義主題進行擴展。
請注意,我的模板放置在app/design/frontend/Vendor/theme/Magento_CatalogWidget/templates/product/widget/content
之內,其中我有grid.phtml
和alternate-grid.phtml
。我沒有把alternate-grid.phtml
的magento_catalog_widget
目錄中,但我可以改變原有的widget.xml
文件在該目錄中(超出我的主題),當訪問它。這就是爲什麼我相當有信心,這個問題是重寫的插件的佈局文件的問題。
如果任何人都可以回答這個問題,我認爲這可能是給其他開發者非常有幫助,以及因爲這將允許開發者內置的小工具不與基本框架干涉任何Magento的範圍內自定義選項。