You are here

protected function LingotekContentTranslationService::includeMetadata in Lingotek Translation 4.0.x

Same name and namespace in other branches
  1. 8.2 src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  2. 3.0.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  3. 3.1.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  4. 3.2.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  5. 3.3.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  6. 3.4.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  7. 3.5.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  8. 3.6.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  9. 3.7.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()
  10. 3.8.x src/LingotekContentTranslationService.php \Drupal\lingotek\LingotekContentTranslationService::includeMetadata()

Embeds the metadata for being uploaded.

Parameters

\Drupal\Core\Entity\ContentEntityInterface $entity: The entity.

$data: The array of data.

1 call to LingotekContentTranslationService::includeMetadata()
LingotekContentTranslationService::getSourceData in src/LingotekContentTranslationService.php
Returns the source data that will be uploaded to the Lingotek service.

File

src/LingotekContentTranslationService.php, line 2338

Class

LingotekContentTranslationService
Service for managing Lingotek content translations.

Namespace

Drupal\lingotek

Code

protected function includeMetadata(ContentEntityInterface &$entity, &$data, $includeIntelligenceMetadata = TRUE) {
  $data['_lingotek_metadata']['_entity_type_id'] = $entity
    ->getEntityTypeId();
  $data['_lingotek_metadata']['_entity_id'] = $entity
    ->id();
  $data['_lingotek_metadata']['_entity_revision'] = $entity
    ->getRevisionId();
  if ($includeIntelligenceMetadata) {

    /** @var \Drupal\lingotek\LingotekIntelligenceMetadataInterface $intelligenceService */
    $intelligenceService = \Drupal::service('lingotek.intelligence');
    if ($entity
      ->id()) {
      if ($entity->lingotek_metadata && $entity->lingotek_metadata->entity) {
        $profile = $this->lingotekConfiguration
          ->getEntityProfile($entity);
      }
      else {
        $profile = NULL;
      }
      $domain = \Drupal::request()
        ->getSchemeAndHttpHost();
      $author_name = '';
      $author_email = '';
      if (method_exists($entity, 'getOwner')) {

        /** @var \Drupal\user\UserInterface $user */
        $user = $entity
          ->getOwner();
        if ($user !== NULL && $user instanceof UserInterface) {
          $author_name = $user
            ->getDisplayName();
          $author_email = $user
            ->getEmail();
        }
      }
      $intelligenceService
        ->setProfile($profile);
      $data['_lingotek_metadata']['_intelligence']['external_document_id'] = $entity
        ->id();
      $data['_lingotek_metadata']['_intelligence']['content_type'] = $entity
        ->getEntityTypeId() . ' - ' . $entity
        ->bundle();

      // Check if we have permission to send these
      if ($intelligenceService
        ->getBaseDomainPermission()) {
        $data['_lingotek_metadata']['_intelligence']['domain'] = $domain;
      }
      if ($intelligenceService
        ->getReferenceUrlPermission()) {
        $data['_lingotek_metadata']['_intelligence']['reference_url'] = $entity
          ->hasLinkTemplate('canonical') ? $entity
          ->toUrl()
          ->setAbsolute(TRUE)
          ->toString() : NULL;
      }
      if ($intelligenceService
        ->getAuthorPermission()) {
        $data['_lingotek_metadata']['_intelligence']['author_name'] = $author_name;
      }
      if ($intelligenceService
        ->getAuthorPermission() && $intelligenceService
        ->getAuthorEmailPermission() && $intelligenceService
        ->getContactEmailForAuthorPermission() && $intelligenceService
        ->getContactEmailPermission()) {
        $data['_lingotek_metadata']['_intelligence']['author_email'] = $intelligenceService
          ->getContactEmail();
      }
      if ($intelligenceService
        ->getAuthorPermission() && $intelligenceService
        ->getAuthorEmailPermission() && (!$intelligenceService
        ->getContactEmailForAuthorPermission() || !$intelligenceService
        ->getContactEmailPermission())) {
        $data['_lingotek_metadata']['_intelligence']['author_email'] = $author_email;
      }
      if ($intelligenceService
        ->getBusinessUnitPermission()) {
        $data['_lingotek_metadata']['_intelligence']['business_unit'] = $intelligenceService
          ->getBusinessUnit();
      }
      if ($intelligenceService
        ->getBusinessDivisionPermission()) {
        $data['_lingotek_metadata']['_intelligence']['business_division'] = $intelligenceService
          ->getBusinessDivision();
      }
      if ($intelligenceService
        ->getCampaignIdPermission()) {
        $data['_lingotek_metadata']['_intelligence']['campaign_id'] = $intelligenceService
          ->getCampaignId();
      }
      if ($intelligenceService
        ->getCampaignRatingPermission()) {
        $data['_lingotek_metadata']['_intelligence']['campaign_rating'] = $intelligenceService
          ->getCampaignRating();
      }
      if ($intelligenceService
        ->getChannelPermission()) {
        $data['_lingotek_metadata']['_intelligence']['channel'] = $intelligenceService
          ->getChannel();
      }
      if ($intelligenceService
        ->getContactNamePermission()) {
        $data['_lingotek_metadata']['_intelligence']['contact_name'] = $intelligenceService
          ->getContactName();
      }
      if ($intelligenceService
        ->getContactEmailPermission()) {
        $data['_lingotek_metadata']['_intelligence']['contact_email'] = $intelligenceService
          ->getContactEmail();
      }
      if ($intelligenceService
        ->getContentDescriptionPermission()) {
        $data['_lingotek_metadata']['_intelligence']['content_description'] = $intelligenceService
          ->getContentDescription();
      }
      if ($intelligenceService
        ->getExternalStyleIdPermission()) {
        $data['_lingotek_metadata']['_intelligence']['external_style_id'] = $intelligenceService
          ->getExternalStyleId();
      }
      if ($intelligenceService
        ->getPurchaseOrderPermission()) {
        $data['_lingotek_metadata']['_intelligence']['purchase_order'] = $intelligenceService
          ->getPurchaseOrder();
      }
      if ($intelligenceService
        ->getRegionPermission()) {
        $data['_lingotek_metadata']['_intelligence']['region'] = $intelligenceService
          ->getRegion();
      }
    }
  }
}