Configuratie toevoegen | Handleiding voor Adobe Commerce-ontwikkelaars
Het configuratiebestand definieert de instellingen en verwijzingen naar uw inhoudstypebestanden. U zult tijdens het ontwikkelingsproces vaak naar dit bestand terugkeren om referenties bij te werken en instellingen te wijzigen.
Bestanden waarnaar in de configuratie wordt verwezen, zijn de HTML-sjablonen, de JavaScript-componenten, het pictogram dat wordt weergegeven voor uw inhoudstype in het Page Builder-paneel en het UI-componentformulier voor uw inhoudstype-editor in de Admin.
Configuratieconventies
Volgens afspraak vereist Page Builder dat het configuratiebestand zich in de <module_name>/view/adminhtml/pagebuilder/content_type
map.
De naam van uw configuratiebestand moet de naam van uw inhoudstype weergeven, voorafgegaan door de naam van uw moduleleverancier en gescheiden door een onderstrepingsteken (_). Onze modulenaam is bijvoorbeeld: Example/PageBuilderQuote
en ons inhoudstype is een aanhalingsteken, dus we noemen ons configuratiebestand example_quote.xml
en voeg het toe aan onze module binnen de volgende directorystructuur (view/adminhtml/pagebuilder/content_type/
):
De reden dat we voorstellen om uw inhoudstype vooraf te laten gaan aan de naam van uw leverancier, is om te voorkomen dat Magento uw configuratiebestand van het inhoudstype samenvoegt met een ander configuratiebestand met dezelfde naam, of met een toekomstig inhoudstype dat door Magento wordt gepubliceerd.
De example_quote
configuratie
Slechts een subset van configuratie-elementen wordt beschreven in ons Quote-voorbeeld (genoeg om de basisrol van het configuratiebestand te begrijpen). Raadpleeg Configuraties van inhoudstype en Aanvullende configuraties voor meer informatie.
De volgende configuratie is van het inhoudstype Offerte. Een overzicht van deze elementen en attributen wordt beschreven in de volgende tabellen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_PageBuilder:etc/content_type.xsd">
<type name="example_quote"
label="Quote"
menu_section="elements"
component="Magento_PageBuilder/js/content-type"
preview_component="Example_PageBuilderQuote/js/content-type/example-quote/preview"
master_component="Magento_PageBuilder/js/content-type/master"
form="pagebuilder_example_quote_form"
icon="icon-pagebuilder-heading"
sortOrder="21"
translate="label">
<children default_policy="deny"/>
<parents default_policy="deny">
<parent name="column" policy="allow"/>
</parents>
<appearances>
<appearance name="default"
default="true"
preview_template="Example_PageBuilderQuote/content-type/example-quote/default/preview"
master_template="Example_PageBuilderQuote/content-type/example-quote/default/master"
reader="Magento_PageBuilder/js/master-format/read/configurable">
<elements...>
</appearance>
</appearances>
</type>
</config>
De type
element
De type
element definieert de belangrijkste eigenschappen van uw inhoudstype. De attributen uit het vorige codevoorbeeld worden hier beschreven:
Attribuut | Beschrijving |
---|---|
name |
Naam van het inhoudstype dat Magento gebruikt voor het samenvoegen van XML. De conventie voor het gebruik van namen met meerdere woorden is om de woorden te scheiden met koppeltekens. |
label |
Label weergegeven in het Page Builder-paneel, het optiemenu en in het beheerdersstadium. |
menu_section |
Menusectie of categorie in het paneelmenu waar uw inhoudstype wordt weergegeven. De standaardmenusecties zijn Lay-out, Elementen, Media en Inhoud toevoegen. Zie Paneelconfiguraties voor meer details. |
component |
Bekijk het model dat verantwoordelijk is voor het weergeven van het voorbeeld en het masterformaat. De component hoeft de . niet te specificeren .js verlenging. Er zijn twee soorten componenten waaruit u kunt kiezen: content-type en content-type-collection . Gebruik Magento_PageBuilder/js/content-type voor statische inhoudstypen die geen kinderen hebben. Gebruik Magento_PageBuilder/js/content-type-collection voor inhoudstypen die kinderen kunnen bevatten, ook wel containerinhoudstypen genoemd. |
preview_component |
JavaScript-bestand (preview.js of preview-collection.js ) die weergavelogica biedt binnen de beheerdersinterface. De preview-component hoeft de . niet te specificeren .js verlenging.
Voor verzameling inhoudstypen, moet u ofwel naar uw eigen typen verwijzen |
master_component |
JavaScript-bestand (master.js of master-collection.js ) die algemene weergavelogica biedt voor alle verschijningsvormen van uw inhoudstype wanneer weergegeven op de etalage. De mastercomponent hoeft de . niet te specificeren .js verlenging.
Voor verzameling inhoudstypen, moet u ofwel naar uw eigen typen verwijzen |
form |
UI-componentformulier dat de formulierbesturingselementen biedt voor het bewerken van uw inhoudstype. |
icon |
Optioneel. Klassenaam voor uw PNG- of SVG-afbeelding (of lettertypepictogram) weergegeven in het deelvenster Page Builder naast het label. Als u geen pictogramwaarde opgeeft, geeft het deelvenster Page Builder de naam van het inhoudstype weer zonder een pictogram. |
sortOrder |
Optioneel. De vermelde volgorde in het menugedeelte. Bijvoorbeeld, sortOrder=21 zet het inhoudstype op de derde plaats in de Elements menusectie, na de inhoudstypen met sortOrder waarden van 10 en 20. |
translate |
Identificeert het attribuut dat u door Magento wilt laten vertalen. Hier de label waarde is ingesteld voor vertaling. |
De children
element
De children
element bepaalt of uw inhoudstype als onderliggende inhoudstypen andere inhoudstypen kan bevatten. In de Admin UI staat het je toe of verhindert het je te slepen en neer te zetten ander inhoudstypen van het paneel naar uw inhoudstype.
1
<children default_policy="deny"/>
In onze configuratie staan we niet toe dat andere inhoudstypen onderliggend zijn aan ons inhoudstype. Anders gezegd, ons inhoudstype kan geen ouder zijn; we willen alleen dat het het kind is van andere inhoudstypen, wat ons leidt naar de parents
element.
De parents
element
De parents
element bepaalt of andere inhoudstypen een ouder kunnen zijn voor uw inhoudstype. In de Admin UI staat het je toe of verhindert het je te slepen en neer te zetten uw inhoudstype in ander inhoudstypes op het podium.
1
2
3
<parents default_policy="deny">
<parent name="column" policy="allow"/>
</parents>
In onze configuratie is de parents
element first voorkomt dat ons inhoudstype ouders heeft. Als we het daar zouden laten, zouden we ons inhoudstype helemaal niet naar het podium kunnen slepen, omdat zelfs het podium een ouder is. Daarom beperken we de ouders van ons inhoudstype tot slechts één: de column
inhoudstype. Hiermee kunt u uw inhoudstype slepen en neerzetten in kolommen, maar nergens anders.
De appearances
element
De <appearances>
element specificeert een of meer weergaven voor het weergeven van uw inhoudstype. De banner heeft bijvoorbeeld vier verschijningsvormen waaruit u kunt kiezen in de editor, zoals hier wordt weergegeven:
Elk van deze weergaven is gedefinieerd als een appearance
binnen het Banner-configuratiebestand (app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/banner.xml
):
1
2
3
4
5
6
<appearances>
<appearance name="collage-left"...>
<appearance name="collage-centered"...>
<appearance name="collage-right"...>
<appearance name="poster" default="true" ...>
</appearances>
Verder gaan, elk appearance
wordt gedefinieerd door precies twee HTML-sjablonen, één om een voorbeeldweergave weer te geven in de Admin (preview.html
) en de andere om de hoofdweergave weer te geven (master.html
) op uw etalage. We zullen HTML-sjablonen meer bespreken in Sjablonen toevoegen.
De elements
element
De <elements>
element zoals gedefinieerd binnen an appearance
is om de gegevens van de formuliereditor van het inhoudstype toe te wijzen aan het hoofdformaat van het inhoudstype, zodat de waarden die in het formulier zijn ingevoerd, kunnen worden opgeslagen en correct worden weergegeven in het beheerdersstadium en de etalage. We bespreken het inhoudstype elements
in formulier toevoegen
Volgende
Sjablonen toevoegen