This package adds media library functionality to Symfony Form
Open a command console, enter your project directory and execute:
$ composer require netliva/medialibOpen a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require netliva/medialibThis command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php file of your project:
NetlivaFileTypeBundle has been installed as a dependency of NetlivaMediaLibBundle. If you have not installed NetlivaFileTypeBundle before, you must enable it because of the dependency.
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Netliva\MediaLibBundle\NetlivaMediaLibBundle(),
new Netliva\FileTypeBundle\NetlivaFileTypeBundle(),
);
// ...
}
// ...
}php bin/console doctrine:schema:update --force
Install assets as shown below
$ php bin/console assets:install
This command will create asset files in folders which; (Symfony >= 4.0) public/bundles/netlivamedialib
(Symfony >= 3.3) web/bundles/netlivamedialib .
Include files which created by assets command, into your project:
<link href="{{ asset('bundles/netlivamedialib/nmlb.css' }}" rel="stylesheet" type="text/css">
<script src="{{ asset('bundles/netlivamedialib/nmlb.js' }}"></script>or using webpack encore;
// assets/js/app.js
require('../../public/bundles/netlivamedialib/nmlb.css');
require('../../public/bundles/netlivamedialib/nmlb.js');To using MediaLib with different languages, include the js file to your project under
bundles/netlivamedialib/localize.
For Example;
<script src="{{ asset('bundles/netlivamedialib/localize/tr.js' }}"></script>netliva_file_route:
resource: .
type: netliva_file_routeYou can configure your upload folder or your download uri as shown below. This settings are optional and default values are shown below.
# Symfony >= 4.0. Create a dedicated netliva_config.yaml in config/packages with:
# Symfony >= 3.3. Add in your app/config/config.yml:
netliva_file_type:
file_config:
upload_dir: public/netliva_uploads
download_uri: /uploads- upload_dir: This options sets where your files will be uploaded starts from project root directory.
- download_uri: This option sets a virtual folder name where your folders will be downloaded from. If there is a folder with this name in your project root directory, it would cause error
Firstly add a field as json_array type in your entity.
Then simply add MediaLibType to your form with this field.
<?php
//...
public function buildForm (FormBuilderInterface $formBuilder, array $options)
{
//...
$formBuilder->add('images', MediaLibType::class, [ 'label' => 'Images', 'button_text'=>"select file", 'multiple'=>"true"]);
//...
}
//...
?>with Multiple true you can select multiple files, or with false it allows you to select one file only.
get_nl_mfolder() twig function will return folder information from field.
You can use nl_file_uri twig filter to get file path from field.
{% for image in get_nl_mfolder(entity.images).files %}
<img src="{{ image|nl_file_uri }}" />
{% endfor %}get_nl_mfile() twig function will return file information from field.
You can use nl_file_uri twig filter to get file path from field.
<img src="{{ get_nl_mfile(entity.image)|nl_file_uri }}" />