system.xml reference
- Onderwerpen:
- Configuratie
Gemaakt voor:
- Ervaren
- Beheerder
- Ontwikkelaar
Met het bestand system.xml
kunt u de Commerce-systeemconfiguratie beheren. Gebruik dit onderwerp als algemene referentie voor het system.xml
bestand. Het system.xml
-bestand bevindt zich onder etc/adminhtml/system.xml
in een bepaalde Commerce 2-extensie.
Het volgende codefragment toont het blote skelet van het dossier:
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<!-- PLACE YOUR MODULE SPECIFIC CONFIGURATION HERE -->
</system>
</config>
bin/magento dev:urn-catalog:generate [--ide IDE] [--] <path>
in werking stellen.Tabs // secties // groepen // velden
In het system.xml
-bestand is het mogelijk vier verschillende typen entiteiten te definiëren, die aan elkaar zijn gerelateerd. In de volgende sectie wordt de relatie beschreven tussen tabbladen, secties, groepen en velden. In de volgende schermafbeelding wordt de Commerce 2 System Configuration weergegeven in de Admin-back-end.
De rode vierkantjes geven de verschillende typen aan die in het system.xml
-bestand zijn gedefinieerd:
Tabs worden gebruikt om verschillende configuratiegebieden semantisch te splitsen. Elk tabblad kan een of meer secties bevatten, die ook submenu's kunnen worden genoemd. Een sectie bevat een of meer groepen.
Elke groep geeft een of meer velden weer. U kunt ook een groep gebruiken om een algemene beschrijving toe te voegen voor de volgende velden. Zoals vermeld, kan elke groep één of meerdere gebieden hebben. Velden zijn de kleinste entiteit
in de systeemconfiguratiecontext.
Tabs
Een <tab>
-tag verwijst naar een bestaand of een nieuw tabblad in de systeemconfiguratie.
Referentie tabkenmerk
Een <tab>
-tag kan de volgende kenmerken hebben:
id
typeId
translate
label
op om het label vertaalbaar te maken.string
sortOrder
float
class
string
Referentie tabknooppunt
Een <tab>
-tag kan het volgende onderliggende element hebben:
label
string
Voorbeeld: Een tabblad maken
In het volgende codefragment ziet u hoe u een nieuw tabblad maakt met voorbeeldgegevens.
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="A_UNIQUE_ID" translate="label" class="a-custom-css-class-to-style-this-tab" sortOrder="10">
<label>A meaningful label</label>
</tab>
</system>
</config>
Het bovenstaande fragment maakt een nieuw tabblad met de id A_UNIQUE_ID
. Terwijl het kenmerk translate
wordt gedefinieerd en naar het label verwijst, is het knooppunt label
vertaalbaar. Tijdens het renderingsproces wordt de CSS-klasse a-custom-css-class-to-style-this-tab
toegepast op het HTML-element dat voor dit tabblad is gemaakt.
Het kenmerk sortOrder
met de waarde 10
definieert de positie van de tab in de lijst met alle tabbladen wanneer deze wordt gerenderd.
Secties
Een <section>
-tag verwijst naar een bestaande of een nieuwe sectie in de systeemconfiguratie.
Verwijzing naar kenmerk Sectie
Een <section>
-tag kan de volgende kenmerken hebben:
id
typeId
translate
label
op om het label vertaalbaar te maken.string
type
text
.string
sortOrder
float
showInDefault
1
op om de sectie weer te geven en 0
om de sectie te verbergen.int
showInStore
1
op om de sectie weer te geven en 0
om de sectie te verbergen.int
showInWebsite
1
op om de sectie weer te geven en 0
om de sectie te verbergen.int
canRestore
int
advanced
bool
extends
string
Verwijzing naar knooppunt
Een <section>
-tag kan de volgende onderliggende elementen hebben:
label
string
class
string
tab
typeTabId
header_css
string
resource
typeAclResourceId
group
typeGroup
frontend_model
typeModel
include
system_include.xsd
compatibele bestanden op te nemen. Wordt meestal gebruikt om grote system.xml
bestanden te structureren.includeType
Voorbeeld: Een sectie maken en toewijzen aan een tabblad
In het volgende codefragment ziet u het basisgebruik van het maken van een nieuwe sectie.
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="A_UNIQUE_ID" translate="label" class="a-custom-css-class-to-style-this-tab" sortOrder="10">
<label>A meaningful label</label>
</tab>
<section id="A_UNIQUE_SECTION_ID" showInDefault="1" showInWebsite="0" showInStore="1" sortOrder="10" translate="label">
<label>A meaningful section label</label>
<tab>A_UNIQUE_ID</tab>
<resource>VENDOR_MODULE::path_to_the_acl_resource</resource>
</section>
</system>
</config>
De sectie die hierboven wordt beschreven bepaalt identiteitskaart A_UNIQUE_SECTION_ID
, is zichtbaar in het gebrek config mening en in een archiefcontext. Het knooppunt label
is vertaalbaar. De sectie wordt gekoppeld aan de tab met de id A_UNIQUE_ID
. De sectie kan slechts door gebruikers worden betreden die de toestemmingen hebben die in ACL VENDOR_MODULE::path_to_the_acl_resource
worden bepaald.
Groepen
De tag <group>
-Tag wordt gebruikt om velden samen te groeperen.
Groepskenmerkverwijzing
Een <group>
-tag kan de volgende kenmerken hebben:
id
typeId
translate
label
op om het label vertaalbaar te maken. Meerdere velden moeten worden gescheiden door een spatie.string
type
text
.string
sortOrder
float
showInDefault
1
op om de groep weer te geven en 0
om de groep te verbergen.int
showInStore
1
op om de groep weer te geven en 0
om de groep te verbergen.int
showInWebsite
1
op om de groep weer te geven en 0
om de groep te verbergen.int
canRestore
int
advanced
bool
extends
string
Referentie van knooppunt groeperen
Een <group>
-tag kan de volgende onderliggende elementen hebben:
label
string
fieldset_css
string
frontend_model
typeModel
clone_model
typeModel
clone_fields
int
help_url
typeUrl
more_url
typeUrl
demo_link
typeUrl
comment
<![CDATA[//]]>
kunt u HTML toepassen.string
hide_in_single_store_mode
1
verbergt de groep; in 0
wordt de groep weergegeven.int
field
field
group
unbounded
depends
1
heeft. Dit knooppunt verwacht een section/group/field
-string.depends
attribute
attribute
include
system_include.xsd
compatibele bestanden op te nemen. Wordt meestal gebruikt om grote system.xml
bestanden te structureren.includeType
more_url
, demo_url
en help_url
worden gedefinieerd door een PayPal-frontendmodel dat slechts eenmaal wordt gebruikt. Deze knooppunten kunnen niet opnieuw worden gebruikt.Voorbeeld: een groep maken voor een bepaalde sectie
In het volgende codefragment ziet u het basisgebruik van het maken van een nieuwe groep.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="A_UNIQUE_ID" translate="label" class="a-custom-css-class-to-style-this-tab" sortOrder="10">
<label>A meaningful label</label>
</tab>
<section id="A_UNIQUE_SECTION_ID" showInDefault="1" showInWebsite="0" showInStore="1" sortOrder="10" translate="label">
<label>A meaningful section label</label>
<tab>A_UNIQUE_ID</tab>
<resource>VENDOR_MODULE::path_to_the_acl_resource</resource>
<group id="A_UNIQUE_GROUP_ID" translate="label comment" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="1">
<label>A meaningful group label</label>
<comment>An additional comment helping users to understand the effect when configuring the fields defined in this group.</comment>
<!-- Add your fields here. -->
</group>
</section>
</system>
</config>
De hierboven beschreven groep definieert de id A_UNIQUE_GROUP_ID
, is zichtbaar in de standaardconfiguratieweergave en in een archiefcontext. Zowel label
als comment
zijn gemarkeerd als te vertalen.
Velden
De <field>
-tag wordt gebruikt binnen <group>
-tags om specifieke configuratiewaarden te definiëren.
Verwijzing veldkenmerk
Een <field>
-tag kan de volgende kenmerken hebben:
id
typeId
translate
label
op om het label vertaalbaar te maken. Meerdere velden moeten worden gescheiden door een spatie.string
type
text
.string
sortOrder
float
showInDefault
1
op om het veld weer te geven en 0
om het veld te verbergen.int
showInStore
1
op om het veld weer te geven en 0
om het veld te verbergen.int
showInWebsite
1
op om het veld weer te geven en 0
om het veld te verbergen.int
canRestore
int
advanced
bool
extends
string
Verwijzing naar veldtype
Een <field>
-tag kan de volgende waarden voor het type=""
-kenmerk hebben:
text
textarea
select
source_model
vereist. Wordt ook gebruikt voor Yes/No
selecties. Zie Magento\Search\Model\Adminhtml\System\Config\Source\Engine
voor een voorbeeld.multiselect
select
maar meerdere opties zijn geldig.button
Magento\ScheduledImportExport\Block\Adminhtml\System\Config\Clean
voor een voorbeeld.obscure
**​**
. Als u de tekst wijzigt met "Inspect Element" in de browser, wordt de waarde niet weergegeven.password
obscure
wordt de verborgen waarde niet gecodeerd en wordt de waarde zichtbaar wanneer u het type met "Inspect Element" in de browser geforceerd wijzigt.file
label
time
allowspecific
source_model
zoals Magento\Shipping\Model\Config\Source\Allspecificcountries
vereistimage
note
frontend_model
vereist om de notitie te renderen.Het is ook mogelijk een aangepast veldtype te maken. Dit wordt vaak gedaan wanneer een speciale knoop, met een actie, wordt vereist. Hiervoor zijn twee hoofdelementen nodig:
- Een blok maken in het gebied
adminhtml
- De
type=""
instellen op het pad naar dit blok
Voor het blok zelf zijn ten minste een methode __construct
en een methode getElementHtml()
vereist. Magento_OfflineShippingis een eenvoudig voorbeeld van een douanetype.
In de module OfflineShipping bijvoorbeeld wordt de knop Exporteren gedefinieerd in Magento\OfflineShipping\Block\Adminhtml\Form\Field\Export
en ziet de velddefinitie er als volgt uit:
<field id="export" translate="label" type="Magento\OfflineShipping\Block\Adminhtml\Form\Field\Export" sortOrder="5" showInDefault="0" showInWebsite="1" showInStore="0">
<label>Export</label>
</field>
Referentie van veldknooppunt
Een <field>
-tag kan de volgende onderliggende elementen hebben:
label
string
comment
<![CDATA[//]]>
kunt u HTML toepassen.string
tooltip
string
hint
frontend_model
.string
frontend_class
string
frontend_model
typeModel
backend_model
typeModel
source_model
typeModel
config_path
typeConfigPath
validate
string
can_be_empty
type
multiselect
is om op te geven dat een veld leeg kan zijn.int
if_module_enabled
typeModule
base_url
upload_dir
voor het uploaden van bestanden.typeUrl
upload_dir
typeUploadDir
button_url
button_url
en button_label
zijn opgegeven. Gewoonlijk gebruikt in combinatie met een aangepast frontend model.typeUrl
button_label
button_label
en button_url
zijn opgegeven. Gewoonlijk gebruikt in combinatie met een aangepast frontend model.string
more_url
typeUrl
demo_url
typeUrl
hide_in_single_store_mode
1
verbergt de groep; in 0
wordt de groep weergegeven.int
options
complexType
depends
1
heeft. Dit knooppunt verwacht een section/group/field
-string.complexType
attribute
complexType
requires
complexType
more_url
, demo_url
, requires
en options
worden gedefinieerd door een ander basisbetalingsmodel en worden slechts eenmaal gebruikt. Deze knooppunten kunnen niet opnieuw worden gebruikt.Voorbeeld: twee velden maken in een bepaalde groep
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="A_UNIQUE_ID" translate="label" class="a-custom-css-class-to-style-this-tab" sortOrder="10">
<label>A meaningful label</label>
</tab>
<section id="A_UNIQUE_SECTION_ID" showInDefault="1" showInWebsite="0" showInStore="1" sortOrder="10" translate="label">
<label>A meaningful section label</label>
<tab>A_UNIQUE_ID</tab>
<resource>VENDOR_MODULE::path_to_the_acl_resource</resource>
<group id="A_UNIQUE_GROUP_ID" translate="label" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="1">
<label>A meaningful group label</label>
<comment>An additional comment helping users to understand the effect when configuring the fields defined in this group.</comment>
<field id="A_UNIQUE_FIELD_ID" translate="label" sortOrder="10" showInDefault="0" showInWebsite="0" showInStore="1" type="select">
<label>Feature Flag Example</label>
<comment>This field is an example for a basic yes or no select.</comment>
<tooltip>Usually these kinds of fields are used to enable or disable a given feature. Other fields might be dependent to this and will only appear if this field is set to yes.</tooltip>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="ANOTHER_UNIQUE_FIELD_ID" translate="label" sortOrder="10" showInDefault="0" showInWebsite="0" showInStore="1" type="text">
<label>A meaningful field label</label>
<comment>A descriptive text explaining this configuration field.</comment>
<tooltip>Another possible frontend element that also can be used to describe the meaning of this field. Will be displayed as a small icon beside the field.</tooltip>
<validate>required-entry no-whitespace</validate> <!-- Field is required and must not contain any whitespace. -->
<if_module_enabled>VENDOR_MODULE</if_module_enabled>
<depends> <!-- This field will only be visible if the field with the id A_UNIQUE_FIELD_ID is set to value 1 -->
<field id="A_UNIQUE_FIELD_ID">1</field>
</depends>
</field>
</group>
</section>
</system>
</config>
In het bovenstaande voorbeeld worden twee velden gemaakt, zowel in de standaardweergave als in de winkelweergave zichtbaar/configureerbaar. Beide velden hebben een opmerking en knopinfo waarin het doel voor de gebruiker wordt beschreven. Het knooppunt label
is vertaalbaar.
Het veld met de id ANOTHER_UNIQUE_FIELD_ID
is zichtbaar wanneer de opgegeven module in if_module_enabled
algemeen is ingeschakeld. De waarde van het veld wordt ook gevalideerd op basis van de regels required-entry
en no-whitespace
.
Het veld met de id A_UNIQUE_FIELD_ID
definieert een ander bronmodel dat de waarden Yes
en No
bevat.
Gemeenschappelijke bronmodellen
De volgende bronmodellen worden geleverd door de Commerce 2 Core. Over het algemeen zijn er veel meer bronmodellen. In de volgende lijst worden de meest voorkomende modellen beschreven. Houd er rekening mee dat voor deze bronmodellen het veldkenmerk type
moet worden ingesteld op select
om correct te werken.
Magento\Config\Model\Config\Source\Yesnocustom
Yes
, No
en Specified
op.Magento\Config\Model\Config\Source\Enabledisable
Enable
, Disable
. Hiermee slaat u de waarden op als 0
en 1
in de database.Magento\AdminNotification\Model\Config\Source\Frequency
1 Hour
, 2 Hours
, 6 Hours
, 12 Hours
en 24 Hours
. Waarden worden opgeslagen als gehele getallen.Magento\Catalog\Model\Config\Source\TimeFormat
Magento\Cron\Model\Config\Source\Frequency
Daily
, Weekly
en Monthly
op. Waarden worden in de database opgeslagen als D
, W
en M
.Magento\GoogleAdwords\Model\Config\Source\Language
Magento\Config\Model\Config\Source\Locale
Veldvalidatie
Aan een veld kunnen een of meer validatieklassen worden toegewezen om te controleren of de invoer van de gebruiker voldoet aan de vereisten voor de extensie. Validatieregels kunnen worden toegepast met de tag <validate>
-Tag.
In het volgende voorbeeld wordt een veld gevalideerd en worden verschillende validatieregels toegevoegd.
<field id="A_CUSTOM_IDENTIFIER" showInDefault="1" showInWebsite="0" showInStore="1">
<validate>required-entry validate-clean-url no-whitespace</validate>
</field>
De volgende validatieregels zijn beschikbaar:
alphanumeric
integer
ipv4
ipv6
letters-only
abcABC
.letters-with-basic-punc
moet de volgende uitdrukking overgaan:
/^[a-z\-.,()\u0027\u0022\s]+$/i
.mobileUK
no-marginal-whitespace
no-whitespace
phoneUK
phoneUS
required-entry
validate-no-empty
).de mislukkingsbericht van de Bevestiging: "Dit is een vereist gebied."
time
15
, 15:05
of 15:05:48
.time12h
3 am
, 11:30 pm
, 02:15:00 pm
.validate-admin-password
validate-alphanum-with-spaces
validate-clean-url
https://www.example.com
of www.example.com
.validate-currency-dollar
validate-data
het eerste karakter moet een brief zijn.
(Moet uitdrukking aanpassen:
/^[A-Za-z]+[A-Za-z0-9_]+$/
)de mislukkingsbericht van de Bevestiging: "Gelieve te gebruiken slechts brieven (a-z of A-Z), aantallen (0-9) of onderstrepingsteken (_) op dit gebied, en het eerste karakter zou een brief moeten zijn."
validate-date-au
validate-email
validate-emailSender
validate-fax
validate-no-empty
requried-entry
).de mislukkingsbericht van de Bevestiging: "Lege waarde."
validate-no-html-tags
validate-password
validate-phoneLax
validate-phoneStrict
validate-select
null
-waarde, tekenreekswaarde none
of tekenreekslengte 0 heeft.validate-ssn
validate-street
validate-url
validate-xml-identifier
validate-zip-us
vinUS
Standaardwaarden
U kunt standaardwaarden voor velden instellen in het etc/config.xml
-bestand van de module door de standaardwaarde in het section/group/field_ID
-knooppunt op te geven.
Voorbeeld: de standaardwaarde instellen voor ANOTHER_UNIQUE_FIELD_ID
(standaardbereik)
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<A_UNIQUE_SECTION_ID>
<A_UNIQUE_GROUP_ID>
<ANOTHER_UNIQUE_FIELD_ID>This is the default value</ANOTHER_UNIQUE_FIELD_ID>
</A_UNIQUE_GROUP_ID>
</A_UNIQUE_SECTION_ID>
</default>
</config>
Voorbeeld: de standaardwaarde instellen voor ANOTHER_UNIQUE_FIELD_ID
(bereik website)
Geef met de tag websites
de standaardwaarde voor een specifieke website op.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<websites>
<WEBSITE_CODE>
<A_UNIQUE_SECTION_ID>
<A_UNIQUE_GROUP_ID>
<ANOTHER_UNIQUE_FIELD_ID>This is the default value</ANOTHER_UNIQUE_FIELD_ID>
</A_UNIQUE_GROUP_ID>
</A_UNIQUE_SECTION_ID>
</WEBSITE_CODE>
</websites>
</config>