Upgraded drupal core with security updates
[yaffs-website] / web / core / modules / filter / src / Plugin / migrate / process / d6 / FilterFormatPermission.php
1 <?php
2
3 namespace Drupal\filter\Plugin\migrate\process\d6;
4
5 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
6 use Drupal\migrate\Plugin\MigrationInterface;
7 use Drupal\migrate\MigrateExecutableInterface;
8 use Drupal\migrate\Plugin\MigrateProcessInterface;
9 use Drupal\migrate\ProcessPluginBase;
10 use Drupal\migrate\Row;
11 use Symfony\Component\DependencyInjection\ContainerInterface;
12
13 /**
14  * Migrate filter format serial to string id in permission name.
15  *
16  * @MigrateProcessPlugin(
17  *   id = "filter_format_permission",
18  *   handle_multiples = TRUE
19  * )
20  */
21 class FilterFormatPermission extends ProcessPluginBase implements ContainerFactoryPluginInterface {
22
23   /**
24    * The migration plugin.
25    *
26    * @var \Drupal\migrate\Plugin\MigrateProcessInterface
27    */
28   protected $migrationPlugin;
29
30   /**
31    * {@inheritdoc}
32    */
33   public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, MigrateProcessInterface $migration_plugin) {
34     parent::__construct($configuration, $plugin_id, $plugin_definition);
35     $this->migration = $migration;
36     $this->migrationPlugin = $migration_plugin;
37   }
38
39   /**
40    * {@inheritdoc}
41    */
42   public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
43     $migration_plugin_configuration = $configuration + [
44       'migration' => 'd6_filter_format',
45     ];
46
47     return new static(
48       $configuration,
49       $plugin_id,
50       $plugin_definition,
51       $migration,
52       $container->get('plugin.manager.migrate.process')->createInstance('migration', $migration_plugin_configuration, $migration)
53     );
54   }
55
56   /**
57    * {@inheritdoc}
58    *
59    * Migrate filter format serial to string id in permission name.
60    */
61   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
62     $rid = $row->getSourceProperty('rid');
63     if ($formats = $row->getSourceProperty("filter_permissions:$rid")) {
64       foreach ($formats as $format) {
65         $new_id = $this->migrationPlugin->transform($format, $migrate_executable, $row, $destination_property);
66         if ($new_id) {
67           $value[] = 'use text format ' . $new_id;
68         }
69       }
70     }
71     return $value;
72   }
73
74 }