mirror of
https://github.com/farmOS/farmOS.git
synced 2024-02-23 11:37:38 +01:00
62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* The farmOS Flags module.
|
|
*/
|
|
|
|
/**
|
|
* Allowed values callback function for the flags field.
|
|
*
|
|
* @return array
|
|
* Returns an array of allowed values for use in form select options.
|
|
*/
|
|
function farm_flag_field_allowed_values() {
|
|
/** @var \Drupal\farm_flag\Entity\FarmFlagInterface[] $flags */
|
|
$flags = \Drupal::entityTypeManager()->getStorage('flag')->loadMultiple();
|
|
$allowed_values = [];
|
|
foreach ($flags as $id => $flag) {
|
|
$allowed_values[$id] = $flag->getLabel();
|
|
}
|
|
return $allowed_values;
|
|
}
|
|
|
|
/**
|
|
* Implements hook_theme().
|
|
*/
|
|
function farm_flag_theme() {
|
|
return [
|
|
'field__flag' => [
|
|
'base hook' => 'field',
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Prepares variables for field--flag templates.
|
|
*
|
|
* Adds classes to each flag wrapper.
|
|
*
|
|
* Default template: field--flag.html.twig.
|
|
*
|
|
* @param array $variables
|
|
* An associative array containing:
|
|
* - element: An associative array containing render arrays for the list of
|
|
* flags.
|
|
*/
|
|
function template_preprocess_field__flag(array &$variables) {
|
|
|
|
// Preprocess list_string flag fields.
|
|
if ($variables['element']['#field_type'] == 'list_string') {
|
|
|
|
/** @var \Drupal\Core\Field\FieldItemListInterface $items */
|
|
$items = $variables['element']['#items'];
|
|
|
|
// Add classes to each flag.
|
|
foreach ($items as $key => $list_item) {
|
|
$classes = ['flag', 'flag--' . $list_item->getString()];
|
|
$variables['items'][$key]['attributes']->addClass($classes);
|
|
}
|
|
}
|
|
}
|