You are here

public static function FlagListsActionsController::createActions in Flag Lists 4.0.x

Add Flag Lists Actions.

Parameters

Drupal\Core\Entity\EntityInterface $entity: The entity to create the Actions for.

2 calls to FlagListsActionsController::createActions()
flag_lists_actions_flagging_collection_presave in modules/flag_lists_actions/flag_lists_actions.module
Implements hook_ENTITY_presave().
flag_lists_actions_install in modules/flag_lists_actions/flag_lists_actions.install
Implements hook_install().

File

modules/flag_lists_actions/src/Controller/FlagListsActionsController.php, line 23

Class

FlagListsActionsController
Class FlagListsActionsController.

Namespace

Drupal\flag_lists_actions\Controller

Code

public static function createActions(EntityInterface $entity) {
  $flag = $entity
    ->getRelatedFlag();

  // 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' => \Drupal::token()
        ->replace($flag
        ->getShortText('flag'), [
        'flagging_collection' => $entity,
      ], [
        'clear',
      ]),
      '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' => \Drupal::token()
        ->replace($flag
        ->getShortText('unflag'), [
        'flagging_collection' => $entity,
      ], [
        'clear',
      ]),
      'plugin' => 'flag_action:' . $flag
        ->id() . '_unflag',
      'configuration' => [
        'flag_id' => $flag
          ->id(),
        'flag_action' => 'unflag',
      ],
    ]);
    $action
      ->trustData()
      ->save();
  }
}