cloudinary-8.x-1.x-dev/modules/cloudinary_media_library_widget/src/Plugin/Field/FieldType/CloudinaryFileTrait.php

modules/cloudinary_media_library_widget/src/Plugin/Field/FieldType/CloudinaryFileTrait.php
<?php

namespace Drupal\cloudinary_media_library_widget\Plugin\Field\FieldType;

use Drupal\Core\Form\FormStateInterface;

/**
 * Build a trait to use for custom cloudinary field type implementations.
 */
trait CloudinaryFileTrait {

  use CloudinaryFieldItemTrait;

  /**
   * {@inheritdoc}
   */
  public static function defaultStorageSettings() {
    return [
      'uri_scheme' => 'cloudinary',
    ] + parent::defaultStorageSettings();
  }

  /**
   * {@inheritdoc}
   */
  public function postSave($update) {
    parent::postSave($update);

    if (!$update) {
      /** @var \Drupal\file\FileInterface $file */
      $file = $this->entity;
      $file->setPermanent();
      $file->save();
    }
  }

  /**
   * {@inheritdoc}
   */
  public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
    $element = parent::storageSettingsForm($form, $form_state, $has_data);

    // Force only cloudinary option.
    $element['uri_scheme']['#access'] = FALSE;

    return $element;
  }

  /**
   * {@inheritdoc}
   */
  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
    $element = parent::fieldSettingsForm($form, $form_state);

    // Hide options that have no sense as we do not upload a file to
    // cloudinary server.
    $element['file_directory']['#access'] = FALSE;
    $element['max_filesize']['#access'] = FALSE;

    return $element;
  }

}

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

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