Default options structure
Every option has the following default arguments:
Name
Type
Default
Description
type *
String
Name of the vue component
description
String
Text that appears on popup explaining what the option does.
title *
String
Text that displays as a title above the option
* Mandatory argument
They also support the following arguments which are optional:
Name
Type
Default
Description
default
String / Boolean / Array
The default value of the option
css_style
Array
Adds css style to an element component
$options->add_option(
'title_color',
[
'type' => 'colorpicker',
'width' => 50,
'title' => __( 'Title color', 'zionbuilder' ),
'css_style' => [
[
'selector' => '{{ELEMENT}} .zb-el-alert__title',
'value' => 'color: {{VALUE}}',
],
],
]
);
sync
String
It creates the synchronicity with the correspondent option from Styling. Ex:
$options->add_option(
'title_color',
[
'type' => 'colorpicker',
'width' => 50,
'title' => __( 'Title color', 'zionbuilder' ),
'sync' => '_styles.wrapper.styles.%%RESPONSIVE_DEVICE%%.default.align-items'
]
);
render_attribute
Array
Renders an attribute on the element component such as class name
$options->add_option(
'size',
[
'type' => 'column_size',
'title' => __( 'Select size', 'zionbuilder' ),
'options' => [
[
'id' => 6,
'name' => 2,
],
],
'responsive_options' => true,
'render_attribute' => [
[
'tag_id' => 'wrapper',
'attribute' => 'class',
'value' => 'class--{{RESPONSIVE_DEVICE_CSS}}-{{VALUE}}',
],
]
]
);
responsive_options
Boolean
false
Conditions if the option should render the element with responsive media queries
show_responsive_buttons
Boolean
false
Shows the responsive button if enabled
layout
String
‘full’
Controls the layout of the option : ‘full’ ‘full-reverse’ ‘inline’
width
Number
100
The percentage width of the option
dependency
Array
Conditions the current option to render only if other option has a property enabled. It supports multiple dependencies.
$options->add_option(
'size',
[
'type' => 'column_size',
'title' => __( 'Select size', 'zionbuilder' ),
'options' => [
[
'id' => 6,
'name' => 2,
],
],
'dependency' => [
[
'option' => 'option_id',
'value' => ['style--1', 'style--2', 'style--3'],
],
],
]
);
dynamic
Array
If enabled, shows the dynamic input fields
$options->add_option(
'text',
array(
'type' => 'editor',
'title' => esc_html__( 'Element text', 'zionbuilder' ),
'description' => esc_html__( 'Set the desired title', 'zionbuilder' ),
'dynamic' => array(
'enabled' => true,
),
)
);
The code would look something like:
public function options( $options ) {
$options->add_option(
'option_id',
[
'type' => 'text',
'description' => __( 'Set text', 'zionbuilder' ),
'title' => __( 'Option title', 'zionbuilder' ),
'default' => __( 'Press me', 'zionbuilder' ),
'layout' => 'inline',
'responsive_options' => true,
'width' => 50,
'render_attribute' => [
[
'tag_id' => 'wrapper',
'attribute' => 'class',
'value' => 'className{{VALUE}}',
],
],
]
);
}
Last updated
Was this helpful?