The repeater control lets you create repeatable fields. Fields can be cloned, deleted, and sorted via Drag & Drop. Use the fields
argument to set up the field controls.
class Prefix_Element_Posts extends \Bricks\Element {
// Set builder controls
public function set_controls() {
$this->controls['exampleRepeater'] = [
'tab' => 'content',
'label' => esc_html__( 'Repeater', 'bricks' ),
'type' => 'repeater',
'titleProperty' => 'title', // Default 'title'
'default' => [
[
'title' => 'Design',
'description' => 'Here goes the description for repeater item.',
],
[
'title' => 'Code',
'description' => 'Here goes the description for repeater item.',
],
[
'title' => 'Launch',
'description' => 'Here goes the description for repeater item.',
],
],
'placeholder' => esc_html__( 'Title placeholder', 'bricks' ),
'fields' => [
'title' => [
'label' => esc_html__( 'Title', 'bricks' ),
'type' => 'text',
],
'description' => [
'label' => esc_html__( 'Description', 'bricks' ),
'type' => 'textarea',
],
],
];
}
// Render element HTML
public function render() {
$items = $this->settings['exampleRepeater'];
if ( count( $items ) ) {
foreach ( $items as $item ) {
echo '<h4>' . $item['title'] . '</h4>';
echo '<p>' . $item['description'] . '</p>';
}
} else {
esc_html_e( 'No items defined.', 'bricks' );
}
}
}