FieldableEntity.php in Zircon Profile 8
File
core/modules/migrate_drupal/src/Plugin/migrate/source/d7/FieldableEntity.php
View source
<?php
namespace Drupal\migrate_drupal\Plugin\migrate\source\d7;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
abstract class FieldableEntity extends DrupalSqlBase {
protected function getFields($entity_type, $bundle = NULL) {
return $this
->select('field_config_instance', 'fci')
->fields('fci')
->condition('entity_type', $entity_type)
->condition('bundle', isset($bundle) ? $bundle : $entity_type)
->condition('deleted', 0)
->execute()
->fetchAllAssoc('field_name');
}
protected function getFieldValues($entity_type, $field, $entity_id, $revision_id = NULL) {
$table = (isset($revision_id) ? 'field_revision_' : 'field_data_') . $field;
$query = $this
->select($table, 't')
->fields('t')
->condition('entity_type', $entity_type)
->condition('entity_id', $entity_id)
->condition('deleted', 0);
if (isset($revision_id)) {
$query
->condition('revision_id', $revision_id);
}
$values = [];
foreach ($query
->execute() as $row) {
foreach ($row as $key => $value) {
$delta = $row['delta'];
if (strpos($key, $field) === 0) {
$column = substr($key, strlen($field) + 1);
$values[$delta][$column] = $value;
}
}
}
return $values;
}
}
Classes
Name |
Description |
FieldableEntity |
Base class for D7 source plugins which need to collect field values from
the Field API. |