starry_rating-1.0.x-dev/src/Plugin/Field/FieldType/RatingItem.php

src/Plugin/Field/FieldType/RatingItem.php
<?php

declare(strict_types=1);

namespace Drupal\starry_rating\Plugin\Field\FieldType;

use Drupal\Core\Field\Attribute\FieldType;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\TypedData\DataDefinition;

/**
 * Defines the 'starry_rating' field type.
 */
#[FieldType(
  id: "starry_rating",
  label: new TranslatableMarkup('Rating'),
  description: new TranslatableMarkup('Rating field for star voting type'),
  default_widget: "starry_star_rating",
  default_formatter: "starry_rating_rating_formatter"
)]
class RatingItem extends FieldItemBase {

  /**
   * {@inheritdoc}
   */
  public static function schema(FieldStorageDefinitionInterface $field_definition) {
    return [
      'columns' => [
        'value' => [
          'type' => 'int',
          'unsigned' => TRUE,
          'not null' => FALSE,
          'size' => 'tiny',
        ],
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function isEmpty() {
    return $this->get('value')->getValue() === NULL;
  }

  /**
   * {@inheritdoc}
   */
  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
    $properties['value'] = DataDefinition::create('integer')
      ->setLabel(t('Rating value'))
      ->setSetting('min', 0)
      ->setSetting('max', 5);
    return $properties;
  }

}

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

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