navigation_plus-1.0.5/src/Controller/Settings.php

src/Controller/Settings.php
<?php

declare(strict_types=1);

namespace Drupal\navigation_plus\Controller;

use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\navigation_plus\Ajax\EditModeMessageCommand;
use Drupal\user\Entity\User;
use Drupal\Component\Utility\Html;
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Response;
use Drupal\navigation_plus\NavigationPlusFormTrait;

/**
 * Settings sidebar end points.
 */
final class Settings extends ControllerBase {

  use StringTranslationTrait;
  use NavigationPlusFormTrait;

  /**
   * Save hotkey.
   */
  public function saveHotkey(string $tool_id, string $hotkey)  {
    $account = $this->currentUser();
    if ($account->isAuthenticated()) {
      $user = User::load($account->id());
      $settings = $user->navigation_plus_settings->getValue();
      $settings[0]['hotkeys'][$tool_id] = Html::escape($hotkey);
      $user->set('navigation_plus_settings', $settings[0]);

      navigation_plus_save_outside_workspace($user);
    }

    // @todo Return "saved" message.
    return new AjaxResponse(NULL, Response::HTTP_OK);
  }

  /**
   * Remove media file association.
   */
  public function removeMediaFileAssociation(string $file_extension)  {
    $account = $this->currentUser();
    if ($account->isAuthenticated()) {
      $user = User::load($account->id());
      $settings = $user->navigation_plus_settings->getValue();

      $save = FALSE;
      if (!empty($settings[0]['file_associations'][strtolower($file_extension)])) {
        unset($settings[0]['file_associations'][strtolower($file_extension)]);
        $save = TRUE;
      }
      if (!empty($settings[0]['file_associations'][strtoupper($file_extension)])) {
        unset($settings[0]['file_associations'][strtoupper($file_extension)]);
        $save = TRUE;
      }

      if ($save) {
        $user->set('navigation_plus_settings', $settings[0]);
        navigation_plus_save_outside_workspace($user);
      }
    }

    // @todo Return "saved" message.
    return new AjaxResponse(NULL, Response::HTTP_OK);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc