public static function FooTable::preRenderFooTable in FooTable 8.2
Parameters
array $element:
Return value
array
File
- src/
Element/ FooTable.php, line 61
Class
- FooTable
- Provides a render element for a FooTable.
Namespace
Drupal\footable\ElementCode
public static function preRenderFooTable($element) {
$element['#attributes']['class'][] = 'footable';
/* @var \Drupal\footable\FooTableInterface $footable */
$footable = Drupal::service('footable.footable');
$element['#attached']['library'][] = $footable
->getLibrary();
// Add FooTable properties.
foreach (static::getProperties() as $key => $property) {
$default = $property['default'] ?? NULL;
$value = $element['#' . $key] ?? $default;
if ($value !== $default) {
if (is_bool($value)) {
$value = $value ? 'true' : 'false';
}
$element['#attributes']['data-' . $property['key']] = $value;
}
}
if (isset($element['#header']) && is_array($element['#header'])) {
foreach ($element['#header'] as $key => &$header) {
if (!is_array($header) && Element::child($key)) {
$header = [
'data' => $header,
];
}
if ($footable = $header['footable'] ?? NULL) {
unset($header['footable']);
if (isset($footable['sort'])) {
$element['#attributes']['data-sorting'] = 'true';
$header['data-sortable'] = 'true';
$header['data-direction'] = $footable['sort'];
$header['data-breakpoints'] = 'all';
}
}
}
}
return $element;
}