You are here

public static function MetatagExport::generateExportCsv in Metatag Import Export CSV 8

Batch Callback to generate csv.

File

src/MetatagExport.php, line 18

Class

MetatagExport
Class for batch process for metatag export.

Namespace

Drupal\metatag_import_export_csv

Code

public static function generateExportCsv($id, $entity_type, $tags, $delimeter, &$context = []) {
  $entity = [];
  $entity = \Drupal::service('entity_type.manager')
    ->getStorage($entity_type)
    ->load($id);
  if (!empty($entity)) {
    $entityTags = metatag_generate_entity_metatags($entity);
    $definitions = $entity
      ->getFieldDefinitions();
    $tagsList = [];
    $tagsList['entity_id'] = $id;
    $tagsList['entity_title'] = $entity
      ->label();
    $tagsList['entity_bundle'] = $entity
      ->bundle();
    $tagsList['entity_type'] = $entity_type;
    foreach ($definitions as $field_name => $definition) {
      $field_type = $definition
        ->getType();
      if ($field_type == 'metatag') {
        $tagsList['field_machine_name'] = $definition
          ->getName();
      }
    }
    $tagsList['alias'] = \Drupal::service('path_alias.manager')
      ->getAliasByPath('/' . $entity_type . '/' . $id);
    foreach ($tags as $keys => $values) {
      if (!empty($entityTags[$keys])) {
        if (isset($entityTags[$keys]['#attributes']['content'])) {
          $tagsList[$keys] = $entityTags[$keys]['#attributes']['content'];
        }
        elseif (isset($entityTags[$keys]['#attributes']['href'])) {
          $tagsList[$keys] = $entityTags[$keys]['#attributes']['href'];
        }
        else {
          $tagsList[$keys] = "";
        }
      }
      else {
        $tagsList[$keys] = "";
      }
    }
    $context['results']['rows'][] = $tagsList;
    $context['results']['delimeter'] = $delimeter;
    $context['results']['tags'] = $tags;
    $context['results']['entity_type'] = $entity_type;
  }
}