skillset_inview-8.x-1.x-dev/src/Plugin/Field/FieldFormatter/SkillsetItemMeterFormatter.php

src/Plugin/Field/FieldFormatter/SkillsetItemMeterFormatter.php
<?php

namespace Drupal\skillset_inview\Plugin\Field\FieldFormatter;

use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\FormatterBase;

/**
 * Plugin implementation of the 'skillset_item_formatter' formatter.
 *
 * @FieldFormatter(
 *   id = "skillset_item_meter_formatter",
 *   label = @Translation("Skillset Item Formatter |  Label & Meter"),
 *   field_types = {
 *     "skillset_item"
 *   }
 * )
 */
class SkillsetItemMeterFormatter extends FormatterBase {

  /**
   * {@inheritdoc}
   */
  public function viewElements(FieldItemListInterface $items, $langcode) {
    $elements = [];

    // Prepare the items array to match the structure expected by the template.
    $skills = [];
    foreach ($items as $delta => $item) {
      $skills[] = [
        'id' => $delta + 1,
        'name' => $item->title,
        'percent' => $item->percentage,
        'weight' => $delta,  // This could be used for sorting if needed.
      ];
    }

    // Add the rendered array with the necessary theme and variables.
    $elements[] = [
      '#theme' => 'skillset_inview_meter',
      '#header' => '',  // Optionally set a header if needed.
      '#items' => $skills,
      '#color_active' => 0,  // Assuming no custom colors by default.
      '#color' => [],  // Assuming default color settings.
       '#attached' => [
         'library' => [
           'skillset_inview/block',
          ],
        ]
      ];

    return $elements;
  }
}

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

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