SplitButton extends AbstractButton

SplitButton

This button type renders a bootstrap split button. It takes multiple button objects as parameters.

The button objects must contain at least one primary button that is displayed as the main icon, and all other items will be revealed within a dropdown.

If a button is of Type "LinkButton" it will not utilize a HTML <button> tag, but instead use <a>.

Example:

$buttonBar = $this->moduleTemplate->getDocHeaderComponent()->getButtonBar();

$saveButton = $buttonBar->makeInputButton()
     ->setName('save')
     ->setValue('1')
     ->setIcon($this->iconFactory->getIcon('actions-document-save', IconSize::SMALL))
     ->setTitle('Save');

$saveAndCloseButton = $buttonBar->makeInputButton()
     ->setName('save_and_close')
     ->setValue('1')
     ->setTitle('Save and close')
     ->setIcon($this->iconFactory->getIcon('actions-document-save-close', IconSize::SMALL));

$saveAndShowPageButton = $buttonBar->makeInputButton()
     ->setName('save_and_show')
     ->setValue('1')
     ->setTitle('Save and show')
     ->setIcon($this->iconFactory->getIcon('actions-document-save-view', IconSize::SMALL));

$moduleLink = $buttonBar->makeLinkButton()
     ->setHref((string)$this->uriBuilder->buildUriFromRoute('file_edit', $parameter))
     ->setDataAttributes(['customAttribute' => 'customValue'])
     ->setShowLabelText(true)
     ->setTitle('Edit file')
     ->setIcon($this->iconFactory->getIcon('file-edit', IconSize::SMALL));

$splitButtonElement = $buttonBar->makeSplitButton()
     ->addItem($saveButton, true)
     ->addItem($saveAndCloseButton)
     ->addItem($moduleLink)
     ->addItem($saveAndShowPageButton);

Table of Contents

Properties

$classes  : string
HTML tag attribute for class
$containsPrimaryAction  : bool
Internal var that determines whether the split button has received any primary actions yet
$dataAttributes  : array<string|int, mixed>
HTML tag attributes for data-* Use key => value pairs
$disabled  : bool
Disabled state of the button
$icon  : Icon
Icon object
$items  : array<string|int, mixed>
Internal array of items in the split button
$showLabelText  : bool
Defines whether to show the title as a label within the button
$title  : string
HTML tag attribute for title

Methods

__toString()  : string
Magic method so Fluid can access a button via {button}
addItem()  : $this
Adds an instance of any button to the split button
getButton()  : array<string|int, mixed>
Returns the current button
getClasses()  : string
Get classes
getDataAttributes()  : array<string|int, mixed>
Get Data attributes
getIcon()  : Icon
Get icon
getShowLabelText()  : bool
Show Label text
getTitle()  : string
Get Title
getType()  : string
Get type
isDisabled()  : bool
Check if button is disabled
isValid()  : bool
Validates the current button
render()  : string
Renders the HTML markup of the button
setClasses()  : $this
Set classes
setDataAttributes()  : $this
Set Data attributes
setDisabled()  : AbstractButton
Set if button needs to be disabled
setIcon()  : $this
Set icon
setShowLabelText()  : $this
Show Label text
setTitle()  : $this
Set title attribute

Properties

$classes

HTML tag attribute for class

protected string $classes = ''

$containsPrimaryAction

Internal var that determines whether the split button has received any primary actions yet

protected bool $containsPrimaryAction = false

$dataAttributes

HTML tag attributes for data-* Use key => value pairs

protected array<string|int, mixed> $dataAttributes = []

$disabled

Disabled state of the button

protected bool $disabled = false

$items

Internal array of items in the split button

protected array<string|int, mixed> $items = []

$showLabelText

Defines whether to show the title as a label within the button

protected bool $showLabelText = false

$title

HTML tag attribute for title

protected string $title = ''

Methods

__toString()

Magic method so Fluid can access a button via {button}

public __toString() : string
Return values
string

addItem()

Adds an instance of any button to the split button

public addItem(AbstractButton $item[, bool $primaryAction = false ]) : $this
Parameters
$item : AbstractButton

ButtonObject to add

$primaryAction : bool = false

Is the button the primary action?

Tags
throws
InvalidArgumentException

In case a button is not valid

Return values
$this

getButton()

Returns the current button

public getButton() : array<string|int, mixed>
Return values
array<string|int, mixed>

getClasses()

Get classes

public getClasses() : string
Return values
string

getDataAttributes()

Get Data attributes

public getDataAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed>

getShowLabelText()

Show Label text

public getShowLabelText() : bool
Return values
bool

getTitle()

Get Title

public getTitle() : string
Return values
string

getType()

Get type

public getType() : string
Return values
string

isDisabled()

Check if button is disabled

public isDisabled() : bool
Return values
bool

isValid()

Validates the current button

public isValid() : bool
Return values
bool

render()

Renders the HTML markup of the button

public render() : string
Return values
string

setClasses()

Set classes

public setClasses(string $classes) : $this
Parameters
$classes : string

HTML class attribute to set

Return values
$this

setDataAttributes()

Set Data attributes

public setDataAttributes(array<string|int, mixed> $dataAttributes) : $this
Parameters
$dataAttributes : array<string|int, mixed>

HTML data attributes to set

Return values
$this

setIcon()

Set icon

public setIcon(Icon $icon) : $this
Parameters
$icon : Icon

Icon object for the button

Return values
$this

setShowLabelText()

Show Label text

public setShowLabelText(bool $showLabelText) : $this
Parameters
$showLabelText : bool
Return values
$this

setTitle()

Set title attribute

public setTitle(string $title) : $this
Parameters
$title : string

HTML title attribute to set

Return values
$this

        
On this page

Search results