function flag_flag_insert in Flag 8.4
Implements hook_ENTITY_TYPE_insert().
File
- ./
flag.module, line 597 - The Flag module.
Code
function flag_flag_insert(FlagInterface $flag) {
if ($flag
->isSyncing()) {
// Do not create actions when config is progress of synchronization.
return;
}
// The action plugin cache needs to detect the new flag.
/** @var \Drupal\Core\Action\ActionManager $action_manager */
$action_manager = \Drupal::service('plugin.manager.action');
$action_manager
->clearCachedDefinitions();
// Add the flag/unflag actions for this flag and entity combination.
$flag_id = 'flag_action.' . $flag
->id() . '_flag';
if (!Action::load($flag_id)) {
$action = Action::create([
'id' => $flag_id,
'type' => $flag
->getFlaggableEntityTypeId(),
'label' => $flag
->getShortText('flag'),
'plugin' => 'flag_action:' . $flag
->id() . '_flag',
'configuration' => [
'flag_id' => $flag
->id(),
'flag_action' => 'flag',
],
]);
$action
->trustData()
->save();
}
$unflag_id = 'flag_action.' . $flag
->id() . '_unflag';
if (!Action::load($unflag_id)) {
$action = Action::create([
'id' => $unflag_id,
'type' => $flag
->getFlaggableEntityTypeId(),
'label' => $flag
->getShortText('unflag'),
'plugin' => 'flag_action:' . $flag
->id() . '_unflag',
'configuration' => [
'flag_id' => $flag
->id(),
'flag_action' => 'unflag',
],
]);
$action
->trustData()
->save();
}
}