You are here

class LingotekSettingsTabIntegrationsForm in Lingotek Translation 3.4.x

Same name and namespace in other branches
  1. 8.2 src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  2. 4.0.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  3. 3.0.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  4. 3.1.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  5. 3.2.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  6. 3.3.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  7. 3.5.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  8. 3.6.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  9. 3.7.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm
  10. 3.8.x src/Form/LingotekSettingsTabIntegrationsForm.php \Drupal\lingotek\Form\LingotekSettingsTabIntegrationsForm

Configure integration modules settings for Lingotek.

Hierarchy

Expanded class hierarchy of LingotekSettingsTabIntegrationsForm

1 file declares its use of LingotekSettingsTabIntegrationsForm
LingotekSettingsController.php in src/Controller/LingotekSettingsController.php

File

src/Form/LingotekSettingsTabIntegrationsForm.php, line 18

Namespace

Drupal\lingotek\Form
View source
class LingotekSettingsTabIntegrationsForm extends LingotekConfigFormBase {

  /**
   * Module handler service.
   *
   * @var \Drupal\Core\Extension\ModuleHandlerInterface
   */
  protected $moduleHandler;

  /**
   * The router builder.
   *
   * @var \Drupal\Core\Routing\RouteBuilderInterface
   */
  protected $routerBuilder;

  /**
   * The render cache bin.
   *
   * @var \Drupal\Core\Cache\CacheBackendInterface
   */
  protected $renderCache;

  /**
   * Constructs a \Drupal\lingotek\Form\LingotekConfigFormBase object.
   *
   * @param \Drupal\lingotek\LingotekInterface $lingotek
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config
   *   The factory for configuration objects.
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   *   The module handler.
   * @param \Drupal\Core\Routing\RouteBuilderInterface $router_builder
   *   The router builder service.
   * @param \Drupal\Core\Cache\CacheBackendInterface $render_cache
   * @param \Drupal\Core\Routing\UrlGeneratorInterface $url_generator
   *   The url generator.
   * @param \Drupal\Core\Utility\LinkGeneratorInterface $link_generator
   *   The link generator.
   */
  public function __construct(LingotekInterface $lingotek, ConfigFactoryInterface $config, ModuleHandlerInterface $module_handler, RouteBuilderInterface $router_builder, CacheBackendInterface $render_cache, UrlGeneratorInterface $url_generator = NULL, LinkGeneratorInterface $link_generator = NULL) {
    parent::__construct($lingotek, $config, $url_generator, $link_generator);
    $this->moduleHandler = $module_handler;
    $this->routerBuilder = $router_builder;
    $this->renderCache = $render_cache;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('lingotek'), $container
      ->get('config.factory'), $container
      ->get('module_handler'), $container
      ->get('router.builder'), $container
      ->get('cache.render'), $container
      ->get('url_generator'), $container
      ->get('link_generator'));
  }

  /**
   * {@inheritdoc}
   */
  public function getFormID() {
    return 'lingotek.settings_integrations_form';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this
      ->configFactory()
      ->getEditable('lingotek.settings');
    $form = parent::buildForm($form, $form_state);
    if ($this->moduleHandler
      ->moduleExists('paragraphs')) {
      if (!isset($form['contrib'])) {
        $form['contrib']['#tree'] = TRUE;
      }
      $form['contrib']['paragraphs'] = [
        '#title' => $this
          ->t('Paragraphs'),
        '#type' => 'details',
      ];
      $form['contrib']['paragraphs']['enable_bulk_management'] = [
        '#title' => $this
          ->t('Enable paragraphs to be managed individually instead of embedded in their parent entity.'),
        '#type' => 'checkbox',
        '#default_value' => $config
          ->get('preference.contrib.paragraphs.enable_bulk_management'),
      ];
    }
    $form['actions']['submit']['#value'] = $this
      ->t('Save settings');
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $needs_rebuild = FALSE;
    $needs_saving = FALSE;
    $config = $this
      ->configFactory()
      ->getEditable('lingotek.settings');
    $form_values = $form_state
      ->getValues();
    if ($this->moduleHandler
      ->moduleExists('paragraphs')) {
      $old_value = $config
        ->get('preference.contrib.paragraphs.enable_bulk_management', FALSE);
      if ($old_value !== $form_values['contrib']['paragraphs']['enable_bulk_management']) {
        $config
          ->set('preference.contrib.paragraphs.enable_bulk_management', boolval($form_values['contrib']['paragraphs']['enable_bulk_management']));
        $needs_saving = TRUE;
        $needs_rebuild = TRUE;
      }
    }
    if ($needs_saving) {
      $config
        ->save();
    }
    if ($needs_rebuild) {
      $this->routerBuilder
        ->rebuild();

      // We need to clear the render cache.
      $this->renderCache
        ->deleteAll();
    }
    $form_state
      ->setRedirect('lingotek.settings');
    parent::submitForm($form, $form_state);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigFormBaseTrait::config protected function Retrieves a configuration object.
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function 2
FormBase::$configFactory protected property The config factory. 3
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::configFactory protected function Gets the config factory for this form. 3
FormBase::container private function Returns the service container.
FormBase::currentUser protected function Gets the current user.
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::logger protected function Gets the logger for a specific channel.
FormBase::redirect protected function Returns a redirect response object for the specified route.
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
FormBase::validateForm public function Form validation handler. Overrides FormInterface::validateForm 72
FormInterface::getFormId public function Returns a unique string identifying the form. 264
LingotekConfigFormBase::$lingotek protected property
LingotekConfigFormBase::$linkGenerator protected property The link generator.
LingotekConfigFormBase::$urlGenerator protected property The URL generator.
LingotekConfigFormBase::getEditableConfigNames public function Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait::getEditableConfigNames
LingotekSettingsTabIntegrationsForm::$moduleHandler protected property Module handler service.
LingotekSettingsTabIntegrationsForm::$renderCache protected property The render cache bin.
LingotekSettingsTabIntegrationsForm::$routerBuilder protected property The router builder.
LingotekSettingsTabIntegrationsForm::buildForm public function Form constructor. Overrides ConfigFormBase::buildForm
LingotekSettingsTabIntegrationsForm::create public static function Instantiates a new instance of this class. Overrides LingotekConfigFormBase::create
LingotekSettingsTabIntegrationsForm::getFormID public function
LingotekSettingsTabIntegrationsForm::submitForm public function Form submission handler. Overrides ConfigFormBase::submitForm
LingotekSettingsTabIntegrationsForm::__construct public function Constructs a \Drupal\lingotek\Form\LingotekConfigFormBase object. Overrides LingotekConfigFormBase::__construct
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.