Drupal 8 предоставляет мощные средства для темизации контента. Однако, иногда может возникнуть необходимость вывести поле виджета Rate в произвольном месте. В этой статье мы рассмотрим, как это сделать.

Шаг 1: Создание поля виджета Rate

Первым шагом необходимо создать поле виджета Rate. Для этого перейдите на страницу управления полями контента и добавьте новое поле типа «Rate». Укажите необходимые настройки, такие как максимальное значение и шаг.


// Import the necessary namespaces
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\field\FieldStorageConfigInterface;

// Create a new field storage config entity
$field_storage = FieldStorageConfig::create([
  'field_name' => 'field_rate',  // The machine name of the field
  'entity_type' => 'node',  // The entity type to which the field belongs
  'type' => 'integer',  // The data type of the field
  'module' => 'rate',  // The module that provides the field type
]);

// Save the field storage config
$field_storage->save();

// Create a new field config entity
$field = FieldConfig::create([
  'field_name' => 'field_rate',  // The machine name of the field
  'entity_type' => 'node',  // The entity type to which the field belongs
  'bundle' => 'article',  // The bundle to which the field belongs
]);

// Save the field config
$field->save();

Шаг 2: Создание шаблона для темизации ноды

Следующим шагом необходимо создать шаблон для темизации ноды, в котором мы будем выводить поле виджета Rate. Для этого создайте файл с названием «node—article.html.twig» в папке вашей темы.


{# node--article.html.twig #}

  <h2{{ title_attributes }}>{{ label }}
  <div{{ content_attributes }}>
    {{ content.field_rate }}
    {{ content|without('field_rate') }}  {# Exclude the rate field from default output #}