Upgraded imagemagick and manually altered pdf to image module to handle changes....
[yaffs-website] / web / modules / contrib / paragraphs / src / EventSubscriber / ReplicateFieldSubscriber.php
1 <?php
2
3 namespace Drupal\paragraphs\EventSubscriber;
4
5 use Drupal\replicate\Events\ReplicateEntityFieldEvent;
6 use Drupal\replicate\Events\ReplicatorEvents;
7 use Drupal\replicate\Replicator;
8 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
9
10 /**
11  * Event subscriber that handles cloning through the Replicate module.
12  */
13 class ReplicateFieldSubscriber implements EventSubscriberInterface {
14
15   /**
16    * The replicator service.
17    *
18    * @var \Drupal\replicate\Replicator
19    */
20   protected $replicator;
21
22   /**
23    * ReplicateFieldSubscriber constructor.
24    *
25    * @param \Drupal\replicate\Replicator $replicator
26    *   The replicator service.
27    */
28   public function __construct(Replicator $replicator) {
29     $this->replicator = $replicator;
30   }
31
32   /**
33    * Replicates paragraphs when the parent entity is being replicated.
34    *
35    * @param \Drupal\replicate\Events\ReplicateEntityFieldEvent $event
36    */
37   public function onClone(ReplicateEntityFieldEvent $event) {
38     $field_item_list = $event->getFieldItemList();
39     if ($field_item_list->getItemDefinition()->getSetting('target_type') == 'paragraph') {
40       foreach ($field_item_list as $field_item) {
41         $field_item->entity = $this->replicator->replicateEntity($field_item->entity);
42       }
43     }
44   }
45
46   /**
47    * {@inheritdoc}
48    */
49   public static function getSubscribedEvents() {
50     $events[ReplicatorEvents::replicateEntityField('entity_reference_revisions')][] = 'onClone';
51     return $events;
52   }
53
54 }