You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/create-custom-content-type/step-1-add-configuration.md
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -70,6 +70,7 @@ The `type` element defines the key properties of your content type. The attribut
70
70
|`icon`| Optional. Class name for your PNG or SVG image (or font icon) displayed in the Page Builder panel alongside the label. If you don't provide an icon value, the Page Builder panel displays the content type name without an icon. |
71
71
|`sortOrder`| Optional. The listed order within the menu section. For example, `sortOrder=21` puts the content type third in the `Elements` menu section, after the content types with `sortOrder` values of 10 and 20. |
72
72
|`translate`| Identifies the attribute you want Magento to translate. Here, the `label` value is set for translation. |
Copy file name to clipboardExpand all lines: docs/create-custom-content-type/step-2-add-templates.md
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,7 @@ The following table describes each `appearance` attribute in our example.
62
62
|`preview_template`| References the `preview.html` (the Admin preview template) for rendering the preview appearance of your content type on the stage within the Admin UI. |
63
63
|`master_template`| References the `master.html` (the master format storefront template) for rendering the appearance of your content type on the storefront for customers to see. |
64
64
|`reader`| Reads content type data from the master format. |
Copy file name to clipboardExpand all lines: docs/create-custom-content-type/step-3-add-components.md
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -67,6 +67,7 @@ A description of each component-related attribute from the Quote configuration f
67
67
|`component`| Page Builder provides two component types to choose from: `content-type` and `content-type-collection`. Use `Magento_PageBuilder/js/content-type` for static content types that do not have children (like our Quote). Use `Magento_PageBuilder/js/content-type-collection` for content types that can contain children (container content types). You can also create and specify your own component implementations, provided they conform to the Page Builder interfaces. |
68
68
|`preview_component`| Optional. The `preview.js` file provides rendering logic to the Admin preview template. If your content type does not require any changes to Page Builder's standard rendering logic, you can omit this attribute from the the `type` element. When you omit the attribute, Page Builder will use `Magento_PageBuilder/js/content-type/preview` by default.<br /><br />However, if you want to make changes to the option menu for your content type, or other customize other user-interactivity in the Admin, you need to create your own preview component as we have done for the Quote content type. |
69
69
|`master_component`| Optional. The `master.js` file provides rendering logic to the master format storefront template. As with the `preview_component`, if your content type does not require any specific user-interactivity or other behavior when it's displayed in the storefront, you can simply omit this attribute from the the `type` element. When you omit the attribute, Page Builder will use `Magento_PageBuilder/js/content-type/master` by default. <br /><br />In the Quote configuration, the `master_component` attribute is only included for discussion. It simply points to the Page Builder default `master.js` component that would be used the attribute was omitted. |
|`form`| Name of the UI component form that provides the form editor for your content type. |
59
+
{:style="table-layout:auto"}
59
60
60
61
## The Quote form
61
62
@@ -71,6 +72,7 @@ The purpose of each field is described as follows:
71
72
| Author | A text input field for the author's name. |
72
73
| Description | A text input field to describe the author's title or origin of the quote. |
73
74
| CSS for Quote | A text input field for end-users to add CSS class names for styling the text in the Quote field. This option is detailed in [Step 5: Add styles](step-5-add-styles.md). |
75
+
{:style="table-layout:auto"}
74
76
75
77
The Quote form is shown in full here for you to copy into your `pagebuilder_example_form.xml` file, followed by descriptions of the key parts.
76
78
@@ -234,6 +236,7 @@ Page Builder requires fields to be grouped within named `<fieldset>` elements. F
|`name`| You can name your fieldset whatever you want. Currently, it has no significance for data binding. |
236
238
|`sortOrder`| Determines where Page Builder puts the fieldset within the editor in relation to other fieldsets. Page Builder sets the `sortOrder` for the `pagebuilder_base_form` fieldset to `90`. Setting your fieldset to a value less than that (such as `20`) will put your fieldset above both inherited fieldsets. A value greater than `90` will put your fieldset below the inherited fieldsets. |
239
+
{:style="table-layout:auto"}
237
240
238
241
### field
239
242
@@ -244,6 +247,7 @@ The `<field>` element creates the actual HTML form element as specified by the `
244
247
|`name`| The name of the field used for data bindings. |
245
248
|`sortOrder`| Determines where Page Builder puts the field within the fieldset in relation to other fields. |
246
249
|`formElement`| Determines the HTML form element to render for the field. |
250
+
{:style="table-layout:auto"}
247
251
248
252
### data source
249
253
@@ -277,6 +281,7 @@ The `<settings>` element defines the data scope, data type, and label to use for
277
281
|`dataScope`| Specifies the name of your input field for data binding. The `dataScope` node allows you to change the value of the `name` attribute for your input field. We do not need to change the field name value, so we keep our dataScope value the same as our field name. |
278
282
|`dataType`| Specifies the data type for the field's data. Common values are `text` and `boolean`. |
279
283
|`label`| Specifies the text label applied to the input field on the form. |
284
+
{:style="table-layout:auto"}
280
285
281
286
## Quote form layout
282
287
@@ -340,6 +345,7 @@ The `<element>` element provides a scope for the data bindings within it.
|`name`| Specifies the name of the element scope for the data binding when applied to template elements. In our example, the element name of `main` is used as the scope for binding styles and other attributes to the top-level `<div>` element in our template: `<div attr="data.main.attributes" ko-style="data.main.style">`|
348
+
{:style="table-layout:auto"}
343
349
344
350
#### style
345
351
@@ -353,6 +359,7 @@ The `<style>` element configures the bindings from the form style fields to the
353
359
|`preview_converter`| Converts the value for the preview. Used for cases where the conversion logic is different between the two views. |
354
360
|`storage_key`| Optional variable name for value in the data storage. If no value is provided, the `name` attribute will be used. |
355
361
|`reader`| Reader used for parsing attributes and properties out of the DOM. Should not be used with read-only persistence_mode. |
362
+
{:style="table-layout:auto"}
356
363
357
364
#### attribute
358
365
@@ -362,6 +369,7 @@ The `<attribute>` element provides a mechanism to attach DOM attributes to templ
|`name`| Specifies the name of the form field to bind to. |
381
+
{:style="table-layout:auto"}
373
382
374
383
For example, in our Quote configuration, we define an `<element>` named `quote` with a `<css>` element bound to an input field in our form named `quote_css`, as shown here:
375
384
@@ -415,6 +424,7 @@ The `<html>` element binds the HTML content entered in a form field. When the `<
|`name`| Specifies the name of the form field to bind to. |
427
+
{:style="table-layout:auto"}
418
428
419
429
For example, as with the previous `css` binding, the Quote configuration defines the `<element>` named `quote` with an `<html>` element that is bound to an input field in our form named `quote_text`, as shown here:
Copy file name to clipboardExpand all lines: docs/create-custom-content-type/step-6-add-icon.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -50,6 +50,7 @@ The CSS for integrating SVG and PNG images with the font icons used by Page Buil
50
50
|`width`| Sets the width of the content area that most closely matches the widths of Page Builder icon fonts. |
51
51
|`height`| Sets the height of the content area that most closely matches the widths of Page Builder icon fonts. |
52
52
|`margin-bottom`| Pulls the SVG or PNG image down within the panel container to more closely match the positioning of Page Builder's font icon. |
53
+
{:style="table-layout:auto"}
53
54
54
55
When deployed, your icon images are linked from `pub/static` as shown here:
55
56
@@ -77,7 +78,6 @@ The last step is to add our icon's class name to our config file. Previous to th
77
78
That's it. Now you can regenerate your static assets, empty your browser cache, and do a hard reload of your Admin page to see your new icon in the panel.
78
79
79
80
## Next
80
-
81
-
Congratulations! You just finished the last step in this tutorial. To wrap things up, find out [What's next](whats-next.md).
If you made it this far, congratulations! We hope this tutorial was useful for learning the basics of creating a completely new content type for your end users.
4
+
5
+
## Next topics
6
+
Review the following topics to learn more about customizing Page Builder:
7
+
8
+
### Tutorials
9
+
10
+
-[Extend an existing content type](../extend-existing-content-type/overview.md)
11
+
12
+
### How-Tos
13
+
14
+
-[How to customize the Page Builder panel](../how-to/how-to-customize-panel.md)
15
+
-[How to add an image uploader](../how-to/how-to-add-image-uploader.md)
16
+
-[How to add a storefront widget](../how-to/how-to-add-storefront-widget.md)
17
+
-[How to add a custom toolbar](../how-to/how-to-add-custom-toolbar.md)
18
+
-[How to add icons and images](../how-to/how-to-add-icons-images.md)
19
+
-[How to change breakpoints](../how-to/how-to-change-breakpoints.md)
Copy file name to clipboardExpand all lines: docs/extend-existing-content-type/overview.md
+7-6Lines changed: 7 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Overview
2
2
3
-
One of quickest ways to customize Page Builder is by changing how _existing_ content types look and behave. End-users can already edit Page Builder's content types in several ways. But sometimes your end-users will want to change the structure or modify properties that do not exist on a given content type. In those cases, you can extend an existing content type by customizing its existing_appearance_ or adding a new _appearance_.
3
+
One of the quickest ways to customize Page Builder is by changing how _existing_ content types look and behave. Endusers can already use Page Builder's content types to customize their content using the form editor. But your endusers may want to change the structure or set properties that do not exist on the content type. In those cases, you can extend an existing content type by customizing its _appearance_ or adding a new _appearance_.
4
4
5
5
## Appearances
6
6
7
-
An **appearance** is an XML element in a content type's configuration file that lets you modify existing properties, templates, styles, and form fields, or create new ones. In other words, all Page Builder content types (existing or custom) are extended through appearances.
7
+
An **appearance** is an XML element (in the content type's configuration file) that defines a view for your content type. This view defines HTML templates, styles, form fields, and other elements that you can customize in various ways. To extend existing Page Builder content types, you can either modify existing appearances or create new ones.
8
8
9
9
Many of Page Builder's content types have only one `appearance` element. These include the Heading, Text, Image, Video, Tabs, and more. Other content types have several appearances. For example, the Banner content type has four appearances, as shown here:
10
10
@@ -21,7 +21,8 @@ Page Builder defines these appearances in the Banner's configuration file (`Mage
21
21
</appearances>
22
22
```
23
23
24
-
Within each `appearance` element, you can change content types in the following ways:
24
+
In Page Builder 1.0.0, when you customize content types that have multiple appearances (like the Banner), you must apply your changes to all the appearances, not just one. Customizing a single appearance of a content type that defines multiple appearances is not currently supported.
25
+
You can use appearances to change content types in the following ways:
25
26
26
27
- Add new style properties.
27
28
- Add or change templates.
@@ -31,19 +32,19 @@ Within each `appearance` element, you can change content types in the following
31
32
32
33
## Banner extension tutorial
33
34
34
-
In this tutorial, you will extend the Banner content type by adding a new `max-height` style property to two of the Banner's existing appearances: `collage-left` and `collage-right`.
35
+
In this tutorial, you will learn how to extend one of Page Builder's existing content types by adding a new `max-height` style property to the Banner's existing appearances.
35
36
36
37
{:width="815px" height="auto"}
37
38
38
39
## Banner extension steps
39
40
40
-
These steps show the basic pattern for adding style properties using existing appearances to extend a content type:
41
+
These steps show the basic pattern for adding style properties and form fields to existing content type appearances:
Copy file name to clipboardExpand all lines: docs/extend-existing-content-type/step-1-create-extension-module.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
# Step 1: Create an extension module
2
2
3
-
Appearance extensions for Page Builder are implemented using modules. In this step, we will create an empty module so we can add our appearance and form extensions in steps 2 and 3, as shown here:
3
+
The first step to creating appearance customizations for existing Page Builder content types is to create a standard Magento module. In this step, we create an empty module so we can add our appearance and form extensions in steps 2 and 3:
The convention for naming extension modules is to prefix your extension of an existing content type with `PageBuilderExtension`, followed by the name of the content type. This is not a required convention, but we find that it helps visually group extension modules within your vendor directory.
13
+
The convention for naming extension modules is to prefix your extension of an existing content type with `PageBuilderExtension`, followed by the name of the content type. This is not a required convention, but we find it helps group extension modules within your vendor directory.
0 commit comments