Add templates from other repository

https://github.com/staempfli/magento2-phpstorm-templates
This commit is contained in:
Peter Stuifzand 2018-10-31 09:39:34 +01:00
commit 8f21debd83
11 changed files with 849 additions and 0 deletions

View File

@ -0,0 +1,5 @@
<?php
#parse("stmpfl_variables.txt")
#parse("stmpfl_header_php.php")
?>

3
fileTemplates/2M XML.xml Normal file
View File

@ -0,0 +1,3 @@
#parse("stmpfl_variables.txt")
#parse("stmpfl_header_xml.xml")

View File

@ -0,0 +1,17 @@
{
"name": "${COMPOSER_NAME}",
"description": "${DESCRIPTION}",
"require": {
"php": "~5.6.0|~7.0.0"
},
"type": "magento2-module",
"license": [
"BSD-3-Clause"
],
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"${NAMESPACE}\\\\${MODULE_NAME}\\": ""
}
}
}

View File

@ -0,0 +1,2 @@
#parse("stmpfl_variables.txt")
#parse("stmpfl_header_js.js")

View File

@ -0,0 +1,6 @@
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'${VendorName}_${ModuleName}',
__DIR__
);

View File

@ -0,0 +1,6 @@
/**
* ${NAME}
*
* @copyright Copyright © ${YEAR} ${company}. All rights reserved.
* @author ${userEmail}
*/

View File

@ -0,0 +1,6 @@
/**
* ${NAME}
*
* @copyright Copyright © ${YEAR} ${company}. All rights reserved.
* @author ${userEmail}
*/

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* ${NAME}
*
* @copyright Copyright © ${YEAR} ${company}. All rights reserved.
* @author ${userEmail}
*/
-->

View File

@ -0,0 +1,2 @@
#set($company = "<company_name>")
#set($userEmail = "<user_email>")

View File

@ -0,0 +1,13 @@
<?php
#parse("stmpfl_variables.txt")
#parse("stmpfl_header_php.php")
#if (${NAMESPACE})
namespace ${NAMESPACE};
#end
class ${NAME} {
}

View File

