You are here

protected function TabularBaseYamlFormExporter::buildRecord in YAML Form 8

Build export record using a form submission.

Parameters

\Drupal\yamlform\YamlFormSubmissionInterface $yamlform_submission: A form submission.

Return value

array An array containing the export record.

2 calls to TabularBaseYamlFormExporter::buildRecord()
DelimitedYamlFormExporter::writeSubmission in src/Plugin/YamlFormExporter/DelimitedYamlFormExporter.php
Write submission to export.
TableYamlFormExporter::writeSubmission in src/Plugin/YamlFormExporter/TableYamlFormExporter.php
Write submission to export.

File

src/Plugin/YamlFormExporter/TabularBaseYamlFormExporter.php, line 77

Class

TabularBaseYamlFormExporter
Defines abstract tabular exporter used to build CSV files and HTML tables.

Namespace

Drupal\yamlform\Plugin\YamlFormExporter

Code

protected function buildRecord(YamlFormSubmissionInterface $yamlform_submission) {
  $export_options = $this
    ->getConfiguration();
  $this->fieldDefinitions = $this
    ->getFieldDefinitions();
  $elements = $this
    ->getElements();
  $record = [];

  // Build record field definition columns.
  foreach ($this->fieldDefinitions as $field_definition) {
    $this
      ->formatRecordFieldDefinitionValue($record, $yamlform_submission, $field_definition);
  }

  // Build record element columns.
  $data = $yamlform_submission
    ->getData();
  foreach ($elements as $column_name => $element) {
    $value = isset($data[$column_name]) ? $data[$column_name] : '';
    $record = array_merge($record, $this->elementManager
      ->invokeMethod('buildExportRecord', $element, $value, $export_options));
  }
  return $record;
}