merci-8.x-2.x-dev/modules/merci_line_item/src/MerciLineItemActionBase.php
modules/merci_line_item/src/MerciLineItemActionBase.php
<?php namespace Drupal\merci_line_item; use Drupal\Core\Action\ActionBase; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Session\AccountInterface; use Drupal\user\PrivateTempStoreFactory; use Symfony\Component\DependencyInjection\ContainerInterface; /** */ class MerciLineItemActionBase extends ActionBase { /** * The tempstore object. * * @var \Drupal\user\SharedTempStore */ protected $tempStore; /** * The current user. * * @var \Drupal\Core\Session\AccountInterface */ protected $currentUser; /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('user.private_tempstore'), $container->get('current_user') ); } /** * {@inheritdoc} */ public function executeMultiple(array $entities) { $info = []; /** @var \Drupal\node\NodeInterface $node */ foreach ($entities as $node) { $langcode = $node->language()->getId(); $info[$node->id()][$langcode] = $langcode; } $this->tempStore->set($this->currentUser->id(), $info); } /** * {@inheritdoc} */ public function execute($object = NULL) { $this->executeMultiple([$object]); } /** * {@inheritdoc} */ public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { /** @var \Drupal\node\NodeInterface $object */ return $object->access('delete', $account, $return_as_object); } }