Mercurial > hg > isophonics-drupal-site
view core/modules/comment/src/Plugin/Action/DeleteComment.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line source
<?php namespace Drupal\comment\Plugin\Action; use Drupal\Core\Action\ActionBase; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\TempStore\PrivateTempStoreFactory; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Deletes a comment. * * @Action( * id = "comment_delete_action", * label = @Translation("Delete comment"), * type = "comment", * confirm_form_route_name = "comment.multiple_delete_confirm" * ) */ class DeleteComment extends ActionBase implements ContainerFactoryPluginInterface { /** * The tempstore object. * * @var \Drupal\Core\TempStore\PrivateTempStore */ protected $tempStore; /** * The current user. * * @var \Drupal\Core\Session\AccountInterface */ protected $currentUser; /** * Constructs a new DeleteComment object. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin ID for the plugin instance. * @param array $plugin_definition * The plugin implementation definition. * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory * The tempstore factory. * @param \Drupal\Core\Session\AccountInterface $current_user * The current user. */ public function __construct(array $configuration, $plugin_id, array $plugin_definition, PrivateTempStoreFactory $temp_store_factory, AccountInterface $current_user) { $this->currentUser = $current_user; $this->tempStore = $temp_store_factory->get('comment_multiple_delete_confirm'); parent::__construct($configuration, $plugin_id, $plugin_definition); } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('tempstore.private'), $container->get('current_user') ); } /** * {@inheritdoc} */ public function executeMultiple(array $entities) { $info = []; /** @var \Drupal\comment\CommentInterface $comment */ foreach ($entities as $comment) { $langcode = $comment->language()->getId(); $info[$comment->id()][$langcode] = $langcode; } $this->tempStore->set($this->currentUser->id(), $info); } /** * {@inheritdoc} */ public function execute($entity = NULL) { $this->executeMultiple([$entity]); } /** * {@inheritdoc} */ public function access($comment, AccountInterface $account = NULL, $return_as_object = FALSE) { /** @var \Drupal\comment\CommentInterface $comment */ return $comment->access('delete', $account, $return_as_object); } }