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, '/'); | |
| } | |
| } |