CommentType.php

Same filename in this branch
  1. 8.9.x core/modules/comment/src/Entity/CommentType.php
Same filename in other branches
  1. 9 core/modules/comment/src/Entity/CommentType.php
  2. 9 core/modules/comment/src/Plugin/migrate/source/CommentType.php
  3. 10 core/modules/comment/src/Entity/CommentType.php
  4. 10 core/modules/comment/src/Plugin/migrate/source/CommentType.php
  5. 11.x core/modules/comment/src/Entity/CommentType.php
  6. 11.x core/modules/comment/src/Plugin/migrate/source/CommentType.php

Namespace

Drupal\comment\Plugin\migrate\source\d7

File

core/modules/comment/src/Plugin/migrate/source/d7/CommentType.php

View source
<?php

namespace Drupal\comment\Plugin\migrate\source\d7;

@trigger_error('CommentType is deprecated in Drupal 8.4.x and will be removed before Drupal 9.0.x. Use \\Drupal\\node\\Plugin\\migrate\\source\\d7\\NodeType instead.', E_USER_DEPRECATED);
use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
use Drupal\migrate\Row;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;

/**
 * Drupal 7 comment type source from database.
 *
 * @MigrateSource(
 *   id = "d7_comment_type",
 *   source_module = "comment"
 * )
 *
 * @deprecated in drupal:8.4.0 and is removed from drupal:9.0.0. Use
 * \Drupal\node\Plugin\migrate\source\d7\NodeType instead.
 */
class CommentType extends DrupalSqlBase {
    
    /**
     * A map of D7 node types to their labels.
     *
     * @var string[]
     */
    protected $nodeTypes = [];
    
    /**
     * {@inheritdoc}
     */
    public function query() {
        return $this->select('field_config_instance', 'fci')
            ->distinct()
            ->fields('fci', [
            'bundle',
        ])
            ->condition('fci.entity_type', 'comment');
    }
    
    /**
     * {@inheritdoc}
     */
    protected function initializeIterator() {
        $this->nodeTypes = $this->select('node_type', 'nt')
            ->fields('nt', [
            'type',
            'name',
        ])
            ->execute()
            ->fetchAllKeyed();
        return parent::initializeIterator();
    }
    
    /**
     * {@inheritdoc}
     */
    public function prepareRow(Row $row) {
        $node_type = substr($row->getSourceProperty('bundle'), 13);
        $row->setSourceProperty('node_type', $node_type);
        $row->setSourceProperty('default_mode', $this->variableGet("comment_default_mode_{$node_type}", 1));
        $row->setSourceProperty('per_page', $this->variableGet("comment_default_per_page_{$node_type}", 50));
        $row->setSourceProperty('anonymous', $this->variableGet("comment_anonymous_{$node_type}", FALSE));
        $row->setSourceProperty('form_location', $this->variableGet("comment_form_location_{$node_type}", CommentItemInterface::FORM_BELOW));
        $row->setSourceProperty('preview', $this->variableGet("comment_preview_{$node_type}", TRUE));
        $row->setSourceProperty('subject', $this->variableGet("comment_subject_field_{$node_type}", TRUE));
        $label = $this->t('@node_type comment', [
            '@node_type' => $this->nodeTypes[$node_type],
        ]);
        $row->setSourceProperty('label', $label);
        return parent::prepareRow($row);
    }
    
    /**
     * {@inheritdoc}
     */
    public function fields() {
        return [
            'label' => $this->t('The label of the comment type.'),
            'bundle' => $this->t('Bundle ID of the comment type.'),
            'node_type' => $this->t('The node type to which this comment type is attached.'),
            'default_mode' => $this->t('Default comment mode.'),
            'per_page' => $this->t('Number of comments visible per page.'),
            'anonymous' => $this->t('Whether anonymous comments are allowed.'),
            'form_location' => $this->t('Location of the comment form.'),
            'preview' => $this->t('Whether previews are enabled for the comment type.'),
            'subject' => $this->t('Whether a subject field is enabled for the comment type.'),
        ];
    }
    
    /**
     * {@inheritdoc}
     */
    public function getIds() {
        return [
            'bundle' => [
                'type' => 'string',
            ],
        ];
    }

}

Classes

Title Deprecated Summary
CommentType

in drupal:8.4.0 and is removed from drupal:9.0.0. Use \Drupal\node\Plugin\migrate\source\d7\NodeType instead.

Drupal 7 comment type source from database.

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