@ -0,0 +1,780 @@
<templateSet group="StmpflMagento2">
<template name="2magento sequence" value="&lt;sequence&gt;&#10; &lt;module name=&quot;$VendorName_ModuleName$&quot;/&gt;&#10;&lt;/sequence&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="VendorName_ModuleName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento system section" value="&lt;section id=&quot;$section$&quot; translate=&quot;label&quot; type=&quot;text&quot; sortOrder=&quot;999&quot; showInDefault=&quot;1&quot; showInWebsite=&quot;0&quot; showInStore=&quot;0&quot;&gt;&#10; &lt;label&gt;$capitalizedSection$&lt;/label&gt;&#10; &lt;tab&gt;$tab$&lt;/tab&gt;&#10; &lt;resource&gt;$resource$&lt;/resource&gt;&#10; &lt;group id=&quot;$group$&quot; translate=&quot;label&quot; type=&quot;text&quot; sortOrder=&quot;1&quot; showInDefault=&quot;1&quot; showInWebsite=&quot;0&quot; showInStore=&quot;0&quot;&gt;&#10; &lt;label&gt;$capitalizedGroup$&lt;/label&gt;&#10; &lt;field id=&quot;$field$&quot; translate=&quot;label&quot; type=&quot;$type$&quot; sortOrder=&quot;1&quot; showInDefault=&quot;1&quot; showInWebsite=&quot;0&quot; showInStore=&quot;0&quot;&gt;&#10; &lt;label&gt;$capitalizedField$&lt;/label&gt;&#10;&lt;!-- &lt;comment&gt;Some comment here...&lt;/comment&gt; --&gt;&#10;&lt;!-- &lt;frontend_class&gt;required-entry&lt;/frontend_class&gt; --&gt;&#10; &lt;/field&gt;&#10; &lt;/group&gt;&#10;&lt;/section&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="section" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedSection" expression="capitalize(section)" defaultValue="" alwaysStopAt="false" />
<variable name="tab" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="resource" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="group" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedGroup" expression="capitalize(group)" defaultValue="" alwaysStopAt="false" />
<variable name="field" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedField" expression="capitalize(field)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento admin menu active" value="$resultPage-&gt;setActiveMenu('$Menu$')&#10; -&gt;addBreadcrumb(__('$breadcrum1$'), __('$breadcrum1$'))&#10; -&gt;addBreadcrumb(__('$breadcrum2$'), __('$breadcrum2$'));&#10;$resultPage-&gt;getConfig()-&gt;getTitle()-&gt;prepend(__('$title$'));" description="" toReformat="false" toShortenFQNames="true">
<variable name="Menu" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="breadcrum1" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="breadcrum2" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="title" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento grid text column" value="&lt;column name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;filter&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;editor&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;editorType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;!-- validators here... --&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento grid select column" value="&lt;column name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;options&quot; xsi:type=&quot;object&quot;&gt;$sourceModel$&lt;/item&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;filter&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;component&quot; xsi:type=&quot;string&quot;&gt;Magento_Ui/js/grid/columns/select&lt;/item&gt;&#10; &lt;item name=&quot;editor&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="sourceModel" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento grid date column" value="&lt;column name=&quot;$fieldName$&quot; class=&quot;Magento\Ui\Component\Listing\Columns\Date&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;filter&quot; xsi:type=&quot;string&quot;&gt;dateRange&lt;/item&gt;&#10; &lt;item name=&quot;component&quot; xsi:type=&quot;string&quot;&gt;Magento_Ui/js/grid/columns/date&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;date&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento grid store column" value="&lt;column name=&quot;store_id&quot; class=&quot;Magento\Store\Ui\Component\Listing\Column\Store&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;bodyTmpl&quot; xsi:type=&quot;string&quot;&gt;ui/grid/cells/html&lt;/item&gt;&#10; &lt;item name=&quot;sortable&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;Store View&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento fieldset" value="&lt;fieldset name=&quot;$fieldsetId$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldsetName$&lt;/item&gt;&#10; &lt;item name=&quot;collapsible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;opened&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;number&quot;&gt;$order$&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;!-- Add your fields here --&gt;&#10; $END$&#10;&lt;/fieldset&gt;&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldsetId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldsetName" expression="capitalize(fieldsetId)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field text" value="&lt;field name=&quot;$fieldId$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; translate=&quot;true&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;input&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldId)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field select" value="&lt;field name=&quot;$fieldId$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;options&quot; xsi:type=&quot;object&quot;&gt;$UiComponent$&lt;/item&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; translate=&quot;true&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="UiComponent" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldId)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field date" value="&lt;field name=&quot;$fieldId$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; translate=&quot;true&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;date&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;validation&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;validate-date&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldId)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento widget param select" value="&lt;parameter name=&quot;$name$&quot; xsi:type=&quot;select&quot; source_model=&quot;$source$&quot; visible=&quot;true&quot; sort_order=&quot;$sortOrder$&quot; &gt;&#10; &lt;label translate=&quot;true&quot;&gt;$label$&lt;/label&gt;&#10;&lt;/parameter&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="source" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="sortOrder" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="label" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento widget param text" value="&lt;parameter name=&quot;$name$&quot; xsi:type=&quot;text&quot; visible=&quot;true&quot; sort_order=&quot;$sortOrder$&quot; &gt;&#10; &lt;label translate=&quot;true&quot;&gt;$label$&lt;/label&gt;&#10;&lt;/parameter&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="sortOrder" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="label" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento javascript" value="&lt;script type=&quot;text/x-magento-init&quot;&gt;&#10; {&#10; &quot;*&quot;: {&#10; &quot;$objectName$&quot;: {&#10; &quot;$option1$&quot;: &quot;$value1$&quot;,&#10; &quot;$option2$&quot;: &quot;$value2$&quot;&#10; }&#10; }&#10; }&#10;&lt;/script&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="objectName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="option1" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="value1" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="option2" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="value2" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="HTML" value="true" />
</context>
</template>
<template name="2magento phpcs ignore block" value="//@codingStandardsIgnoreStart&#10;$SELECTION$&#10;//@codingStandardsIgnoreEnd" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="HTML" value="true" />
<option name="XML" value="true" />
<option name="CSS" value="true" />
<option name="JAVA_SCRIPT" value="true" />
<option name="SQL" value="true" />
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento phpcs ignore line" value="//@codingStandardsIgnoreLine" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento config save" value="/** @var \Magento\Config\Model\ResourceModel\Config $this-&gt;config **/&#10;$this-&gt;config-&gt;saveConfig('$path$', $value$, 'default', 0);" description="" toReformat="false" toShortenFQNames="true">
<variable name="path" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="value" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento table new" value="/**&#10; * Create table '$table_name$'&#10; */&#10;$table = $setup-&gt;getConnection()-&gt;newTable(&#10; $setup-&gt;getTable('$table_name$')&#10;)-&gt;addColumn(&#10; '$id$',&#10; Table::TYPE_SMALLINT,&#10; null,&#10; ['identity' =&gt; true, 'nullable' =&gt; false, 'primary' =&gt; true],&#10; '$id$'&#10;)-&gt;addIndex(&#10; $setup-&gt;getIdxName('$table_name$', ['$id$']),&#10; ['$id$']&#10;)-&gt;setComment(&#10; '$description$'&#10;);&#10;&#10;// More columns here&#10;$END$&#10;&#10;$setup-&gt;getConnection()-&gt;createTable($table);" description="" toReformat="false" toShortenFQNames="true">
<variable name="table_name" expression="" defaultValue="table_name" alwaysStopAt="true" />
<variable name="id" expression="" defaultValue="id" alwaysStopAt="true" />
<variable name="description" expression="" defaultValue="Some description" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento table column" value="$table-&gt;addColumn(&#10; '$fieldName$',&#10; Table::TYPE_$type$,&#10; null,&#10; ['nullable' =&gt; true, 'default' =&gt; '$defaultValue$'],&#10; '$fieldName$'&#10;);&#10;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="field_name" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="defaultValue" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento table foreignKey" value="&#10;$table-&gt;addColumn(&#10; '$currentId$',&#10; Table::TYPE_$type$,&#10; null,&#10; ['nullable' =&gt; false, 'primary' =&gt; true],&#10; 'Foreign Key $currentId$'&#10;)-&gt;addForeignKey(&#10; $setup-&gt;getFkName('$currentTable$', '$currentId$', '$foreignTable$', '$foreignId$'),&#10; '$currentId$',&#10; $setup-&gt;getTable('$foreignTable$'),&#10; '$foreignId$',&#10; Table::ACTION_$actionType$&#10;);&#10;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="currentId" expression="" defaultValue="current_id" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="currentTable" expression="" defaultValue="current_table" alwaysStopAt="true" />
<variable name="foreignTable" expression="" defaultValue="foreign_table" alwaysStopAt="true" />
<variable name="foreignId" expression="" defaultValue="foreign_id" alwaysStopAt="true" />
<variable name="actionType" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento field file" value="&lt;field name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;!--&lt;item name=&quot;label&quot; translate=&quot;true&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;--&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;fileUploader&lt;/item&gt;&#10; &lt;item name=&quot;componentType&quot; xsi:type=&quot;string&quot;&gt;fileUploader&lt;/item&gt;&#10; &lt;item name=&quot;notice&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;Allowed file types: jpeg, gif, png&lt;/item&gt;&#10; &lt;item name=&quot;maxFileSize&quot; xsi:type=&quot;number&quot;&gt;2097152&lt;/item&gt;&#10; &lt;item name=&quot;allowedExtensions&quot; xsi:type=&quot;string&quot;&gt;jpg jpeg gif png&lt;/item&gt;&#10; &lt;item name=&quot;uploaderConfig&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;url&quot; xsi:type=&quot;string&quot;&gt;$routeId$/file/uploader&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="routeId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field hidden" value="&lt;field name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;number&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;hidden&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field dynamic" value="&lt;dynamicRows name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;componentType&quot; xsi:type=&quot;string&quot;&gt;dynamicRows&lt;/item&gt;&#10; &lt;item name=&quot;recordTemplate&quot; xsi:type=&quot;string&quot;&gt;record&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;addButton&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dndConfig&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;enabled&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;container name=&quot;record&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;isTemplate&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;is_collection&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;component&quot; xsi:type=&quot;string&quot;&gt;Magento_Ui/js/dynamic-rows/record&lt;/item&gt;&#10; &lt;item name=&quot;componentType&quot; xsi:type=&quot;string&quot;&gt;container&lt;/item&gt;&#10; &lt;item name=&quot;showFallbackReset&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;field name=&quot;id&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;number&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;hidden&lt;/item&gt;&#10; &lt;item name=&quot;source&quot; xsi:type=&quot;string&quot;&gt;images_fieldset&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;/field&gt;&#10; &lt;field name=&quot;position&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;number&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;hidden&lt;/item&gt;&#10; &lt;item name=&quot;source&quot; xsi:type=&quot;string&quot;&gt;images_fieldset&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;/field&gt;&#10; &lt;!-- Add your fields here --&gt;&#10; $END$&#10; &#10; &lt;actionDelete&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;componentType&quot; xsi:type=&quot;string&quot;&gt;actionDelete&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;fit&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;50&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;/actionDelete&gt;&#10; &lt;/container&gt;&#10;&lt;/dynamicRows&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field wysiwyg" value="&lt;field name=&quot;$fieldName$&quot;&gt;&lt;!-- Do not use &quot;-&quot; on the field name. It breaks the WYSIWYG --&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;number&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;wysiwyg&lt;/item&gt;&#10; &lt;item name=&quot;wysiwyg&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;wysiwygConfigData&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;hidden&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;settings&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;theme_advanced_buttons1&quot; xsi:type=&quot;string&quot;&gt;bold,italic,|,justifyleft,justifycenter,justifyright,|,fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,|,bullist,numlist,|,code&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons2&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons3&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons4&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_statusbar_location&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;files_browser_window_url&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;height&quot; xsi:type=&quot;string&quot;&gt;100px&lt;/item&gt;&#10; &lt;item name=&quot;toggle_button&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_widgets&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_variables&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_images&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;template&quot; xsi:type=&quot;string&quot;&gt;ui/form/field&lt;/item&gt;&#10; &lt;item name=&quot;additionalClasses&quot; xsi:type=&quot;string&quot;&gt;admin__field-wide&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento widget xml" value="&lt;widgets xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Widget:etc/widget.xsd&quot;&gt;&#10; &lt;widget id=&quot;$widgetId$&quot; class=&quot;$class$&quot;&gt;&#10; &lt;label translate=&quot;true&quot;&gt;$label$&lt;/label&gt;&#10; &lt;description&gt;$description$&lt;/description&gt;&#10; &lt;parameters&gt;&#10; $END$&#10; &lt;/parameters&gt;&#10; &lt;/widget&gt;&#10;&lt;/widgets&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="widgetId" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="label" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="description" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento block widget" value="use Magento\Framework\View\Element\Template;&#10;use Magento\Widget\Block\BlockInterface;&#10;&#10;class $class$ extends Template implements BlockInterface&#10;{&#10; /**&#10; * @var string $_template&#10; */&#10; protected $_template = &quot;$template$.phtml&quot;;&#10;&#10; // write your methods here...&#10; $END$&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="template" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento source option" value="use Magento\Framework\Data\OptionSourceInterface;&#10;use Magento\Framework\Option\ArrayInterface;&#10;&#10;class $class$ implements OptionSourceInterface, ArrayInterface&#10;{&#10; /**&#10; * @var array $options&#10; */&#10; protected $options = [];&#10;&#10; /**&#10; * Get Options&#10; *&#10; * @return array&#10; */&#10; public function toOptionArray()&#10; {&#10; if (!$this-&gt;options) {&#10; $this-&gt;options[] = ['value' =&gt; '', 'label' =&gt; '']; &#10; }&#10;&#10; return $this-&gt;options;&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento layout" value="&lt;page xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; layout=&quot;$layout$&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:View/Layout/etc/page_configuration.xsd&quot;&gt;&#10; &lt;body&gt;&#10; $END$&#10; &lt;/body&gt;&#10;&lt;/page&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="layout" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento requirejs-config" value="var config = {&#10; map: {&#10; '*': {&#10; ${objectName}: '$vendor$_$package$/js/$jsFileName$'&#10; }&#10; }&#10;};&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="vendor" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="package" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="jsFileName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_SCRIPT" value="true" />
</context>
</template>
<template name="2magento js class" value="/*jshint jquery:true*/&#10;define([&#10; &quot;jquery&quot;,&#10; &quot;jquery/ui&quot;&#10;], function($){&#10; &quot;use strict&quot;;&#10;&#10; $.widget('$widgetName$', {&#10; options: {&#10; // optionName: value&#10; },&#10;&#10; /**&#10; * Bind a click handler on the widget's element.&#10; * @private&#10; */&#10; _create: function() {&#10; this.element.on('click', $.proxy(this._clickAction, this));&#10; },&#10;&#10; /**&#10; * Init object&#10; * @private&#10; */&#10; _init: function () {&#10; // Do something if needed&#10; },&#10;&#10; /**&#10; * Click action function&#10; * @private&#10; * @param event - {Object} - Click event.&#10; */&#10; _clickAction: function(event) {&#10; // Do something with element clicked $(event.target)&#10; }&#10; });&#10; &#10; return $.$widgetName$;&#10;});" description="" toReformat="false" toShortenFQNames="true">
<variable name="widgetName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_SCRIPT" value="true" />
</context>
</template>
<template name="2magento acl xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Acl/etc/acl.xsd&quot;&gt;&#10; &lt;acl&gt;&#10; &lt;resources&gt;&#10; &lt;resource id=&quot;Magento_Backend::admin&quot;&gt;&#10; $END$&#10; &lt;/resource&gt;&#10; &lt;/resources&gt;&#10; &lt;/acl&gt;&#10;&lt;/config&gt;&#10;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento config xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Store:etc/config.xsd&quot;&gt;&#10; &lt;default&gt;&#10; $END$&#10; &lt;/default&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento Controller Admin" value="use Magento\Backend\App\Action;&#10;use Magento\Backend\App\Action\Context;&#10;use Magento\Framework\View\Result\PageFactory;&#10;&#10;&#10;class $className$ extends Action&#10;{&#10; /**&#10; * @var PageFactory&#10; */&#10; protected $resultPageFactory;&#10;&#10; /**&#10; * @param Context $context&#10; * @param PageFactory $resultPageFactory&#10; */&#10; public function __construct(&#10; Context $context,&#10; PageFactory $resultPageFactory&#10; ) {&#10; parent::__construct($context);&#10; $this-&gt;resultPageFactory = $resultPageFactory;&#10; }&#10;&#10; /**&#10; * Check the permission to run it&#10; *&#10; * @return boolean&#10; */&#10; protected function _isAllowed()&#10; {&#10; return $this-&gt;_authorization-&gt;isAllowed('$acl$');&#10; }&#10;&#10; /**&#10; * Index action&#10; *&#10; * @return \Magento\Backend\Model\View\Result\Page&#10; */&#10; public function execute()&#10; {&#10; /** @var \Magento\Backend\Model\View\Result\Page $resultPage */&#10; $resultPage = $this-&gt;resultPageFactory-&gt;create();&#10;&#10; return $resultPage;&#10; }&#10;}&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="true" />
<variable name="acl" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento Controller Front" value="use Magento\Framework\App\Action\Action;&#10;use Magento\Framework\View\Result\PageFactory;&#10;use Magento\Framework\App\Action\Context;&#10;&#10;class $className$ extends Action&#10;{&#10; /**&#10; * @var PageFactory&#10; */&#10; protected $pageFactory;&#10;&#10; /**&#10; * @param Context $context&#10; * @param PageFactory $pageFactory&#10; */&#10; public function __construct(Context $context, PageFactory $pageFactory)&#10; {&#10; parent::__construct($context);&#10; $this-&gt;pageFactory = $pageFactory;&#10; }&#10;&#10; /**&#10; * Index Action&#10; * &#10; * @return \Magento\Framework\View\Result\Page&#10; */&#10; public function execute()&#10; {&#10; /** @var \Magento\Framework\View\Result\Page $resultPage */&#10; $resultPage = $this-&gt;pageFactory-&gt;create();&#10; return $resultPage;&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento di xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:ObjectManager/etc/config.xsd&quot;&gt;&#10; $END$&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento helper" value="use Magento\Framework\App\Helper\AbstractHelper;&#10;&#10;class $className$ extends AbstractHelper&#10;{&#10; $END$&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento InstallSchema" value="use Magento\Framework\DB\Ddl\Table;&#10;use Magento\Framework\Setup\InstallSchemaInterface;&#10;use Magento\Framework\Setup\SchemaSetupInterface;&#10;use Magento\Framework\Setup\ModuleContextInterface;&#10;&#10;/**&#10; * @codeCoverageIgnore&#10; */&#10;class InstallSchema implements InstallSchemaInterface&#10;{&#10; /**&#10; * {@inheritdoc}&#10; * @SuppressWarnings(PHPMD.ExcessiveMethodLength)&#10; */&#10; public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)&#10; {&#10; $setup-&gt;startSetup();&#10;&#10; // Install actions here...&#10; $END$&#10;&#10; $setup-&gt;endSetup();&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento menu xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Backend:etc/menu.xsd&quot;&gt;&#10; &lt;menu&gt;&#10; $END$&#10; &lt;/menu&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento module xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Module/etc/module.xsd&quot;&gt;&#10; &lt;module name=&quot;$VendorName$_$ModuleName$&quot; setup_version=&quot;0.0.1&quot; &gt;&#10; $END$&#10; &lt;/module&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="VendorName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ModuleName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento routes xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:App/etc/routes.xsd&quot;&gt;&#10; &lt;router id=&quot;$type$&quot;&gt; &lt;!-- standard or admin --&gt;&#10; &lt;route id=&quot;$name$&quot; frontName=&quot;$name$&quot;&gt;&#10; &lt;module name=&quot;$VendorName$_$ModuleName$&quot; /&gt;&#10; &lt;/route&gt;&#10; &lt;/router&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="VendorName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="ModuleName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento system xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Config:etc/system_file.xsd&quot;&gt;&#10; &lt;system&gt;&#10; $END$&#10; &lt;/system&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento InstallData" value="use Magento\Framework\Setup\InstallDataInterface;&#10;use Magento\Framework\Setup\ModuleContextInterface;&#10;use Magento\Framework\Setup\ModuleDataSetupInterface;&#10;&#10;/**&#10; * @codeCoverageIgnore&#10; */&#10;class InstallData implements InstallDataInterface&#10;{&#10; /**&#10; * {@inheritdoc}&#10; * @SuppressWarnings(PHPMD.ExcessiveMethodLength)&#10; */&#10; public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)&#10; {&#10; $setup-&gt;startSetup();&#10;&#10; // Install here your data...&#10; $END$&#10;&#10; $setup-&gt;endSetup();&#10; }&#10;}&#10;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav text attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'varchar',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'text',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::$scope$,&#10; 'group' =&gt; 'General',&#10; //'validate_rules' =&gt; 'a:2:{s:15:&quot;max_text_length&quot;;i:255;s:15:&quot;min_text_length&quot;;i:1;}',&#10;];" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="scope" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav textarea attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'text',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'textarea',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::$scope$,&#10; 'group' =&gt; 'General',&#10; 'wysiwyg_enabled' =&gt; true,&#10;];" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="scope" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav boolean attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'int',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'select',&#10; 'source' =&gt; 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::$scope$,&#10; 'group' =&gt; 'General',&#10;];" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="scope" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav date attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'datetime',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'date',&#10; 'backend' =&gt; 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::$scope$,&#10; 'group' =&gt; 'General',&#10; 'validate_rules' =&gt; 'a:1:{s:16:&quot;input_validation&quot;;s:4:&quot;date&quot;;}',&#10;];" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="scope" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento field validation" value="&lt;item name=&quot;validation&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;required-entry&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;!--&lt;item name=&quot;validate-email&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;--&gt;&#10; &lt;!--&lt;item name=&quot;integer&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;--&gt;&#10;&lt;/item&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field boolean" value="&lt;field name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;number&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;boolean&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;checkbox&lt;/item&gt;&#10; &lt;item name=&quot;prefer&quot; xsi:type=&quot;string&quot;&gt;toggle&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;valueMap&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;true&quot; xsi:type=&quot;string&quot;&gt;1&lt;/item&gt;&#10; &lt;item name=&quot;false&quot; xsi:type=&quot;string&quot;&gt;0&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;validation&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;required-entry&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;default&quot; xsi:type=&quot;string&quot;&gt;1&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento getFirstElement" value="// get first item found&#10;$this-&gt;collection-&gt;getSelect()-&gt;limit(1);&#10;foreach ($this-&gt;collection as $item) {&#10; return $item;&#10;}" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav static attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'static',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'text',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::SCOPE_GLOBAL,&#10; 'group' =&gt; 'General',&#10; //'validate_rules' =&gt; 'a:2:{s:15:&quot;max_text_length&quot;;i:255;s:15:&quot;min_text_length&quot;;i:1;}',&#10;];" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento grid boolean column" value="&lt;column name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;options&quot; xsi:type=&quot;object&quot;&gt;Magento\Eav\Model\Entity\Attribute\Source\Boolean&lt;/item&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;filter&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;component&quot; xsi:type=&quot;string&quot;&gt;Magento_Ui/js/grid/columns/select&lt;/item&gt;&#10; &lt;item name=&quot;editor&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;select&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento grid integer column" value="&lt;column name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;filter&quot; xsi:type=&quot;string&quot;&gt;textRange&lt;/item&gt;&#10; &lt;item name=&quot;editor&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;editorType&quot; xsi:type=&quot;string&quot;&gt;text&lt;/item&gt;&#10; &lt;item name=&quot;validation&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;integer&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot; translate=&quot;true&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/column&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field integer" value="&lt;field name=&quot;$fieldName$&quot;&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;visible&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;dataType&quot; xsi:type=&quot;string&quot;&gt;number&lt;/item&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;input&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;string&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;default&quot; xsi:type=&quot;number&quot;&gt;0&lt;/item&gt;&#10; &lt;item name=&quot;validation&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;integer&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento current dates collection function" value="/**&#10; * Set Filters to get current entries from collection&#10; */&#10;protected function setCurrentDatesFilterCollection()&#10;{&#10; $currentDate = $this-&gt;dateTime-&gt;formatDate(true);&#10; $this-&gt;$collection$-&gt;addFieldToFilter('is_active', 1)&#10; -&gt;addAttributeToSelect(['date_from', 'date_to'], 'left') // VERY IMPORTANT: this is needed if we want the filter to properly work for those new where dates are not specify&#10; -&gt;addFieldToFilter('date_from', [['lteq' =&gt; $currentDate], ['null' =&gt; 'this_value_doesnt_matter']], 'left')&#10; -&gt;addFieldToFilter('date_to', [['gteq' =&gt; $currentDate], ['null' =&gt; 'this_value_doesnt_matter']], 'left');&#10;}&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="collection" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento config get" value="/** @var \Magento\Framework\App\Config\ScopeConfigInterface $this-&gt;scopeConfig **/&#10;$this-&gt;scopeConfig-&gt;getValue($path$, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);" description="" toReformat="false" toShortenFQNames="true">
<variable name="path" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento block template" value="use Magento\Framework\View\Element\Template;&#10;&#10;class $class$ extends Template&#10;{&#10; /**&#10; * @var string $_template&#10; */&#10; protected $_template = &quot;$template$.phtml&quot;;&#10;&#10; // write your methods here...&#10; $END$&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="class" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="false" />
<variable name="template" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento show time date item" value="&lt;item name=&quot;options&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;timeFormat&quot; xsi:type=&quot;string&quot;&gt;H:mm&lt;/item&gt;&#10; &lt;item name=&quot;showsTime&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10;&lt;/item&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento phpmd suppress warnings" value="@SuppressWarnings(PHPMD.$warning$) // https://phpmd.org/rules/index.html" description="" toReformat="false" toShortenFQNames="true">
<variable name="warning" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav image attribute" value="$attributes['$fieldName$'] = [&#10; 'type' =&gt; 'varchar',&#10; 'label' =&gt; '$capitalizedFieldName$',&#10; 'input' =&gt; 'image',&#10; 'backend' =&gt; '$vendor$\$package$\Model\Attribute\Backend\Image',&#10; 'required' =&gt; $required$, //true/false&#10; 'sort_order' =&gt; $position$,&#10; 'global' =&gt; ScopedAttributeInterface::$scope$,&#10; 'group' =&gt; 'General',&#10;];&#10;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="vendor" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="package" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="position" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="scope" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento upgradeSchema" value="use Magento\Framework\DB\Ddl\Table;&#10;use Magento\Framework\Setup\UpgradeSchemaInterface;&#10;use Magento\Framework\Setup\ModuleContextInterface;&#10;use Magento\Framework\Setup\SchemaSetupInterface;&#10;&#10;/**&#10; * @codeCoverageIgnore&#10; */&#10;class UpgradeSchema implements UpgradeSchemaInterface&#10;{&#10; /**&#10; * {@inheritdoc}&#10; */&#10; public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)&#10; {&#10; $setup-&gt;startSetup();&#10;&#10; if (version_compare($context-&gt;getVersion(), '$version$', '&lt;')) {&#10; $this-&gt;upgradeVersion$versionMethod$();&#10; }&#10;&#10; $setup-&gt;endSetup();&#10; }&#10; &#10; /**&#10; * Upgrade script for version $version$&#10; * &#10; * @return void&#10; */&#10; protected function upgradeVersion$versionMethod$() &#10; {&#10; // Add here your data upgrade&#10; $END$&#10; }&#10;}&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="version" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="versionMethod" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento upgradeData" value="use Magento\Framework\Setup\UpgradeDataInterface;&#10;use Magento\Framework\Setup\ModuleContextInterface;&#10;use Magento\Framework\Setup\ModuleDataSetupInterface;&#10;&#10;/**&#10; * @codeCoverageIgnore&#10; */&#10;class UpgradeData implements UpgradeDataInterface&#10;{&#10; /**&#10; * {@inheritdoc}&#10; * @SuppressWarnings(PHPMD.NPathComplexity)&#10; */&#10; public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)&#10; {&#10; $setup-&gt;startSetup();&#10;&#10; if (version_compare($context-&gt;getVersion(), '$version$', '&lt;')) {&#10; $this-&gt;upgradeVersion$versionMethod$();&#10; }&#10;&#10; $setup-&gt;endSetup();&#10; }&#10; &#10; /**&#10; * Upgrade script for version $version$&#10; * &#10; * @return void&#10; */&#10; protected function upgradeVersion$versionMethod$() &#10; {&#10; // Add here your data upgrade&#10; $END$&#10; }&#10; &#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="version" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="versionMethod" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento eav source option" value="use Magento\Eav\Model\Entity\Attribute\Source\AbstractSource;&#10;&#10;class $class$ extends AbstractSource&#10;{&#10; /**&#10; * @var array $options&#10; */&#10; protected $options;&#10;&#10; /**&#10; * Get Options&#10; *&#10; * @return array&#10; */&#10; public function getAllOptions()&#10; {&#10; if ($this-&gt;options == null) {&#10; $this-&gt;options = ['value' =&gt; '', 'label' =&gt; '']; &#10; }&#10;&#10; return $this-&gt;options;&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento events observer xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Event/etc/events.xsd&quot;&gt;&#10; &lt;event name=&quot;$event$&quot;&gt;&#10; &lt;observer name=&quot;$prefix$_$event$&quot; instance=&quot;$vendor$\$module$\Observer\$class$&quot; /&gt;&#10; &lt;/event&gt;&#10;&lt;/config&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="event" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="prefix" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="vendor" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="module" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento eav attribute product" value="/**&#10; * Add attributes to the eav/attribute&#10; */&#10;$eavSetup-&gt;addAttribute(&#10; \Magento\Catalog\Model\Product::ENTITY,&#10; '$attribute$',&#10; [ &#10; 'type' =&gt; '$type$',&#10; 'backend' =&gt; '',&#10; 'frontend' =&gt; '',&#10; 'label' =&gt; '$label$',&#10; 'input' =&gt; '',&#10; 'class' =&gt; '',&#10; 'source' =&gt; '',&#10; 'global' =&gt; \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,&#10; 'visible' =&gt; true,&#10; 'required' =&gt; false,&#10; 'user_defined' =&gt; false,&#10; 'default' =&gt; 0,&#10; 'searchable' =&gt; false,&#10; 'filterable' =&gt; false,&#10; 'comparable' =&gt; false,&#10; 'visible_on_front' =&gt; false,&#10; 'used_in_product_listing' =&gt; true,&#10; 'unique' =&gt; false,&#10; 'apply_to' =&gt; '',&#10; 'is_used_in_grid' =&gt; true,&#10; 'is_visible_in_grid' =&gt; false,&#10; 'is_filterable_in_grid' =&gt; true,&#10; ]&#10;);&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="attribute" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="label" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento validate-digits js xml" value="validate-digits validate-digits-range digits-range-$min$-$max$" description="" toReformat="false" toShortenFQNames="true">
<variable name="min" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="max" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento add column" value="$setup-&gt;getConnection()-&gt;addColumn(&#10; $setup-&gt;getTable('$tableName$'),&#10; '$columnName$',&#10; [&#10; 'type' =&gt; Table::TYPE_$type$,&#10; 'length' =&gt; null,&#10; 'nullable' =&gt; true,&#10; 'default' =&gt; '$default$',&#10; 'comment' =&gt; '$columnName$',&#10; ]&#10;);" description="" toReformat="false" toShortenFQNames="true">
<variable name="tableName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="columnName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="default" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento observer" value="use Magento\Framework\Event\ObserverInterface;&#10;use Magento\Framework\Event\Observer;&#10;&#10;class $class$ implements ObserverInterface&#10;{&#10; /**&#10; * Execute Observer&#10; *&#10; * @param Observer $observer&#10; * @return void&#10; */&#10; public function execute(Observer $observer)&#10; {&#10; $END$&#10; }&#10;}&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="class" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento view xml" value="&lt;view xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Config/etc/view.xsd&quot;&gt;&#10; $END$&#10;&lt;/view&gt;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento disable component layout xml" value="&lt;referenceBlock name=&quot;$blockName$&quot;&gt;&#10; &lt;arguments&gt;&#10; &lt;argument name=&quot;jsLayout&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;components&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;$componentName$&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;componentDisabled&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10; &lt;/arguments&gt;&#10;&lt;/referenceBlock&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="blockName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="componentName" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento factory simple" value="use Magento\Framework\ObjectManagerInterface;&#10;&#10;class $className$&#10;{&#10; /**&#10; * Object Manager instance&#10; *&#10; * @var ObjectManagerInterface&#10; */&#10; protected $_objectManager = null;&#10;&#10; /**&#10; * Instance name to create&#10; *&#10; * @var string&#10; */&#10; protected $_instanceName = null;&#10;&#10; /**&#10; * Factory constructor&#10; *&#10; * @param ObjectManagerInterface $objectManager&#10; * @param string $instanceName&#10; */&#10; public function __construct(ObjectManagerInterface $objectManager, $instanceName = '\\$vendor$\\$module$\\$restNamespace$')&#10; {&#10; $this-&gt;_objectManager = $objectManager;&#10; $this-&gt;_instanceName = $instanceName;&#10; }&#10;&#10; /**&#10; * Create class instance with specified parameters&#10; *&#10; * @param array $data&#10; * @return \$vendor$\$module$\$restNamespace$&#10; */&#10; public function create(array $data = array())&#10; {&#10; return $this-&gt;_objectManager-&gt;create($this-&gt;_instanceName, $data);&#10; }&#10; &#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="vendor" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="module" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="restNamespace" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento factory type option" value="use InvalidArgumentException;&#10;use Magento\Framework\ObjectManagerInterface;&#10;use $vendor$\$module$\$restClassType$;&#10;&#10;class $className$&#10;{&#10; /**&#10; * Object Manager instance&#10; *&#10; * @var ObjectManagerInterface&#10; */&#10; protected $objectManager = null;&#10;&#10; /**&#10; * Instance name to create&#10; *&#10; * @var string&#10; */&#10; protected $instanceTypeNames = [&#10; '$type1$' =&gt; \$vendor$\$module$\$restClass$\$className1$::class,&#10; '$type2$' =&gt; \$vendor$\$module$\$restClass$\$className2$::class,&#10; ];&#10;&#10; /**&#10; * Factory constructor&#10; *&#10; * @param ObjectManagerInterface $objectManager&#10; */&#10; public function __construct(ObjectManagerInterface $objectManager)&#10; {&#10; $this-&gt;objectManager = $objectManager;&#10; }&#10;&#10; /**&#10; * Create corresponding class instance&#10; *&#10; * @param $type&#10; * @param array $data&#10; * @return ObjectType&#10; */&#10; public function create($type, array $data = array())&#10; { &#10; if (empty($this-&gt;instanceTypeNames[$type])) {&#10; throw new InvalidArgumentException(sprintf('&quot;%s&quot;: isn\'t allowed', $type));&#10; }&#10;&#10; $resultInstance = $this-&gt;objectManager-&gt;create($this-&gt;instanceTypeNames[$type], $data);&#10; if (!$resultInstance instanceof $restClassType$) {&#10; throw new InvalidArgumentException(sprintf('%s isn\'t instance of %s', &#10; get_class($resultInstance),&#10; $restClassType$::class&#10; ));&#10; }&#10;&#10; return $resultInstance;&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="vendor" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="module" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="restClassType" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="className" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type1" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="restClass" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="className1" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type2" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="className2" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento email_templates xml" value="&lt;config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Email:etc/email_templates.xsd&quot;&gt;&#10; &lt;template id=&quot;$lowerVendorname$_$lowerModulename$_email_$copyEmailname$_template&quot; label=&quot;$module&quot; file=&quot;$emailname$.html&quot; type=&quot;text&quot; module=&quot;$Vendorname$_$Modulename$&quot; area=&quot;adminhtml&quot;/&gt;&#10;&lt;/config&gt;&#10;" description="" toReformat="false" toShortenFQNames="true">
<variable name="Vendorname" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="Modulename" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="emailname" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="lowerVendorname" expression="decapitalize(Vendorname)" defaultValue="" alwaysStopAt="false" />
<variable name="lowerModulename" expression="decapitalize(Modulename)" defaultValue="" alwaysStopAt="false" />
<variable name="copyEmailname" expression="decapitalize(emailname)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento plugin before" value="public function before$method$($subjectClass$ $subject, $param1, $param2)&#10;{&#10; // return array of modified arguments&#10; return [$param1, $param2];&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="method" expression="capitalize(String)" defaultValue="" alwaysStopAt="true" />
<variable name="subjectClass" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento plugin after" value="public function after$method$($subjectClass$ $subject, $result)&#10;{&#10; // Do something and return the customised result&#10; return $result;&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="method" expression="capitalize(String)" defaultValue="" alwaysStopAt="true" />
<variable name="subjectClass" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento plugin around" value="public function around$method$($subjectClass$ $subject, callable $proceed)&#10;{&#10; $this-&gt;doSmthBefore();&#10; $result = $proceed();&#10; $this-&gt;doSmthAfter();&#10; &#10; return $result;&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="method" expression="capitalize(String)" defaultValue="" alwaysStopAt="true" />
<variable name="subjectClass" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test objectManager" value="$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test integration" value="class $className$ extends \PHPUnit\Framework\TestCase&#10;{&#10; protected function setUp()&#10; {&#10; $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();&#10; //@TODO: create your object instances here...&#10; //$this-&gt;someObject = $objectManager-&gt;create(\Some\Class::class);&#10; }&#10; &#10; public function testNothing()&#10; {&#10; $this-&gt;fail('Test is properly setup');&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test annotation fixture" value="/**&#10; * @magentoAppIsolation enabled&#10; * @magentoDbIsolation enabled&#10; * @magentoDataFixture /../../../../../../dev/tests/integration/testsuite/Magento/$fixtureFile$.php&#10; */&#10;public function test$name$()&#10;{&#10; // $this-&gt;assert...&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="fixtureFile" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test dataProvider function" value="/**&#10; * @dataProvider $providerName$DataProvider&#10; */&#10;public function test$name$(array $data)&#10;{&#10; // $this-&gt;assert...&#10;}&#10;&#10;public function $providerName$DataProvider()&#10;{&#10; return [&#10; [&#10; 'key1' =&gt; 'value1',&#10; ],&#10; ];&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="providerName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento customer add attribute" value="/** @var CustomerSetup $customerSetup */&#10;$this-&gt;customerSetup = $this-&gt;customerSetupFactory-&gt;create(['setup' =&gt; $setup]);&#10;&#10;$this-&gt;customerSetup-&gt;addAttribute(&#10; \Magento\Customer\Model\Customer::ENTITY,&#10; $attributeCode,&#10; [&#10; 'type' =&gt; $type$, //varchar, int, text, datetime, decimal, static&#10; 'label' =&gt; $label$,&#10; 'input' =&gt; $input$, //text, select, textarea, date, hidden&#10; 'required' =&gt; $required$, //true, false&#10; 'sort_order' =&gt; $sortOrder$,&#10; 'visible' =&gt; true,&#10; 'user_defined' =&gt; 0,&#10; 'system' =&gt; false,&#10; 'is_used_in_grid' =&gt; false,&#10; //'source' =&gt; Vendor\Package\...,&#10; ]&#10;);&#10;$attribute = $this-&gt;customerSetup-&gt;getEavConfig()-&gt;getAttribute(\Magento\Customer\Model\Customer::ENTITY, $attributeCode);&#10;$forms = ['adminhtml_customer'];&#10;if ($showOnFrontend) {&#10; $forms = [&#10; 'adminhtml_customer',&#10; 'customer_account_create',&#10; 'customer_account_edit',&#10; 'checkout_register',&#10; 'adminhtml_checkout',&#10; ];&#10;}&#10;$attribute-&gt;setData('used_in_forms', $forms);&#10;$attribute-&gt;save(); //@codingStandardsIgnoreLine" description="" toReformat="false" toShortenFQNames="true">
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="label" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="input" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="required" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="sortOrder" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento field wysiwyg simple" value="&lt;field name=&quot;$fieldName$&quot;&gt;&lt;!-- Do not use &quot;-&quot; on the field name. It breaks the WYSIWYG --&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;number&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;wysiwyg&lt;/item&gt;&#10; &lt;item name=&quot;wysiwyg&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;wysiwygConfigData&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;hidden&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;settings&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;theme_advanced_buttons1&quot; xsi:type=&quot;string&quot;&gt;bold,italic,|,formatselect,|,link,unlink,|,bullist&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons2&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons3&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons4&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_statusbar_location&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;files_browser_window_url&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;height&quot; xsi:type=&quot;string&quot;&gt;100px&lt;/item&gt;&#10; &lt;item name=&quot;toggle_button&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_widgets&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_variables&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_images&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;template&quot; xsi:type=&quot;string&quot;&gt;ui/form/field&lt;/item&gt;&#10; &lt;item name=&quot;additionalClasses&quot; xsi:type=&quot;string&quot;&gt;admin__field-wide&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento field wysiwyg simple + widgets" value="&lt;field name=&quot;$fieldName$&quot;&gt;&lt;!-- Do not use &quot;-&quot; on the field name. It breaks the WYSIWYG --&gt;&#10; &lt;argument name=&quot;data&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;config&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;label&quot; xsi:type=&quot;string&quot;&gt;$capitalizedFieldName$&lt;/item&gt;&#10; &lt;item name=&quot;sortOrder&quot; xsi:type=&quot;number&quot;&gt;$order$&lt;/item&gt;&#10; &lt;item name=&quot;formElement&quot; xsi:type=&quot;string&quot;&gt;wysiwyg&lt;/item&gt;&#10; &lt;item name=&quot;wysiwyg&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;wysiwygConfigData&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;hidden&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;settings&quot; xsi:type=&quot;array&quot;&gt;&#10; &lt;item name=&quot;theme_advanced_buttons1&quot; xsi:type=&quot;string&quot;&gt;magentowidget,|,bold,italic,|,formatselect,|,link,unlink,|,bullist&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons2&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons3&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_buttons4&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;theme_advanced_statusbar_location&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;files_browser_window_url&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;height&quot; xsi:type=&quot;string&quot;&gt;100px&lt;/item&gt;&#10; &lt;item name=&quot;toggle_button&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_widgets&quot; xsi:type=&quot;boolean&quot;&gt;true&lt;/item&gt;&#10; &lt;item name=&quot;add_variables&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;item name=&quot;add_images&quot; xsi:type=&quot;boolean&quot;&gt;false&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;item name=&quot;template&quot; xsi:type=&quot;string&quot;&gt;ui/form/field&lt;/item&gt;&#10; &lt;item name=&quot;additionalClasses&quot; xsi:type=&quot;string&quot;&gt;admin__field-wide&lt;/item&gt;&#10; &lt;/item&gt;&#10; &lt;/argument&gt;&#10;&lt;/field&gt;&#10;$END$" description="" toReformat="false" toShortenFQNames="true">
<variable name="fieldName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="capitalizedFieldName" expression="capitalize(fieldName)" defaultValue="" alwaysStopAt="false" />
<variable name="order" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento setup order quote field" value="// @todo: move on top of your installData/upgradeData class. &#10;// /**&#10;// * @var \Magento\Sales\Setup\SalesSetupFactory&#10;// */&#10;// private $salesSetupFactory;&#10;// /**&#10;// * @var \Magento\Quote\Setup\QuoteSetupFactory&#10;// */&#10;// private $quoteSetupFactory;&#10;//&#10;// public function __construct(&#10;// \Magento\Sales\Setup\SalesSetupFactory $salesSetupFactory,&#10;// \Magento\Quote\Setup\QuoteSetupFactory $quoteSetupFactory&#10;// ) {&#10;// $this-&gt;salesSetupFactory = $salesSetupFactory;&#10;// $this-&gt;quoteSetupFactory = $quoteSetupFactory;&#10;// }&#10; &#10;/** @var \Magento\Framework\Setup\ModuleDataSetupInterface $setup */&#10;/** @var \Magento\Quote\Setup\QuoteSetup $quoteSetup */&#10;$quoteSetup = $this-&gt;quoteSetupFactory-&gt;create(['setup' =&gt; $setup]);&#10;$quoteSetup-&gt;addAttribute(&#10; '$quoteEntityType$',&#10; '$fieldname$',&#10; ['type' =&gt; \Magento\Framework\DB\Ddl\Table::$type$, 'length' =&gt; $length$, 'nullable' =&gt; true, 'comment' =&gt; 'Quote $fieldname$']&#10;);&#10;/** @var \Magento\Sales\Setup\SalesSetup $salesSetup */&#10;$salesSetup = $this-&gt;salesSetupFactory-&gt;create(['setup' =&gt; $setup]);&#10;$salesSetup-&gt;addAttribute(&#10; '$orderEntityType$',&#10; '$fieldname$',&#10; ['type' =&gt; \Magento\Framework\DB\Ddl\Table::$type$, 'length' =&gt; $length$, 'nullable' =&gt; true, 'grid' =&gt; false, 'comment' =&gt; 'Order $fieldname$']&#10;);&#10;&#10;// @todo: Add into module.xml&#10;// &lt;sequence&gt;&#10;// &lt;module name=&quot;Magento_Quote&quot;/&gt;&#10;// &lt;module name=&quot;Magento_Sales&quot;/&gt;&#10;// &lt;/sequence&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="quoteEntityType" expression="" defaultValue="&quot;quote&quot;" alwaysStopAt="true" />
<variable name="fieldname" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="length" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="orderEntityType" expression="" defaultValue="&quot;order&quot;" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento setup uninstall" value="use Magento\Framework\Setup\UninstallInterface;&#10;use Magento\Framework\Setup\SchemaSetupInterface;&#10;use Magento\Framework\Setup\ModuleContextInterface;&#10;&#10;class Uninstall implements UninstallInterface&#10;{&#10; /**&#10; * @SuppressWarnings(PHPMD.UnusedFormalParameter)&#10; * @param SchemaSetupInterface $setup&#10; * @param ModuleContextInterface $context&#10; */&#10; public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)&#10; {&#10; $setup-&gt;startSetup();&#10;&#10;// $setup-&gt;getConnection()-&gt;dropTable(&#10;// $setup-&gt;getTable('table_name')&#10;// );&#10;//&#10;// $setup-&gt;getConnection()-&gt;dropColumn(&#10;// $setup-&gt;getTable('table_name'),&#10;// 'column_name'&#10;// );&#10;&#10; $setup-&gt;endSetup();&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento webapi xml" value="&lt;routes xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Webapi:etc/webapi.xsd&quot;&gt;&#10; &lt;route url=&quot;/V1/$subpath$/$methodUrl$&quot; method=&quot;PUT&quot;&gt;&#10; &lt;service class=&quot;$vendor$\$module$\Api\$api$Interface&quot; method=&quot;$method$&quot;/&gt;&#10; &lt;resources&gt;&#10; &lt;resource ref=&quot;anonymous&quot;/&gt;&#10; &lt;/resources&gt;&#10; &lt;/route&gt;&#10;&lt;/routes&gt;" description="" toReformat="false" toShortenFQNames="true">
<variable name="subpath" expression="" defaultValue="&quot;subpath&quot;" alwaysStopAt="true" />
<variable name="methodUrl" expression="" defaultValue="&quot;method&quot;" alwaysStopAt="true" />
<variable name="method" expression="camelCase(methodUrl)" defaultValue="" alwaysStopAt="false" />
<variable name="vendor" expression="" defaultValue="&quot;Vendor&quot;" alwaysStopAt="true" />
<variable name="module" expression="" defaultValue="&quot;Module&quot;" alwaysStopAt="true" />
<variable name="api" expression="" defaultValue="&quot;ApiClass&quot;" alwaysStopAt="true" />
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento quote to order observer" value="/**&#10; * @param Observer $observer&#10; * @return void&#10; * @event sales_model_service_quote_submit_before&#10; */&#10;public function execute(Observer $observer)&#10;{&#10; $this-&gt;addQuoteAttributeToOrder($observer);&#10;}&#10;&#10;private function addQuoteAttributeToOrder(Observer $observer)&#10;{&#10; /* @var $order \Magento\Sales\Model\Order */&#10; $order = $observer-&gt;getEvent()-&gt;getOrder();&#10; /** @var $quote \Magento\Quote\Model\Quote $quote */&#10; $quote = $observer-&gt;getEvent()-&gt;getQuote();&#10;&#10; $order-&gt;setData(&#10; '$attribute$',&#10; $quote-&gt;getData('$attribute$'));&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="attribute" expression="" defaultValue="&quot;custom_attribute&quot;" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento item quote to item order plugin" value="use Magento\Quote\Model\Quote\Item\ToOrderItem;&#10;&#10;class ToOrderItemPlugin&#10;{&#10; /**&#10; * @param ToOrderItem $subject&#10; * @param callable $proceed&#10; * @param Item|AddressItem $item&#10; * @param array $data&#10; * @return \Magento\Sales\Api\Data\OrderItemInterface&#10; * @SuppressWarnings(PHPMD.UnusedFormalParameter)&#10; */&#10; public function aroundConvert(&#10; ToOrderItem $subject,&#10; callable $proceed,&#10; $item, &#10; $data = []&#10; ) {&#10; /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */&#10; $orderItem = $proceed($item, $data);&#10; $orderItem-&gt;setData(&#10; '$attribute$',&#10; $item-&gt;getData('$attribute$')&#10; );&#10; return $orderItem;&#10; }&#10;&#10; //@todo: add plugin in di.xml&#10; //&lt;type name=&quot;Magento\Quote\Model\Quote\Item\ToOrderItem&quot;&gt;&#10; // &lt;plugin name=&quot;$vendor$_$module$_add_to_order_item&quot; type=&quot;$Vendor$\$Module$\Plugin\ToOrderItemPlugin&quot;/&gt;&#10; //&lt;/type&gt;&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="attribute" expression="" defaultValue="&quot;custom_attribute&quot;" alwaysStopAt="true" />
<variable name="vendor" expression="" defaultValue="&quot;vendor&quot;" alwaysStopAt="true" />
<variable name="module" expression="" defaultValue="&quot;module&quot;" alwaysStopAt="true" />
<variable name="Vendor" expression="capitalize(vendor)" defaultValue="" alwaysStopAt="false" />
<variable name="Module" expression="capitalize(module)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test annotation frontend store" value="/**&#10; * @magentoAppIsolation enabled&#10; * @magentoAppArea frontend&#10; * @magentoConfigFixture current_store general/locale/code de_CH&#10; */" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test change preference" value="\Magento\TestFramework\Helper\Bootstrap::getObjectManager()-&gt;configure(&#10; ['preferences' =&gt; [$for$::class =&gt; $type$::class]]&#10;);&#10;" toReformat="false" toShortenFQNames="true">
<variable name="for" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="type" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="xsi array" value="xsi:type=&quot;array&quot;" description="xsi:type=&quot;array&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi string" value="xsi:type=&quot;string&quot;" description="xsi:type=&quot;string&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi object" value="xsi:type=&quot;object&quot;" description="xsi:type=&quot;object&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi" value="xsi:type=&quot;$SELECTION$&quot;" description="xsi:type=&quot;&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi number" value="xsi:type=&quot;number&quot;" description="xsi:type=&quot;number&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi boolean" value="xsi:type=&quot;boolean&quot;" description="xsi:type=&quot;boolean&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi const" value="xsi:type=&quot;const&quot;" description="xsi:type=&quot;const&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi configurableObject" value="xsi:type=&quot;configurableObject&quot;" description="xsi:type=&quot;configurableObject&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi null" value="xsi:type=&quot;null&quot;" description="xsi:type=&quot;null&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi init_parameter" value="xsi:type=&quot;init_parameter&quot;" description="xsi:type=&quot;init_parameter&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi options" value="xsi:type=&quot;options&quot;" description="xsi:type=&quot;options&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi url" value="xsi:type=&quot;url&quot;" description="xsi:type=&quot;url&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi helper" value="xsi:type=&quot;helper&quot;" description="xsi:type=&quot;helper&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="xsi constant" value="xsi:type=&quot;constant&quot;" description="xsi:type=&quot;constant&quot;" toReformat="false" toShortenFQNames="true">
<context>
<option name="XML" value="true" />
</context>
</template>
<template name="2magento test integration controller" value="class $className$ extends \Magento\TestFramework\TestCase\AbstractController&#10;{&#10; protected function setUp()&#10; {&#10; parent::setUp();&#10; $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();&#10; //@TODO: create your object instances here...&#10; //$this-&gt;someObject = $objectManager-&gt;create(\Some\Class::class);&#10; }&#10; &#10; public function testNothing()&#10; {&#10; $this-&gt;fail('Test is properly setup');&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test unit" value="class $className$ extends \PHPUnit\Framework\TestCase&#10;{ &#10; public function testNothing()&#10; {&#10; $this-&gt;fail('Test is properly setup');&#10; }&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="className" expression="fileNameWithoutExtension()" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test command execute method" value="private function executeCommand(string $commandIdentifier, array $arrayInput = []): string&#10;{&#10; // Workaround issue https://github.com/magento/magento2/issues/12844&#10; \Magento\TestFramework\Helper\Bootstrap::getObjectManager()-&gt;configure(&#10; [&#10; 'preferences' =&gt; [&#10; ltrim(&#10; \Magento\Framework\Interception\ObjectManager\ConfigInterface::class,&#10; '\\'&#10; ) =&gt; ltrim(&#10; \Magento\TestFramework\ObjectManager\Config::class,&#10; '\\'&#10; ),&#10; ],&#10; ]&#10; );&#10; $commands = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()&#10; -&gt;create(\Magento\Framework\Console\CommandListInterface::class)&#10; -&gt;getCommands();&#10; &#10; $output = new BufferedOutput();&#10; $commands[$commandIdentifier]-&gt;run(&#10; new ArrayInput($arrayInput),&#10; $output&#10; );&#10; return $output-&gt;fetch();&#10;}&#10;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test email" value="$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();&#10;$mailTransportMock = $objectManager-&gt;get(\Magento\TestFramework\Mail\Template\TransportBuilderMock::class);&#10;$objectManager-&gt;addSharedInstance(&#10; $mailTransportMock,&#10; \Magento\Framework\Mail\Template\TransportBuilder::class&#10;);&#10;&#10;// @TODO: your code that sends an email&#10;&#10;$sentEmail = $mailTransportMock-&gt;getSentMessage();&#10;$this-&gt;assertInstanceOf(\Magento\Framework\Mail\Message::class, $sentEmail, 'Email should have been sent');&#10;" description="" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test loadFixture methods" value="public static function loadFixture()&#10;{&#10; include __DIR__ . '/../../../../../../dev/tests/integration/testsuite/Magento/$fileSubPath$.php';&#10;}&#10;&#10;public static function loadFixtureRollback()&#10;{&#10; include __DIR__ . '/../../../../../../dev/tests/integration/testsuite/Magento/$fileSubPath$_rollback.php';&#10;}&#10;&#10;/**&#10; * @magentoAppIsolation enabled&#10; * @magentoDbIsolation enabled&#10; * @magentoDataFixture loadFixture&#10; */&#10;public function test$name$()&#10;{&#10; // $this-&gt;assert...&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="fileSubPath" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="2magento test layout frontend" value="/**&#10; * @magentoAppArea frontend&#10; */&#10;public function test$testName$()&#10;{&#10; $layout = $this-&gt;getLayout('$handle$');&#10; // Your test here...&#10;}&#10;&#10;/**&#10; * @param string|string[] $handles&#10; * @return \Magento\Framework\View\LayoutInterface&#10; */&#10;protected function getLayout($handles)&#10;{&#10; /** @var \Magento\Framework\View\Result\Page $resultPage */&#10; $resultPage = $this-&gt;_objectManager-&gt;get(\Magento\Framework\View\Result\Page::class);&#10; $resultPage-&gt;addHandle('default');&#10; $resultPage-&gt;addHandle($handles);&#10; return $resultPage-&gt;getLayout();&#10;}" description="" toReformat="false" toShortenFQNames="true">
<variable name="testName" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="handle" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP" value="true" />
</context>
</template>
</templateSet>