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.

Configuratie Hub

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/):

Configuratiebestand Maken

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 preview-collection component of referentie Page Builder’s preview-collection (preview_component="Magento_PageBuilder/js/content-type/preview-collection"). Als u de . niet opgeeft preview_componentPage Builder gebruikt de basis Preview component getoond in de code: Magento_PageBuilder/js/content-type/preview.

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 master-collection component of referentie Page Builder’s master-collection (master_component="Magento_PageBuilder/js/content-type/master-collection"). Als u de . niet opgeeft master_componentPage Builder gebruikt de basis Master component getoond in de code: Magento_PageBuilder/js/content-type/master.

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:

Banner Verschijningen

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

badges

Let’s connect

We hebben altijd zin in nieuwe en uitdagende projecten. We gaan graag met je in gesprek!