You are here

class Core in IMCE 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/ImcePlugin/Core.php \Drupal\imce\Plugin\ImcePlugin\Core

Defines Imce Core plugin.

Plugin annotation


@ImcePlugin(
  id = "core",
  label = "Core",
  weight = -99,
  operations = {
    "browse" = "opBrowse",
    "uuid" = "opUuid"
  }
)

Hierarchy

Expanded class hierarchy of Core

1 file declares its use of Core
CoreTest.php in tests/src/Kernel/Plugin/ImcePlugin/CoreTest.php

File

src/Plugin/ImcePlugin/Core.php, line 21

Namespace

Drupal\imce\Plugin\ImcePlugin
View source
class Core extends ImcePluginBase {

  /**
   * {@inheritdoc}
   */
  public function permissionInfo() {
    return [
      'browse_files' => $this
        ->t('Browse files'),
      'browse_subfolders' => $this
        ->t('Browse subfolders'),
    ];
  }

  /**
   * Operation handler: browse.
   */
  public function opBrowse(ImceFM $fm) {
    if ($folder = $fm->activeFolder) {
      $folder
        ->scan();
      $uri = $folder
        ->getUri();
      $uri_prefix = substr($uri, -1) === '/' ? $uri : $uri . '/';
      $content = [
        'props' => $fm
          ->getFolderProperties($uri),
      ];
      if ($folder
        ->getPermission('browse_files')) {
        foreach ($folder->files as $name => $file) {
          $content['files'][$name] = $fm
            ->getFileProperties($uri_prefix . $name);
        }
      }
      if ($folder
        ->getPermission('browse_subfolders')) {
        foreach ($folder->subfolders as $name => $subfolder) {
          $content['subfolders'][$name] = $fm
            ->getFolderProperties($uri_prefix . $name);
        }
      }
      $fm
        ->addResponse('content', $content);
    }
  }

  /**
   * Operation handler: uuid.
   */
  public function opUuid(ImceFM $fm) {
    $items = $fm
      ->getSelection();
    if (!$items || !$fm
      ->validatePermissions($items, 'browse_files')) {
      return;
    }
    $uris = [];
    foreach ($items as $item) {
      if ($uri = $item
        ->getUri()) {
        $uris[$uri] = $item;
      }
    }
    if ($uris) {
      $files = \Drupal::entityTypeManager()
        ->getStorage('file')
        ->loadByProperties([
        'uri' => array_keys($uris),
      ]);
      $uuids = [];
      foreach ($files as $file) {
        $item = $uris[$file
          ->getFileUri()];
        $item->uuid = $file
          ->uuid();
        $uuids[$item
          ->getPath()] = $item->uuid;
      }
      $fm
        ->addResponse('uuids', $uuids);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Core::opBrowse public function Operation handler: browse.
Core::opUuid public function Operation handler: uuid.
Core::permissionInfo public function Returns folder permission definitions. Overrides ImcePluginBase::permissionInfo
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
ImcePluginBase::alterProfileForm public function Alters entity form of an Imce Profile. Overrides ImcePluginInterface::alterProfileForm
ImcePluginBase::buildPage public function Builds imce page by adding required libraries and elements. Overrides ImcePluginInterface::buildPage 4
ImcePluginBase::processUserConf public function Processes profile configuration for a user. Overrides ImcePluginInterface::processUserConf
ImcePluginBase::validateProfileForm public function Validates entity form of an Imce Profile. Overrides ImcePluginInterface::validateProfileForm
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
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.