aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2023-07-14 06:22:17 +0000
committerDavid Siegfried <david.siegfried@uni-vechta.de>2023-07-14 06:22:17 +0000
commit2e40475f6dae7bece3a5523c3cd499c845f69029 (patch)
tree88619a83fd3af50e80d4f7895eebef869278ffba
parent74603117e50e764dfb0233d49cb99ffafaccac54 (diff)
avoid API change in BlockType class, re #2766
Merge request studip/studip!1927
-rw-r--r--lib/models/Courseware/Block.php8
-rw-r--r--lib/models/Courseware/BlockTypes/Audio.php8
-rw-r--r--lib/models/Courseware/BlockTypes/BeforeAfter.php8
-rw-r--r--lib/models/Courseware/BlockTypes/BlockType.php12
-rw-r--r--lib/models/Courseware/BlockTypes/Canvas.php8
-rw-r--r--lib/models/Courseware/BlockTypes/DialogCards.php7
-rw-r--r--lib/models/Courseware/BlockTypes/Document.php8
-rw-r--r--lib/models/Courseware/BlockTypes/Download.php8
-rw-r--r--lib/models/Courseware/BlockTypes/Folder.php8
-rw-r--r--lib/models/Courseware/BlockTypes/Gallery.php9
-rw-r--r--lib/models/Courseware/BlockTypes/Headline.php8
-rw-r--r--lib/models/Courseware/BlockTypes/ImageMap.php8
-rw-r--r--lib/models/Courseware/BlockTypes/Text.php6
-rw-r--r--lib/models/Courseware/BlockTypes/Video.php8
-rw-r--r--lib/models/Courseware/Container.php8
-rw-r--r--lib/models/Courseware/ContainerTypes/ContainerType.php2
-rw-r--r--lib/models/Courseware/StructuralElement.php6
17 files changed, 45 insertions, 85 deletions
diff --git a/lib/models/Courseware/Block.php b/lib/models/Courseware/Block.php
index d311e0f..f5d8b20 100644
--- a/lib/models/Courseware/Block.php
+++ b/lib/models/Courseware/Block.php
@@ -178,7 +178,7 @@ class Block extends \SimpleORMap implements \PrivacyObject
]
];
- return json_encode($block, true);
+ return json_encode($block);
}
/**
@@ -218,18 +218,18 @@ class Block extends \SimpleORMap implements \PrivacyObject
$struct = $container->structural_element;
$rangeId = $struct->getRangeId();
- $block = self::create([
+ $block = self::build([
'container_id' => $container->id,
'owner_id' => $user->id,
'editor_id' => $user->id,
'edit_blocker_id' => null,
'position' => $container->countBlocks(),
'block_type' => $data->attributes->{'block-type'},
+ 'payload' => json_encode($data->attributes->payload),
'visible' => 1,
]);
- $dataPayload = (array)$data->attributes->payload;
- $block->payload = json_encode($block->type->copyPayload('', $dataPayload), true);
+ $block->payload = json_encode($block->type->copyPayload($rangeId));
$block->store();
//update Container payload
diff --git a/lib/models/Courseware/BlockTypes/Audio.php b/lib/models/Courseware/BlockTypes/Audio.php
index 7196f20..dd2588a 100644
--- a/lib/models/Courseware/BlockTypes/Audio.php
+++ b/lib/models/Courseware/BlockTypes/Audio.php
@@ -74,13 +74,11 @@ class Audio extends BlockType
}
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/BeforeAfter.php b/lib/models/Courseware/BlockTypes/BeforeAfter.php
index 5ad772c..b4f33ca 100644
--- a/lib/models/Courseware/BlockTypes/BeforeAfter.php
+++ b/lib/models/Courseware/BlockTypes/BeforeAfter.php
@@ -75,13 +75,11 @@ class BeforeAfter extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['before_file_id'])) {
+ if ('' != $payload['before_file_id']) {
$payload['before_file_id'] = $this->copyFileById($payload['before_file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/BlockType.php b/lib/models/Courseware/BlockTypes/BlockType.php
index e5526f5..50bcc42 100644
--- a/lib/models/Courseware/BlockTypes/BlockType.php
+++ b/lib/models/Courseware/BlockTypes/BlockType.php
@@ -233,9 +233,9 @@ abstract class BlockType
}
// TODO: (tgloeggl) DocBlock ergänzen
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- return $payload ?: $this->getPayload();
+ return $this->getPayload();
}
/**
@@ -340,10 +340,6 @@ abstract class BlockType
return $file_map[$fileId];
}
- if ($rangeId === '') {
- $rangeId = $this->block->container->structural_element->range_id;
- }
-
$user = \User::findCurrent();
if ($file_ref = \FileRef::find($fileId)) {
$copiedFile = \FileManager::copyFile(
@@ -380,10 +376,6 @@ abstract class BlockType
return $folder_map[$folderId];
}
- if ($rangeId === '') {
- $rangeId = $this->block->container->structural_element->range_id;
- }
-
$user = \User::findCurrent();
$destinationFolder = $this->getDestinationFolder($user, $rangeId);
if ($sourceFolder = \Folder::find($folderId)) {
diff --git a/lib/models/Courseware/BlockTypes/Canvas.php b/lib/models/Courseware/BlockTypes/Canvas.php
index 34dc431..e7b14e9 100644
--- a/lib/models/Courseware/BlockTypes/Canvas.php
+++ b/lib/models/Courseware/BlockTypes/Canvas.php
@@ -65,13 +65,11 @@ class Canvas extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/DialogCards.php b/lib/models/Courseware/BlockTypes/DialogCards.php
index 62eea5f..74b843c 100644
--- a/lib/models/Courseware/BlockTypes/DialogCards.php
+++ b/lib/models/Courseware/BlockTypes/DialogCards.php
@@ -80,12 +80,9 @@ class DialogCards extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
-
+ $payload = $this->getPayload();
foreach ($payload['cards'] as &$card) {
if ('' != $card['front_file_id']) {
$card['front_file_id'] = $this->copyFileById($card['front_file_id'], $rangeId);
diff --git a/lib/models/Courseware/BlockTypes/Document.php b/lib/models/Courseware/BlockTypes/Document.php
index 2095008..db1ba6e 100644
--- a/lib/models/Courseware/BlockTypes/Document.php
+++ b/lib/models/Courseware/BlockTypes/Document.php
@@ -67,13 +67,11 @@ class Document extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/Download.php b/lib/models/Courseware/BlockTypes/Download.php
index f53c8c7..d736009 100644
--- a/lib/models/Courseware/BlockTypes/Download.php
+++ b/lib/models/Courseware/BlockTypes/Download.php
@@ -61,13 +61,11 @@ class Download extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/Folder.php b/lib/models/Courseware/BlockTypes/Folder.php
index d5156b6..bc34f85 100644
--- a/lib/models/Courseware/BlockTypes/Folder.php
+++ b/lib/models/Courseware/BlockTypes/Folder.php
@@ -104,13 +104,11 @@ class Folder extends BlockType
return \FileRef::findByFolder_id($payload['folder_id']);
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['folder_id'])) {
+ if ('' != $payload['folder_id']) {
$payload['folder_id'] = $this->copyFolderById($payload['folder_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/Gallery.php b/lib/models/Courseware/BlockTypes/Gallery.php
index 1d931ea..5f9bb0b 100644
--- a/lib/models/Courseware/BlockTypes/Gallery.php
+++ b/lib/models/Courseware/BlockTypes/Gallery.php
@@ -123,13 +123,10 @@ class Gallery extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
-
- if (!empty($payload['folder_id'])) {
+ $payload = $this->getPayload();
+ if ('' != $payload['folder_id']) {
$payload['folder_id'] = $this->copyFolderById($payload['folder_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/Headline.php b/lib/models/Courseware/BlockTypes/Headline.php
index eace946..0c82138 100644
--- a/lib/models/Courseware/BlockTypes/Headline.php
+++ b/lib/models/Courseware/BlockTypes/Headline.php
@@ -73,13 +73,11 @@ class Headline extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['background_image_id'])) {
+ if ('' != $payload['background_image_id']) {
$payload['background_image_id'] = $this->copyFileById($payload['background_image_id'], $rangeId);
$payload['background_image'] = '';
}
diff --git a/lib/models/Courseware/BlockTypes/ImageMap.php b/lib/models/Courseware/BlockTypes/ImageMap.php
index 3f8f37b..e275c46 100644
--- a/lib/models/Courseware/BlockTypes/ImageMap.php
+++ b/lib/models/Courseware/BlockTypes/ImageMap.php
@@ -55,13 +55,11 @@ class ImageMap extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/BlockTypes/Text.php b/lib/models/Courseware/BlockTypes/Text.php
index e918c6a..0a89219 100644
--- a/lib/models/Courseware/BlockTypes/Text.php
+++ b/lib/models/Courseware/BlockTypes/Text.php
@@ -88,11 +88,9 @@ class Text extends BlockType
return $files;
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
$document = new \DOMDocument();
if ($payload['text']) {
diff --git a/lib/models/Courseware/BlockTypes/Video.php b/lib/models/Courseware/BlockTypes/Video.php
index a32ca66..431f69b 100644
--- a/lib/models/Courseware/BlockTypes/Video.php
+++ b/lib/models/Courseware/BlockTypes/Video.php
@@ -68,13 +68,11 @@ class Video extends BlockType
}
- public function copyPayload(string $rangeId = '', $payload = null): array
+ public function copyPayload(string $rangeId = ''): array
{
- if (!$payload) {
- $payload = $this->getPayload();
- }
+ $payload = $this->getPayload();
- if (!empty($payload['file_id'])) {
+ if ('' != $payload['file_id']) {
$payload['file_id'] = $this->copyFileById($payload['file_id'], $rangeId);
}
diff --git a/lib/models/Courseware/Container.php b/lib/models/Courseware/Container.php
index 5ce8f29..ac5ef60 100644
--- a/lib/models/Courseware/Container.php
+++ b/lib/models/Courseware/Container.php
@@ -115,13 +115,13 @@ class Container extends \SimpleORMap implements \PrivacyObject
],
'blocks' => $this->getClipboardBackupBlocks()
];
- return json_encode($container, true);
+ return json_encode($container);
}
public function getClipboardBackupBlocks(): array
{
return $this->blocks->map(function (Block $block) {
- return json_decode($block->getClipboardBackup());
+ return json_decode($block->getClipboardBackup(), true);
});
}
@@ -195,11 +195,11 @@ class Container extends \SimpleORMap implements \PrivacyObject
'edit_blocker_id' => null,
'position' => $element->countContainers(),
'container_type' => $data->attributes->{'container-type'},
- 'payload' => json_encode($data->attributes->payload),
+ 'payload' => $data->attributes->payload,
]);
$blockMap = self::createBlocksFromData($user, $container, $data);
- $container['payload'] = $container->type->copyPayload($blockMap);
+ $container->payload = $container->type->copyPayload($blockMap);
$container->store();
return $container;
diff --git a/lib/models/Courseware/ContainerTypes/ContainerType.php b/lib/models/Courseware/ContainerTypes/ContainerType.php
index 6cbcdf9..e358c9c 100644
--- a/lib/models/Courseware/ContainerTypes/ContainerType.php
+++ b/lib/models/Courseware/ContainerTypes/ContainerType.php
@@ -197,7 +197,7 @@ abstract class ContainerType
foreach ($payload['sections'] as &$section) {
foreach ($section['blocks'] as &$block) {
- $block = strval($block_map[$block]) ?? null;
+ $block = $block_map[$block] ?? null;
}
$section['blocks'] = array_filter($section['blocks']);
}
diff --git a/lib/models/Courseware/StructuralElement.php b/lib/models/Courseware/StructuralElement.php
index d3c77fa..42b8760 100644
--- a/lib/models/Courseware/StructuralElement.php
+++ b/lib/models/Courseware/StructuralElement.php
@@ -821,12 +821,6 @@ SQL;
return null;
}
- public static function getClipboardBackup(): string
- {
- //TODO
- return '';
- }
-
/**
* Copies this instance into another course oder users contents.
*