easychart-8.x-3.5/src/EasychartHelper.php
src/EasychartHelper.php
<?php namespace Drupal\easychart; /** * Helper class for Easychart. */ class EasychartHelper { /** * Helper function to print the actual chart. * * @param array $values * The field item values. * @param int $entity_id * The entity id. * @param int $delta * The delta. * @param string $field_name * The field name. * * @return array * The field output. */ public static function easychartPrintChart(array $values, int $entity_id, int $delta, string $field_name = 'easychart'): array { $output = []; // Verify csv being given. if (empty($values['csv'])) { return $output; } // Add JS for each instance when config is set. // Print a div for js to pick up & render chart. $output['identifier'] = $entity_id . '-' . $delta . '-' . $field_name; $output['markup'] = '<div class="easychart-embed--' . $output['identifier'] . '"></div>'; // Add config to output. $output['config'] = $values['config']; // Add csv to output. $output['csv'] = (!empty($values['csv'])) ? $values['csv'] : ''; $output['presets'] = \Drupal::config('easychart.settings')->get('presets'); return $output; } /** * Add libraries to render a chart. * * @param array $element * Element array. * @param bool $isEasychart * Is it an Easychart generated graph or Highcharts Editor? */ public static function addRenderLibraries(array &$element, $isEasychart = TRUE) { if ($isEasychart) { $element['#attached']['library'][] = 'easychart/easychart.render'; $element['#attached']['library'][] = 'easychart/lib.easycharts.render'; } else { $element['#attached']['library'][] = 'easychart/highcharts.render'; } $element['#attached']['library'][] = 'easychart/lib.highcharts'; } /** * Print chart that has been created with Highcharts Editor. * * @param array $values * The field item values. * @param int $entity_id * The entity id. * @param int $delta * The delta. * @param string $field_name * The field name. * * @return array * The field output. */ public static function highcartsPrintChart(array $values, int $entity_id, int $delta, string $field_name = 'easychart'): array { $output = []; if (empty($values['config'])) { return $output; } $output['identifier'] = $entity_id . '-' . $delta . '-' . $field_name; $output['markup'] = '<div class="highcharts-embed--' . $output['identifier'] . '" id="' . $output['identifier'] . '"></div>'; $output['config'] = $values['config']; return $output; } }