PHP code example of corollarium / modelarium-medialibrary
1. Go to this page and download the library: Download corollarium/modelarium-medialibrary library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
corollarium / modelarium-medialibrary example snippets
/**
* This file was automatically generated by Modelarium on 2020-12-13T18:28:11+00:00
*/
namespace App\Models;
abstract class BasePost extends \Illuminate\Database\Eloquent\Model implements \Spatie\MediaLibrary\HasMedia
{
use \Spatie\MediaLibrary\InteractsWithMedia;
// ...lots of base stuff...
/**
* Configures Laravel media-library
*/
public function registerMediaCollections(): void
{
$this->addMediaCollection('image');
$this->addMediaCollection('map');
}
/**
* Returns a collection media from Laravel-MediaLibrary
*/
public function getMediaImageCollection(): \Spatie\MediaLibrary\MediaCollections\Models\Collections\MediaCollection
{
return $this->getMedia('image');
}
/**
* Returns custom fields for the media
*/
public function getMediaImageCustomFields(): array
{
return ['url', 'description'];
}
/**
* Returns the media attribute (url) for the image
*/
public function getImageUrlAttribute(): string
{
$image = $this->getMediaImageCollection()->first();
if ($image) {
return $image->getUrl();
}
return '';
}
/**
* Returns media attribute for the image media with custom fields
*/
public function getImageAttribute(): array
{
$image = $this->getMediaImageCollection()->first();
if ($image) {
$customFields = [];
foreach ($this->getMediaImageCustomFields() as $c) {
$customFields[$c] = $image->getCustomProperty($c);
}
return [
'url' => $image->getUrl(),
'fields' => json_encode($customFields)
];
}
return [];
}
/**
* Configures Laravel media-library conversions
*/
public function registerMediaConversions(?\Spatie\MediaLibrary\MediaCollections\Models\Media $media = null): void
{
$this->addMediaConversions('thumb')->width('150')->height('150');
}
/**
* Returns a collection media from Laravel-MediaLibrary
*/
public function getMediaMapCollection(): \Spatie\MediaLibrary\MediaCollections\Models\Collections\MediaCollection
{
return $this->getMedia('map');
}
/**
* Returns custom fields for the media
*/
public function getMediaMapCustomFields(): array
{
return ['url', 'description'];
}
/**
* Returns the media attribute (url) for the map
*/
public function getMapUrlAttribute(): string
{
$image = $this->getMediaMapCollection()->first();
if ($image) {
return $image->getUrl();
}
return '';
}
/**
* Returns media attribute for the map media with custom fields
*/
public function getMapAttribute(): array
{
$image = $this->getMediaMapCollection()->first();
if ($image) {
$customFields = [];
foreach ($this->getMediaMapCustomFields() as $c) {
$customFields[$c] = $image->getCustomProperty($c);
}
return [
'url' => $image->getUrl(),
'fields' => json_encode($customFields)
];
}
return [];
}
// ...more stuff here...
}
class Post extends BasePost
{
public function registerMediaConversions(?\Spatie\MediaLibrary\MediaCollections\Models\Media $media = null): void
{
// do your stuff here
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.