]> _ Git - cubist_cms-back.git/commitdiff
wip #4804
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Oct 2021 18:20:59 +0000 (20:20 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Oct 2021 18:20:59 +0000 (20:20 +0200)
src/app/Magic/EntityData.php

index e7f0db9e03d57506ee81cf0d9da9a77ff555a346..ae589944ae2e3fd3f0949e6a4ebbaae7d7a71c73 100644 (file)
@@ -5,10 +5,9 @@ namespace Cubist\Backpack\Magic;
 
 
 use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
-use Cubist\Backpack\Magic\Models\CubistMagicModel;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\App;
-use Spatie\MediaLibrary\Models\Media;
+use Spatie\MediaLibrary\MediaCollections\Models\Media;
 
 class EntityData implements \ArrayAccess
 {
@@ -22,7 +21,7 @@ class EntityData implements \ArrayAccess
     protected $_entity;
 
     /**
-     * @return CubistMagicModel
+     * @return CubistMagicAbstractModel
      */
     public function getEntity(): CubistMagicAbstractModel
     {
@@ -30,7 +29,7 @@ class EntityData implements \ArrayAccess
     }
 
     /**
-     * @param CubistMagicModel $entity
+     * @param CubistMagicAbstractModel $entity
      */
     public function setEntity(CubistMagicAbstractModel $entity): void
     {
@@ -297,7 +296,7 @@ class EntityData implements \ArrayAccess
     {
         $collectionID = $collectionID ?? '';
 
-        $media = $this->getEntity()->getMedia($collectionID);
+        $media = $this->getMediaByCollection($collectionID);
         if (!$media) {
             return $default;
         }
@@ -314,6 +313,35 @@ class EntityData implements \ArrayAccess
         return $default;
     }
 
+    /**
+     * @param $collectionID
+     * @return \Spatie\MediaLibrary\MediaCollections\Models\Collections\MediaCollection
+     */
+    public function getMediaByCollection($collectionID)
+    {
+        return $this->getEntity()->getMedia($collectionID);
+    }
+
+    /**
+     * @param $collectionID
+     * @param string $conversionName
+     * @return array
+     */
+    public function getMediaPathsByCollection($collectionID, $conversionName = '')
+    {
+        if (!$collectionID) {
+            return [];
+        }
+        $media = $this->getMediaByCollection($collectionID);
+        $res = [];
+        foreach ($media as $m) {
+            /** @var Media $m */
+            $res[] = $m->getPath($conversionName);
+        }
+        return $res;
+    }
+
+
     public function getImageURLAt($offset, $at = 0, $conversionName = '', $default = null)
     {
         $media = $this->getMedia($offset);