EditTab.php in Workbench Moderation 8
File
src/Plugin/Menu/EditTab.php
View source
<?php
namespace Drupal\workbench_moderation\Plugin\Menu;
use Drupal\Core\Menu\LocalTaskDefault;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\StringTranslation\TranslationInterface;
use Drupal\workbench_moderation\ModerationInformation;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;
class EditTab extends LocalTaskDefault implements ContainerFactoryPluginInterface {
use StringTranslationTrait;
protected $moderationInfo;
protected $entity;
public function __construct(array $configuration, $plugin_id, $plugin_definition, TranslationInterface $string_translation, ModerationInformation $moderation_information) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->stringTranslation = $string_translation;
$this->moderationInfo = $moderation_information;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('string_translation'), $container
->get('workbench_moderation.moderation_information'));
}
public function getRouteParameters(RouteMatchInterface $route_match) {
$this->entity = $route_match
->getParameter($this->pluginDefinition['entity_type_id']);
return parent::getRouteParameters($route_match);
}
public function getTitle(Request $request = NULL) {
if (!$this->moderationInfo
->isModeratableEntity($this->entity)) {
return parent::getTitle($request);
}
return $this->moderationInfo
->isLiveRevision($this->entity) ? $this
->t('New draft') : $this
->t('Edit draft');
}
public function getCacheTags() {
$tags = parent::getCacheTags();
$tags = array_merge($tags, $this->entity
->getCacheTags());
$tags[] = $this->entity
->getEntityType()
->getBundleEntityType() . ':' . $this->entity
->bundle();
return $tags;
}
}
Classes
Name |
Description |
EditTab |
Defines a class for making the edit tab use 'Edit draft' or 'New draft'. |