unifik/media-bundle

symfony-unifik 分布式的媒体包

安装: 578

依赖: 1

建议: 0

安全: 0

星标: 1

关注者: 9

分支: 3

开放问题: 6

语言:JavaScript

类型:symfony-bundle

0.1.2 2017-05-15 17:44 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:41:29 UTC


README

安装

使用 composer 文件

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

AppKernel.php 中添加以下行

new Unifik\MediaBundle\UnifikMediaBundle(),

app/config/routing.yml 中添加以下内容

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

一旦加载了包,要激活带有 CKEditor 的媒体管理器,必须在 ckeditor 配置中注册插件(app/config/config.yml

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

你还需要在工具栏中添加 'Insert_media' 按钮。以下是一个配置示例

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

为了在表单中获取适当的媒体选择字段,你需要在表单主题中添加以下行

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

此包使用 FOSRoutingBundle。因此,你需要包含以下 js 文件

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

并运行以下命令:app/console fos:js-routing:dump

包含所需的 dynamic_loader.js 文件以添加 Media Bundle CKEditor 插件

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

config.yml 文件中包含 liip imagine routing

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

包要求

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

添加媒体字段

要链接媒体与实体,添加以下的多对一关系

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

要生成媒体字段,在你的表单类型中添加以下内容:(默认类型是 image)

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

要选择其他媒体类型:(可用的类型有:image、video、embedvideo 和 document)

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