Skip to content

egzakt/UnifikMediaBundle

Repository files navigation

UnifikMediaBundle

Installation

Using composer file :

"require": {
    //...,
    "unifik/media-bundle": "dev-master"
},

Add the following line to AppKernel.php :

new Unifik\MediaBundle\UnifikMediaBundle(),

In app/config/routing.yml add the following:

unifik_media_backend:
    resource: "@UnifikMediaBundle/Resources/config/routing_backend.yml"
    prefix:   /admin/media

To activate the media manager with CKEditor once the bundle is loaded, you must register the plugin in the ckeditor config (app/config/config.yml):

external_plugins:
    unifikmediamanager:
        path: bundles/unifikmedia/backend/js/ckeditor/plugin/unifikmediamanager

You must also add the 'Insert_media' button in one toolbar. An example of config:

trsteel_ckeditor:
  toolbar_groups:
      [...]
      insert: ['Insert_media', 'Image', 'Flash', 'Table', 'HorizontalRule']
      [...]

To get the proper media select field in your form, your need to add those lines in your form theme:

{% block media_select_widget %}
    {% include 'UnifikMediaBundle:Backend/Form:fields.html.twig' with {'widget_attributes': block('widget_attributes')} %}
{% endblock %}

This bundle use FOSRoutingBundle. So you need to include the following js files:

{% javascripts
    'bundles/fosjsrouting/js/router.js'
    'js/fos_js_routes.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}

And run this command: app/console fos:js-routing:dump

Include the dynamic_loader.js file required to add the Media Bundle CKEditor Plugin:

{% javascripts
    '@UnifikMediaBundle/Resources/public/backend/js/dynamic_loader.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}

Include the liip imagine routing in your config.yml file:

_liip_imagine:
    resource: "@LiipImagineBundle/Resources/config/routing.xml"

Bundle requirements

  • unifik/doctrine-behaviors-bundle
  • liip/imagine-bundle
  • friendsofsymfony/jsrouting-bundle

Add Media field

To link media with entity, add the manyToOne relation as follow:

manyToOne:
  myMedia:
    targetEntity: Unifik\MediaBundle\Entity\Media

To generate de media field, add this in your form type: (default type is image)

->add('image2', 'media_select')

To choose an other media type: (available types are: image, video, embedvideo and document)

->add('image2', 'media_select', array('type' => 'image'))