PHP code example of agence-adeliom / easy-media-bundle
1. Go to this page and download the library: Download agence-adeliom/easy-media-bundle 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/ */
agence-adeliom / easy-media-bundle example snippets
// src/Entity/EasyMedia/Folder.php
namespace App\Entity\EasyMedia;
use Adeliom\EasyMediaBundle\Entity\Folder as BaseFolder;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Table(name: 'easy_media__folder')]
class Folder extends BaseFolder
{
}
// src/Entity/EasyMedia/Media.php
namespace App\Entity\EasyMedia;
use Adeliom\EasyMediaBundle\Entity\Media as BaseMedia;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Table(name: 'easy_media__media')]
class Media extends BaseMedia
{
}
namespace App\Controller\Admin;
...
class DashboardController extends AbstractDashboardController
{
...
// Add the custom form theme
public function configureCrud(): Crud
{
return parent::configureCrud()
->addFormTheme('@EasyMedia/form/easy-media.html.twig')
;
}
public function configureMenuItems(): iterable
{
...
yield MenuItem::linkToRoute('Medias', 'fa fa-picture-o', 'media.index');
...
use Adeliom\EasyMediaBundle\Admin\Field\EasyMediaField;
...
yield EasyMediaField::new('property', "label")
// Apply restrictions by mime-types
->setFormTypeOption("restrictions_uploadTypes", ["image/*"])
// Apply restrictions to upload size in MB
->setFormTypeOption("restrictions_uploadSize", 5)
// Apply restrictions to path
->setFormTypeOption("restrictions_path", "users/" . $userID)
// Hide fiels with extensions (null or array)
->setFormTypeOption("hideExt", ["svg"])
// Hide folders (null or array)
->setFormTypeOption("hidePath", ['others', 'users/testing'])
// Enable/Disable actions
->setFormTypeOption("editor", true)
->setFormTypeOption("upload", true)
->setFormTypeOption("bulk_selection", true)
->setFormTypeOption("move", true)
->setFormTypeOption("rename", true)
->setFormTypeOption("metas", true)
->setFormTypeOption("delete", true)
;
# Render the media
{{ easy_media(object.media, format, options) }} // By default format is the reference file and options
# Examples :
{{ easy_media(object.media, "reference") }}
{{ easy_media(object.media, "cover_full", {'class': 'myclass'}) }}
## For images
{{ easy_media(object.media, "cover_full", {'loading': "lazy"}) }}
{{ easy_media(object.media, "cover_full", {'picture': ["cover_full__2xl","cover_full__xl","cover_full__lg","cover_full__sm","cover_full__xs"]}) }}
{{ easy_media(object.media, "cover_full", {'srcset': ["cover_full__2xl","cover_full__xl","cover_full__lg","cover_full__sm","cover_full__xs"]}) }}
{{ easy_media(object.media, "cover_full", {'loading': "lazy", 'srcset': {'(max-width: 500px)': 'cover_full__2xl', '(max-width: 1200px)': 'cover_full__xl'}}) }}
## For oembed
{{ easy_media(object.media, "reference") }}
{{ easy_media(object.media, "reference", {'responsive': true}) }}
## For video
{{ easy_media(object.media, "reference") }}
{{ easy_media(object.media, "reference", {"responsive" : true, "controls" : true, "autoplay" : true}) }}
# Get media path
{{ easy_media_path(object.media, format) }} // By default format is the reference file
# Get media URL
{{ object.media|resolve_media }}
# Get media metadatas
{{ object.media|media_meta }}
# Get single media metadata
{{ object.media|media_meta('key') }}
# Get complete media informations
{{ object.media|media_infos }}
# Get test file type
# type_to_test: can be a mime_type or
# oembed for any embed type
# image for any image type
# pdf for pdf files
# compressed for archives files
{{ file_is_type(object.media, type_to_test) }}
# Get mimetype icon (font-awesome)
{{ mime_icon("text/plain") }}
/* @var EasyMediaManager $manager */
# Get media by id or null
$media = $manager->getMedia($id);
# Get folder by id or null
$folder = $manager->getFolder($id);
# Get folder by path
$folder = $manager->folderByPath($path);
# Create a folder
$folder = $manager->createFolder($folderName, $path = null)
# Create a media
# $source can be a UploadedFile, File, Image URL, Oembed URL, Base64 URI
$folder = $manager->createMedia($source, $path = null, $name = null)
# Save a folder or media
$manager->save($entity, $flush = true);
# Delete a folder or media
$manager->delete($entity, $flush = true);