BadgeListRenderer
extends CellRenderer
in package
Several badges in one cell (0..N), e.g. the allowed roles of an external Api client.
A callback over the whole row entity builds the items (like ComputedRenderer) and reads from a map the presenter preloads (no queries per row).
The badge text is a final string that the template only escapes; it is not translated
(database data such as a role name must not go through the translator). An empty list
prints setEmptyText().
A column with this renderer is not sortable or filterable.
Table of Contents
Properties
- $callback : callable(object): array<int, array{text: string, class: string, title?: string}>|null
- $emptyText : string
Methods
- __construct() : mixed
- create() : static
- getTemplateName() : string
- Cell template name (`Cells/<type>.latte`).
- prepare() : array<string, mixed>
- Variables for the cell template.
- setCallback() : static
- setEmptyText() : static
- Cell text without badges (already translated).
- toCsvValue() : string
- Plain text value of the cell for the CSV export (no HTML/JS); does not change the normal render. The default implementation looks for a text in the vars from {@see prepare()} (key `text`; true for {@see TextRenderer}, {@see ComputedRenderer}, {@see OptionRenderer}, {@see BadgeRenderer}, `Date*Renderer`) and falls back to {@see toString()}. Renderers without a text representation (bool, select, toggle) override it.
- toScalarValue() : mixed
- Column value to a scalar comparable with the keys of `options` maps: a `BackedEnum` becomes its `value`, a pure enum its `name`, a bool 0/1. Other values pass unchanged.
- toString() : string
- Column value (mixed) to text; non-stringable values give an empty string.
Properties
$callback
protected
callable(object): array<int, array{text: string, class: string, title?: string}>|null
$callback
= null
$emptyText
protected
string
$emptyText
= ''
Methods
__construct()
public
final __construct() : mixed
create()
public
static create() : static
Return values
staticgetTemplateName()
Cell template name (`Cells/<type>.latte`).
public
getTemplateName() : string
Return values
stringprepare()
Variables for the cell template.
public
prepare(mixed $value, object $entity, DataGrid $grid, BaseColumn $column) : array<string, mixed>
Parameters
- $value : mixed
- $entity : object
- $grid : DataGrid
- $column : BaseColumn
Return values
array<string, mixed>setCallback()
public
setCallback(callable(object): array<int, array{text: string, class: string, title?: string}> $callback) : static
Parameters
- $callback : callable(object): array<int, array{text: string, class: string, title?: string}>
-
row entity to badges
Return values
staticsetEmptyText()
Cell text without badges (already translated).
public
setEmptyText(string $emptyText) : static
Parameters
- $emptyText : string
Return values
statictoCsvValue()
Plain text value of the cell for the CSV export (no HTML/JS); does not change the normal render. The default implementation looks for a text in the vars from {@see prepare()} (key `text`; true for {@see TextRenderer}, {@see ComputedRenderer}, {@see OptionRenderer}, {@see BadgeRenderer}, `Date*Renderer`) and falls back to {@see toString()}. Renderers without a text representation (bool, select, toggle) override it.
public
toCsvValue(mixed $value, object $entity, DataGrid $grid, BaseColumn $column) : string
Parameters
- $value : mixed
- $entity : object
- $grid : DataGrid
- $column : BaseColumn
Return values
stringtoScalarValue()
Column value to a scalar comparable with the keys of `options` maps: a `BackedEnum` becomes its `value`, a pure enum its `name`, a bool 0/1. Other values pass unchanged.
protected
toScalarValue(mixed $value) : mixed
IMPORTANT: entities return an enum object for enum columns (typed property), so without
this normalization the cell template receives an object and (string) $enum is a fatal
error, not an empty output.
Parameters
- $value : mixed
toString()
Column value (mixed) to text; non-stringable values give an empty string.
protected
toString(mixed $value) : string
An enum prints its value/name; a bool keeps the (string) semantics
(false is empty, not "0"), as the admin always printed it.
Parameters
- $value : mixed