path_redirect_import-8.x-1.0-beta4/src/Form/SampleCsvFormTrait.php
src/Form/SampleCsvFormTrait.php
<?php namespace Drupal\path_redirect_import\Form; use Drupal\Component\Render\MarkupInterface; /** * Provides the CSV sample data table for the different forms. */ trait SampleCsvFormTrait { /** * Provides the CSV Sample data table. * * @param \Drupal\Component\Render\MarkupInterface $caption * The caption to show above the table. * * @return array * The sample data table render array. */ protected function getSampleCsvTable(MarkupInterface $caption) { $sample = [ [ 'source' => 'source-path', 'destination' => '<front>', 'language' => 'und', 'status_code' => 301, ], [ 'source' => 'source-path-other?param=value', 'destination' => 'my-path', 'language' => 'en', 'status_code' => 302, ], [ 'source' => 'my-source-path', 'destination' => 'https://example.com', 'language' => 'und', 'status_code' => 302, ], ]; // Define the table headers. $headers = [ 'source' => 'Source', 'destination' => 'Destination', 'language' => 'Language', 'status_code' => 'Status Code', ]; // Initialize the table rows. $rows = []; foreach ($sample as $data) { $rows[] = [ 'source' => $data['source'], 'destination' => $data['destination'], 'language' => $data['language'], 'status_code' => $data['status_code'], ]; } // Create the table element. return [ '#theme' => 'table', '#caption' => $caption, '#header' => $headers, '#rows' => $rows, ]; } }