easychart-8.x-3.5/src/Plugin/Field/FieldFormatter/Easychart.php
src/Plugin/Field/FieldFormatter/Easychart.php
<?php
namespace Drupal\easychart\Plugin\Field\FieldFormatter;
use Drupal\Core\Field\FormatterBase;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\easychart\EasychartHelper;
/**
* Provides a default Easychart formatter.
*
* @FieldFormatter(
* id = "easychart_default",
* module = "easychart",
* label = @Translation("Default"),
* field_types = {
* "easychart"
* },
* quickedit = {
* "editor" = "disabled"
* }
* )
*/
class Easychart extends FormatterBase {
/**
* {@inheritdoc}
*/
public function viewElements(FieldItemListInterface $items, $langcode) {
// Unique distinction by $entity_id & $delta.
$entity_id = $items->getEntity()->id();
$field_name = $this->fieldDefinition->getFieldStorageDefinition()->getName();
$element = [];
foreach ($items as $delta => $item) {
$output = EasychartHelper::easychartPrintChart($item->getValue(), $entity_id, $delta, $field_name);
if (!empty($output)) {
$element[$delta] = ['#markup' => $output['markup']];
$element['#attached']['drupalSettings']['easychart'][$output['identifier']] = [
'config' => $output['config'],
'csv' => $output['csv'],
'presets' => $output['presets'],
];
}
}
if (!empty($element)) {
EasychartHelper::addRenderLibraries($element);
}
return $element;
}
}
