Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
83.33% |
5 / 6 |
CRAP | |
92.68% |
38 / 41 |
CommentVariable | |
0.00% |
0 / 1 |
|
83.33% |
5 / 6 |
13.07 | |
92.68% |
38 / 41 |
initializeIterator | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
count | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
getCommentVariables | |
100.00% |
1 / 1 |
8 | |
100.00% |
25 / 25 |
|||
fields | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
commentPrefixes | |
100.00% |
1 / 1 |
1 | |
100.00% |
9 / 9 |
|||
getIds | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\comment\Plugin\migrate\source\d6\CommentVariable. | |
*/ | |
namespace Drupal\comment\Plugin\migrate\source\d6; | |
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; | |
use Drupal\migrate\Plugin\migrate\source\DummyQueryTrait; | |
/** | |
* @MigrateSource( | |
* id = "d6_comment_variable" | |
* ) | |
*/ | |
class CommentVariable extends DrupalSqlBase { | |
use DummyQueryTrait; | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function initializeIterator() { | |
return new \ArrayIterator($this->getCommentVariables()); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function count() { | |
return count($this->getCommentVariables()); | |
} | |
/** | |
* Retrieves the values of the comment variables grouped by node type. | |
* | |
* @return array | |
*/ | |
protected function getCommentVariables() { | |
$comment_prefixes = array_keys($this->commentPrefixes()); | |
$variables = array(); | |
$node_types = $this->select('node_type', 'nt') | |
->fields('nt', ['type']) | |
->execute() | |
->fetchCol(); | |
foreach ($node_types as $node_type) { | |
foreach ($comment_prefixes as $prefix) { | |
$variables[] = $prefix . '_' . $node_type; | |
} | |
} | |
$return = array(); | |
$values = $this->select('variable', 'v') | |
->fields('v', ['name', 'value']) | |
->condition('name', $variables, 'IN') | |
->execute() | |
->fetchAllKeyed(); | |
foreach ($node_types as $node_type) { | |
foreach ($comment_prefixes as $prefix) { | |
$name = $prefix . '_' . $node_type; | |
if (isset($values[$name])) { | |
$return[$node_type][$prefix] = unserialize($values[$name]); | |
} | |
} | |
} | |
// The return key will not be used so move it inside the row. This could | |
// not be done sooner because otherwise empty rows would be created with | |
// just the node type in it. | |
foreach ($return as $node_type => $data) { | |
$return[$node_type]['node_type'] = $node_type; | |
$return[$node_type]['comment_type'] = empty($data['comment_subject_field']) ? | |
'comment_no_subject' : 'comment'; | |
} | |
return $return; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function fields() { | |
return $this->commentPrefixes() + array( | |
'node_type' => $this->t('The node type'), | |
'comment_type' => $this->t('The comment type'), | |
); | |
} | |
/** | |
* Comment related data for fields. | |
*/ | |
protected function commentPrefixes() { | |
return array( | |
'comment' => $this->t('Default comment setting'), | |
'comment_default_mode' => $this->t('Default display mode'), | |
'comment_default_order' => $this->t('Default display order'), | |
'comment_default_per_page' => $this->t('Default comments per page'), | |
'comment_controls' => $this->t('Comment controls'), | |
'comment_anonymous' => $this->t('Anonymous commenting'), | |
'comment_subject_field' => $this->t('Comment subject field'), | |
'comment_preview' => $this->t('Preview comment'), | |
'comment_form_location' => $this->t('Location of comment submission form'), | |
); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getIds() { | |
$ids['node_type']['type'] = 'string'; | |
return $ids; | |
} | |
} |