public function CustomFilterMigrationSource::prepareRow in Custom filter 2.0.x
Adds additional data to the row.
Parameters
\Drupal\migrate\Row $row: The row object.
Return value
bool FALSE if this row needs to be skipped.
Overrides SourcePluginBase::prepareRow
File
- src/
Plugin/ migrate/ source/ CustomFilterMigrationSource.php, line 62
Class
- CustomFilterMigrationSource
- Migration source for Custom Filter entities.
Namespace
Drupal\customfilter\Plugin\migrate\sourceCode
public function prepareRow(Row $row) {
$result = parent::prepareRow($row);
// Add associated data from the rules table.
$query = $this
->select('customfilter_rule', 'r');
$query
->join('customfilter_filter', 'f', 'f.fid = r .fid');
$query
->fields('r', [
'rid',
'fid',
'prid',
'name',
'description',
'enabled',
'matches',
'pattern',
'replacement',
'code',
'weight',
]);
$query
->fields('f', [
'type',
]);
$query
->condition('r.fid', $row
->getSourceProperty('fid'));
$rules = $query
->execute()
->fetchAllAssoc('rid');
foreach ($rules as &$rule) {
/* Prefix rid with 'rule_' to match how filters are prefixed. */
$rule['rid'] = 'rule_' . $rule['rid'];
/* Fix prid to mimic the rid prefixing. Also prid 0 is now ''. */
$rule['prid'] = $rule['prid'] ? 'rule_' . $rule['prid'] : '';
}
$row
->setSourceProperty('rules', $rules);
return $result;
}