*/
public function getImageURLbyCollection($collectionID, $conversionName = '', $default = null)
{
- $collectionID = $collectionID ?? '';
-
- $media = $this->getMediaByCollection($collectionID);
- if (!$media) {
- return $default;
- }
-
- foreach ($media as $m) {
- /** @var Media $m */
- $res = $m->getUrl($conversionName);
- if (!$res) {
- continue;
- }
- return $res;
- }
-
- return $default;
+ return $this->getEntity()->getImageURLbyCollection($collectionID, $conversionName, $default);
}
/**
*/
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;
+ return $this->getEntity()->getMediaPathsByCollection($collectionID, $conversionName);
}
use Illuminate\Support\Str;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
+use Spatie\MediaLibrary\MediaCollections\Models\Collections\MediaCollection;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Venturecraft\Revisionable\RevisionableTrait;
$field->getFilterOptions();
}
}
+
+ /**
+ * @param string $collectionID Name of the collection
+ * @param string $conversionName
+ * @param mixed $default
+ * @return string|null
+ */
+ public function getImageURLbyCollection($collectionID, $conversionName = '', $default = null)
+ {
+ $collectionID = $collectionID ?? '';
+
+ $media = $this->getMedia($collectionID);
+ if (!$media) {
+ return $default;
+ }
+
+ foreach ($media as $m) {
+ /** @var Media $m */
+ $res = $m->getUrl($conversionName);
+ if (!$res) {
+ continue;
+ }
+ return $res;
+ }
+
+ return $default;
+ }
+
+ /**
+ * @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;
+ }
+
+ /**
+ * @param $collectionID
+ * @return MediaCollection
+ */
+ public function getMediaByCollection($collectionID)
+ {
+ return $this->getMedia($collectionID);
+ }
+
+ /**
+ * @param string $fieldName
+ * @return Media|null
+ */
+ public function getFirstMediaInField(string $fieldName): ?Media
+ {
+ $collection = $this->getMediaInField($fieldName);
+ if ($collection->count() > 0) {
+ return $collection->first();
+ }
+ return null;
+ }
}