ForumVocabulary.php

Same filename in this branch
  1. 10 core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php
Same filename in other branches
  1. 9 core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php
  2. 8.9.x core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php
  3. 11.x core/modules/forum/src/Plugin/migrate/process/ForumVocabulary.php

Namespace

Drupal\forum\Plugin\migrate\process

File

core/modules/forum/src/Plugin/migrate/process/ForumVocabulary.php

View source
<?php

namespace Drupal\forum\Plugin\migrate\process;

use Drupal\migrate\Attribute\MigrateProcess;
use Drupal\migrate\MigrateExecutableInterface;
use Drupal\migrate\ProcessPluginBase;
use Drupal\migrate\Row;

/**
 * Checks if the vocabulary being migrated is the one used for forums.
 *
 * Drupal 8 Forum is expecting specific machine names for its field and
 * vocabulary names. This process plugin forces a given machine name to the
 * field or vocabulary that is being migrated.
 *
 * The 'forum_vocabulary' source property is evaluated in the
 * d6_taxonomy_vocabulary or d7_taxonomy_vocabulary source plugins and is set to
 * true if the vocabulary vid being migrated is the same as the one in the
 * 'forum_nav_vocabulary' variable on the source site.
 *
 * Example:
 *
 * @code
 * process:
 *   field_name:
 *     plugin: forum_vocabulary
 *     machine_name: taxonomy_forums
 * @endcode
 */
class ForumVocabulary extends ProcessPluginBase {
    
    /**
     * {@inheritdoc}
     */
    public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
        if ($row->getSourceProperty('forum_vocabulary') && !empty($this->configuration['machine_name'])) {
            $value = $this->configuration['machine_name'];
        }
        return $value;
    }

}

Classes

Title Deprecated Summary
ForumVocabulary Checks if the vocabulary being migrated is the one used for forums.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.