diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2025-10-18 12:51:54 +0200 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2026-02-02 11:17:01 +0100 |
| commit | cdcb9c35b952bd4edfd13a73f4c4220c05ff9934 (patch) | |
| tree | fff0860261581428bdcf2b0f5b8c63a7f569ba42 | |
| parent | 8ba257f3be5761750d0d1de253191ece054ba7e3 (diff) | |
add performMapping to image map blockbiest-5560
| -rw-r--r-- | lib/models/Courseware/BlockTypes/ImageMap.php | 38 |
1 files 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', ]; } } |
