You are here

public function File::prepareRow in Zircon Profile 8.0

Same name in this branch
  1. 8.0 core/modules/file/src/Plugin/migrate/source/d6/File.php \Drupal\file\Plugin\migrate\source\d6\File::prepareRow()
  2. 8.0 core/modules/file/src/Plugin/migrate/source/d7/File.php \Drupal\file\Plugin\migrate\source\d7\File::prepareRow()
Same name and namespace in other branches
  1. 8 core/modules/file/src/Plugin/migrate/source/d7/File.php \Drupal\file\Plugin\migrate\source\d7\File::prepareRow()

Add 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

core/modules/file/src/Plugin/migrate/source/d7/File.php, line 85
Contains \Drupal\file\Plugin\migrate\source\d7\File.

Class

File
Drupal 7 file source from database.

Namespace

Drupal\file\Plugin\migrate\source\d7

Code

public function prepareRow(Row $row) {

  // Compute the filepath property, which is a physical representation of
  // the URI relative to the Drupal root.
  $path = str_replace([
    'public:/',
    'private:/',
    'temporary:/',
  ], [
    $this->publicPath,
    $this->privatePath,
    $this->temporaryPath,
  ], $row
    ->getSourceProperty('uri'));

  // At this point, $path could be an absolute path or a relative path,
  // depending on how the scheme's variable was set. So we need to shear out
  // the source_base_path in order to make them all relative.
  // @todo Don't depend on destination configuration.
  // @see https://www.drupal.org/node/2577871
  $path = str_replace($this->migration
    ->get('destination')['source_base_path'], NULL, $path);
  $row
    ->setSourceProperty('filepath', $path);
  return parent::prepareRow($row);
}