function flag_entity_extra_field_info in Flag 8.4
Implements hook_entity_extra_field_info().
File
- ./
flag.module, line 263 - The Flag module.
Code
function flag_entity_extra_field_info() {
$extra = [];
$flag_service = \Drupal::service('flag');
$flags = $flag_service
->getAllFlags();
/** @var FlagInterface $flag */
foreach ($flags as $flag) {
// Skip flags that aren't on entities.
$flag_type_plugin = $flag
->getFlagTypePlugin();
if (!$flag_type_plugin instanceof EntityFlagType) {
continue;
}
$flaggable_bundles = $flag
->getApplicableBundles();
foreach ($flaggable_bundles as $bundle_name) {
if ($flag_type_plugin
->showOnForm()) {
$extra[$flag
->getFlaggableEntityTypeId()][$bundle_name]['form']['flag'] = [
'label' => t('Flags'),
'description' => t('Checkboxes for toggling flags'),
'weight' => 10,
];
}
if ($flag_type_plugin
->showAsField()) {
$extra[$flag
->getFlaggableEntityTypeId()][$bundle_name]['display']['flag_' . $flag
->id()] = [
'label' => t('Flag: %title', [
'%title' => $flag
->label(),
]),
'description' => t('Individual flag link'),
'weight' => 10,
];
}
}
}
return $extra;
}