Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
87.50% |
7 / 8 |
FileUri | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
4.03 | |
87.50% |
7 / 8 |
transform | |
0.00% |
0 / 1 |
4.03 | |
87.50% |
7 / 8 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\file\Plugin\migrate\process\d6\FileUri. | |
*/ | |
namespace Drupal\file\Plugin\migrate\process\d6; | |
use Drupal\migrate\MigrateExecutableInterface; | |
use Drupal\migrate\ProcessPluginBase; | |
use Drupal\migrate\Row; | |
/** | |
* Process the file url into a D8 compatible URL. | |
* | |
* @MigrateProcessPlugin( | |
* id = "file_uri" | |
* ) | |
*/ | |
class FileUri extends ProcessPluginBase { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { | |
// If we're stubbing a file entity, return a uri of NULL so it will get | |
// stubbed by the general process. | |
if ($row->isStub()) { | |
return NULL; | |
} | |
list($filepath, $file_directory_path, $temp_directory_path, $is_public) = $value; | |
// Specific handling using $temp_directory_path for temporary files. | |
if (substr($filepath, 0, strlen($temp_directory_path)) === $temp_directory_path) { | |
$uri = preg_replace('/^' . preg_quote($temp_directory_path, '/') . '/', '', $filepath); | |
return 'temporary://' . ltrim($uri, '/'); | |
} | |
// Strip the files path from the uri instead of using basename | |
// so any additional folders in the path are preserved. | |
$uri = preg_replace('/^' . preg_quote($file_directory_path, '/') . '/', '', $filepath); | |
return ($is_public ? 'public' : 'private') . '://' . ltrim($uri, '/'); | |
} | |
} |