LingotekContentEntityConfigurableActionBase.php in Lingotek Translation 3.2.x
Same filename and directory in other branches
- 8.2 src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 4.0.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.0.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.1.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.3.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.4.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.5.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.6.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.7.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
- 3.8.x src/Plugin/Action/LingotekContentEntityConfigurableActionBase.php
Namespace
Drupal\lingotek\Plugin\ActionFile
src/Plugin/Action/LingotekContentEntityConfigurableActionBase.phpView source
<?php
namespace Drupal\lingotek\Plugin\Action;
use Drupal\Core\Action\ConfigurableActionBase;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\lingotek\LanguageLocaleMapperInterface;
use Drupal\lingotek\LingotekContentTranslationServiceInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
abstract class LingotekContentEntityConfigurableActionBase extends ConfigurableActionBase implements ContainerFactoryPluginInterface {
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The language-locale mapper.
*
* @var \Drupal\lingotek\LanguageLocaleMapperInterface
*/
protected $languageLocaleMapper;
/**
* The Lingotek content translation service.
*
* @var \Drupal\lingotek\LingotekContentTranslationServiceInterface
*/
protected $translationService;
/**
* Constructs a new UploadToLingotekAction action.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin ID for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
* @param \Drupal\lingotek\LanguageLocaleMapperInterface $language_locale_mapper
* The language-locale mapper.
* @param \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service
* The Lingotek content translation service.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, LanguageLocaleMapperInterface $language_locale_mapper, LingotekContentTranslationServiceInterface $translation_service) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entity_type_manager;
$this->languageLocaleMapper = $language_locale_mapper;
$this->translationService = $translation_service;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('entity_type.manager'), $container
->get('lingotek.language_locale_mapper'), $container
->get('lingotek.content_translation'));
}
/**
* {@inheritdoc}
*/
public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
return TRUE;
/** @var \Drupal\node\NodeInterface $object */
$result = $object
->access('update', $account, TRUE)
->andIf($object
->getOwner()
->access('edit', $account, TRUE));
return $return_as_object ? $result : $result
->isAllowed();
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'language' => '',
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$languages = \Drupal::languageManager()
->getLanguages();
$options = [];
foreach ($languages as $langcode => $language) {
$options[$langcode] = $language
->getName();
}
$form['language'] = [
'#type' => 'radios',
'#title' => t('Language'),
'#options' => $options,
'#default_value' => $this->configuration['language'],
'#required' => TRUE,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$this->configuration['language'] = $form_state
->getValue('language');
}
}
Classes
Name | Description |
---|---|
LingotekContentEntityConfigurableActionBase |