diff --git a/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php b/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php index 3c81f07e8..2d5db19f3 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php @@ -21,6 +21,14 @@ trait FlexObjectTrait { use FlexCommonTrait; + protected $events = [ + 'onRender' => 'onFlexObjectRender', + 'onBeforeSave' => 'onFlexObjectBeforeSave', + 'onAfterSave' => 'onFlexObjectAfterSave', + 'onBeforeDelete' => 'onFlexObjectBeforeDelete', + 'onAfterDelete' => 'onFlexObjectAfterDelete' + ]; + /** * @param string $name * @param object|null $event @@ -28,14 +36,6 @@ trait FlexObjectTrait */ public function triggerEvent(string $name, $event = null) { - $events = [ - 'onRender' => 'onFlexObjectRender', - 'onBeforeSave' => 'onFlexObjectBeforeSave', - 'onAfterSave' => 'onFlexObjectAfterSave', - 'onBeforeDelete' => 'onFlexObjectBeforeDelete', - 'onAfterDelete' => 'onFlexObjectAfterDelete' - ]; - if (null === $event) { $event = new Event([ 'type' => 'flex', @@ -44,8 +44,8 @@ trait FlexObjectTrait ]); } - if (isset($events['name'])) { - $name = $events['name']; + if (isset(static::$events['name'])) { + $name = static::$events['name']; } elseif (strpos($name, 'onFlexObject') !== 0 && strpos($name, 'on') === 0) { $name = 'onFlexObject' . substr($name, 2); } diff --git a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php index ad25d35a6..ada8c6986 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php @@ -71,4 +71,21 @@ interface MediaUploadInterface * @phpstan-impure */ public function renameFile(string $from, string $to): void; + + /** + * @return bool True if media was deleted. Shared media cannot be deleted and will return false. + */ + public function deleteAll(): bool; + + /** + * @param string $to + * @return bool True if media was moved. Shared media cannot be deleted and will return false. + */ + public function moveAll(string $to): bool; + + /** + * @param string $to + * @return bool True if media was copied. Shared media cannot be deleted and will return false. + */ + public function copyAll(string $to): bool; } diff --git a/system/src/Grav/Common/Page/Medium/LocalMedia.php b/system/src/Grav/Common/Page/Medium/LocalMedia.php index 856c1ef84..f77cce572 100644 --- a/system/src/Grav/Common/Page/Medium/LocalMedia.php +++ b/system/src/Grav/Common/Page/Medium/LocalMedia.php @@ -116,6 +116,35 @@ abstract class LocalMedia extends AbstractMedia return MediumFactory::fromArray($items); } + /** + * @return bool + */ + public function deleteAll(): bool + { + // TODO: Not implemented + return false; + } + + /** + * @param string $to + * @return bool + */ + public function moveAll(string $to): bool + { + // TODO: Not implemented + return false; + } + + /** + * @param string $to + * @return bool + */ + public function copyAll(string $to): bool + { + // TODO: Not implemented + return false; + } + /** * @param string $filename * @return string