מאפשר להכניס לאזורים באתר אזורים פונקציונאלים להצגת קוד .
That are used to add dynamic or static content to store’s pages
VANDOR/MODULE/Block/Widget/Example.php
<?php
namespace LessonBackend\Widgets\Block\Widget;
class Example extends \Magento\Framework\View\Element\Text implements
\Magento\Widget\Block\BlockInterface
{
protected function _beforeToHtml()
{
$this->setText(sprintf(
'example widget: var1=%s, var2=%s',
$this->getData('var1'),
$this->getData('var2')
));
return parent::_beforeToHtml();
}
}VANDOR/MODULE/etc/widget.xml
<widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd">
<widget id="anagal_widget"
class="LessonBackend\Widgets\Block\Widget\Example"
placeholder_image="Magento_Cms::images/widget_block.png">
<label translate="true">Anagal Widget</label>
<description translate="true">This is Custom Widget</description>
<parameters>
<parameter name="var1" xsi:type="select" visible="true"
source_model="Magento\Config\Model\Config\Source\Yesno">
<label translate="true">Yes/No var1</label>
</parameter>
<parameter name="var2" xsi:type="text" required="true"
visible="true">
<label translate="true">Number var2</label>
<depends>
<parameter name="var1" value="1"/>
</depends>
<value>5</value>
</parameter>
</parameters>
</widget>
</widgets>
widget id – חייב להיות יחודי
קלאסס מגדיר : חשוב לרשום את הקלאסס הנכון
class="LessonBackend\Widgets\Block\Widget\Example"
מדריך : https://devdocs.magento.com/guides/v2.4/ext-best-practices/tutorials/custom-widget.html