netliva/medialib

Netliva 媒体库

安装: 22

依赖: 0

建议: 0

安全: 0

星级: 1

关注者: 3

分支: 0

开放问题: 0

语言:JavaScript

v0.2.0 2021-01-31 20:31 UTC

This package is auto-updated.

Last update: 2024-09-29 04:31:33 UTC


README

此包为 Symfony 表单添加媒体库功能

安装

使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录,并执行以下命令:

$ composer require netliva/medialib

不使用 Symfony Flex 的应用程序

步骤 1:下载 Bundle

打开命令行,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本:

$ composer require netliva/medialib

此命令要求您全局安装了 Composer,具体请参考 Composer 文档中的安装章节

步骤 2:启用 Bundle

然后,通过将其添加到项目 app/AppKernel.php 文件中注册的 Bundle 列表来启用该 Bundle

NetlivaFileTypeBundle 已经作为 NetlivaMediaLibBundle 的依赖项安装。如果您之前没有安装 NetlivaFileTypeBundle,由于依赖关系,您必须启用它。

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Netliva\MediaLibBundle\NetlivaMediaLibBundle(),
            new Netliva\FileTypeBundle\NetlivaFileTypeBundle(),
        );

        // ...
    }

    // ...
}

步骤 3:更新数据库模式

php bin/console doctrine:schema:update --force

将资源包含到您的项目中

安装资源

按照以下步骤安装资源:

$ php bin/console assets:install

此命令将在以下文件夹中创建资源文件;(Symfony >= 4.0) public/bundles/netlivamedialib (Symfony >= 3.3) web/bundles/netlivamedialib .

将 assets 命令创建的文件包含到您的项目中

<link href="{{ asset('bundles/netlivamedialib/nmlb.css' }}" rel="stylesheet" type="text/css">
<script src="{{ asset('bundles/netlivamedialib/nmlb.js' }}"></script>

或使用 webpack encore;

// assets/js/app.js
require('../../public/bundles/netlivamedialib/nmlb.css');
require('../../public/bundles/netlivamedialib/nmlb.js');

本地化

要使用不同语言使用 MediaLib,请将 js 文件包含到您的项目中的
bundles/netlivamedialib/localize.

例如;

<script src="{{ asset('bundles/netlivamedialib/localize/tr.js' }}"></script>

配置

路由定义

netliva_file_route:
  resource: .
  type: netliva_file_route

配置定义

您可以像下面这样配置您的上传文件夹或下载 uri。这些设置是可选的,默认值如下所示。

# 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:此选项设置文件将从项目根目录开始上传的位置。
  • download_uri:此选项设置一个虚拟文件夹名称,从该文件夹下载文件夹。如果项目根目录中存在此名称的文件夹,将导致错误

基本用法

首先在您的实体中添加一个 json_array 类型的字段。然后简单地将 MediaLibType 添加到表单中的此字段。

<?php
//...
public function buildForm (FormBuilderInterface $formBuilder, array $options)
{
	//...
	$formBuilder->add('images', MediaLibType::class, [ 'label' => 'Images', 'button_text'=>"select file", 'multiple'=>"true"]);
	//...
}
//...
?>

通过设置 Multiple 为 true,您可以选择多个文件,或者通过设置为 false 只允许选择一个文件。

使用插入的数据到字段

如果您的数据是多个上传

get_nl_mfolder() twig 函数将从字段返回文件夹信息。您可以使用 nl_file_uri twig 过滤器从字段获取文件路径。

{% for image in get_nl_mfolder(entity.images).files %}
    <img src="{{ image|nl_file_uri }}" />
{% endfor %}

如果您的数据是单个文件上传

get_nl_mfile() twig 函数将从字段返回文件信息。您可以使用 nl_file_uri twig 过滤器从字段获取文件路径。

<img src="{{ get_nl_mfile(entity.image)|nl_file_uri }}" />