sgostanyan/sg_entity_services

实体服务模块。

安装: 68

依赖: 0

建议者: 0

安全: 0

星星: 0

分支: 0

类型:drupal-module

v1.1 2021-07-14 13:54 UTC

This package is auto-updated.

Last update: 2024-09-23 16:01:23 UTC


README

SG Entity Services 是一个用于处理 Drupal 实体的 Drupal 服务。

SgEntityStorageManager

### getEntities(string $entityType, array $bundles = NULL, array $ids = NULL)

根据给定的参数返回实体。

$entityType: 实体类型 ID

$bundles: 所需的实体包(可选)

$ids: 根据给定 ID 进行过滤(可选)

用法

Drupal::service('sg_entity_services.service')->getEntityStorageManager()->getEntities('node', ['article', 'event']);

createEntity(string $entityType, array $values, array $translations = NULL)

创建带有翻译的实体(可选)

$entityType: 实体类型 ID

$values: 字段数组

$translations: 翻译字段(可选)

用法


$fieldValues = [
    'title' => 'Title',
    'body' => [
      'value' => 'summary text',
    ],
    'field_tags' => [
      [
        'target_id' => 1,
      ],
    ],
  ];

$translationsValues = [
    'en' => [
      'title' => 'EN title',
      'body' => [
        'value' => 'English summary',
      ],
      'field_tags' => [
        [
          'target_id' => 1,
        ],
      ],
    ],
    'es' => [
      'title' => 'ES title',
      'body' => [
        'value' => 'Spanish summary',
      ],
      'field_tags' => [
        [
          'target_id' => 1,
        ],
      ],
    ],
  ];

Drupal::service('sg_entity_services.service')->getEntityStorageManager()->createEntity('node', $fieldValues, $translationsValues);

### addTranslations(EntityInterface $entity, array $translations)

为现有实体添加翻译。

$entity: 实体接口

$translations: 翻译字段

用法

$translationsValues = [
    'en' => [
      'title' => 'EN title',
      'body' => [
        'value' => 'English summary',
      ],
      'field_tags' => [
        [
          'target_id' => 1,
        ],
      ],
    ],
    'es' => [
      'title' => 'ES title',
      'body' => [
        'value' => 'Spanish summary',
      ],
      'field_tags' => [
        [
          'target_id' => 1,
        ],
      ],
    ],
  ];
$entity = Drupal::entityTypeManager()->getStorage('node')->load(46);
$entity = Drupal::service('sg_entity_services.service')->getEntityStorageManager()->addTranslations($entity, translationsValues);

SgEntityDisplayManager

### getViewModes(string $entityType)

返回给定实体类型的可用视图模式列表。

$entityType: 实体类型

用法

$viewModes = Drupal::service('sg_entity_services.service')->getEntityDisplayManager()->getViewModes('node');

### renderEntity(EntityInterface $entity, $viewMode = NULL)

返回给定实体的渲染数组。

$entity: 实体接口

$viewMode: 视图模式

用法

  $renderArray = Drupal::service('sg_entity_services.service')->getEntityDisplayManager()->renderEntity($entity, 'teaser'));

### renderArrayToMarkup(array $renderArray)

返回给定渲染数组的 Markup 对象。

$renderArray: 渲染数组

用法

  $renderArray = Drupal::service('sg_entity_services.service')->getEntityDisplayManager()->renderEntity($entity, 'teaser'));
  $markup = Drupal::service('sg_entity_services.service')->getEntityDisplayManager()->renderArrayToMarkup($renderArray);

htmlTagRender($tag, $value, array $attributes = [])

返回给定标签元素的渲染数组。

$tag: HTML 标签类型

$value: HTML 标签的值

$attributes: HTML 属性数组

用法

   $tagRender = Drupal::service('sg_entity_services.service')->getEntityDisplayManager()->htmlTagRender('a', 'click here', ['href' => 'https://drupal.org']);

imageStyleRender($fid, $imageStyle, $attributes = [])

返回给定图像 ID 和样式的渲染数组。

$fid: 图像文件 ID

$imageStyle: 图像样式 ID

$attributes: HTML 属性数组(可选)

用法

   $imageRender = Drupal::service('sg_entity_services.service')->imageStyleRender(298, 'thumbnail', ['class' => ['thumb-style']]);

SgFileManager

### generateFileEntity($source, $filename, $destination = 'public://')

创建文件实体并返回文件 ID。

$source: 源文件夹(需要以反斜杠结尾)

$filename: 文件名

$destination: 文件目标位置,可以是 'public://' 或 'private://'(默认为 public://)。它可以包含子文件夹,需要以反斜杠结尾

用法

$fid = Drupal::service('sg_entity_services.service')->getFileManager()->generateFileEntity('public://sources/', 'tiger.jpg', 'private://animals/');

### getFileInfos($fid)

返回文件详细信息数组:MIME 类型、大小、绝对 URL、相对 URL、内部 URL、系统路径、文件使用情况。

$fid: 文件 ID

用法

$fileInfos = Drupal::service('sg_entity_services.service')->getFileManager()->getFileInfos(298);

### sanitizeFileSize($size)

返回格式化的文件大小。

$size: 字节大小的文件大小

用法

$fileInfos = Drupal::service('sg_entity_services.service')->getFileManager()->sanitizeFileSize(286567);
 // $fileInfos = "287 Ko"

SgImageManager

### getImageStyles()

返回可用图像样式列表。

用法

$imageStyles = Drupal::service('sg_entity_services.service')->getImageManager()->getImageStyles();

getImageStyleUrl($fid, $imageStyle)

返回样式化图像 URL。

$fid: 文件 ID

$imageStyle: 图像样式 ID

用法

$imageUrl = Drupal::service('sg_entity_services.service')->getImageManager()->getImageStyleUrl(298, 'thumbnail');

许可证

GPL-2.0+