From cdcb9c35b952bd4edfd13a73f4c4220c05ff9934 Mon Sep 17 00:00:00 2001 From: Ron Lucke Date: Sat, 18 Oct 2025 12:51:54 +0200 Subject: add performMapping to image map block --- lib/models/Courseware/BlockTypes/ImageMap.php | 38 +++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/lib/models/Courseware/BlockTypes/ImageMap.php b/lib/models/Courseware/BlockTypes/ImageMap.php index d9ad845..81818d3 100644 --- a/lib/models/Courseware/BlockTypes/ImageMap.php +++ b/lib/models/Courseware/BlockTypes/ImageMap.php @@ -64,9 +64,25 @@ class ImageMap extends BlockType return $payload; } + public function performMapping(array $mapping, \Courseware\Unit $newUnit): void + { + $payload = $this->getPayload(); + ['elements' => $elements] = $mapping; + + foreach ($payload['shapes'] as &$shape) { + if (!empty($shape['target_internal'])) { + $oldId = (int) $shape['target_internal']; + $shape['target_internal'] = $elements[$oldId] ?? ''; + } + } + unset($shape); + $this->setPayload($payload); + $this->block->store(); + } + public static function getJsonSchema(): string { - $schemaFile = __DIR__.'/ImageMap.json'; + $schemaFile = __DIR__ . '/ImageMap.json'; return file_get_contents($schemaFile); } @@ -89,10 +105,22 @@ class ImageMap extends BlockType public static function getTags(): array { return [ - _('Bild'), _('Link'), _('klicken'), _('Klickfläche'), _('Schaltfläche'), - _('Beschriftung'), _('Verweis'), _('Imagemap'), _('Karte'), - _('weiterleiten'), _('Weiterleitung'), _('Weiterführung'), _('Illustration'), - 'jpg', 'png', 'gif', + _('Bild'), + _('Link'), + _('klicken'), + _('Klickfläche'), + _('Schaltfläche'), + _('Beschriftung'), + _('Verweis'), + _('Imagemap'), + _('Karte'), + _('weiterleiten'), + _('Weiterleitung'), + _('Weiterführung'), + _('Illustration'), + 'jpg', + 'png', + 'gif', ]; } } -- cgit v1.0