aropixel / sylius-admin-media-plugin
增强 sylius 管理媒体管理功能,支持图片裁剪、库...
v0.2.4
2020-08-05 16:32 UTC
Requires
- php: ^7.3
- artgris/media-bundle: ^5.2
- sylius/sylius: ^1.7
Requires (Dev)
- behat/behat: ^3.4
- behat/mink: ^1.7@dev
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.2
- behat/mink-selenium2-driver: ^1.3
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.0
- friends-of-behat/variadic-extension: ^1.1
- lakion/mink-debug-extension: ^1.2.3
- phpspec/phpspec: ^6.0
- phpstan/phpstan-doctrine: ^0.11
- phpstan/phpstan-shim: ^0.11
- phpstan/phpstan-webmozart-assert: ^0.11
- phpunit/phpunit: ^8.0
- sensiolabs/security-checker: ^5.0
- sylius-labs/coding-standard: ^3.0
- symfony/browser-kit: ^3.4|^4.3
- symfony/debug-bundle: ^3.4|^4.3
- symfony/dotenv: ^4.3
- symfony/intl: ^3.4|^4.3
- symfony/web-profiler-bundle: ^3.4|^4.3
- symfony/web-server-bundle: ^4.4
This package is auto-updated.
Last update: 2024-09-25 03:39:51 UTC
README
Sylius Admin 媒体插件
使用图像裁剪、库(基于 Artgris 媒体包)增强 sylius 管理媒体管理
目录
演示
插件安装和配置完成后,sylius 资源(产品等)的图像系统将被完整的媒体管理系统所替代。您将能够
- 上传图片(当然)
- 打开文件管理器以检索所有上传的图片,并选择其中之一
- 在保存之前直接在管理界面中自由裁剪图片
- 选择一个格式,这将强制您以一定的比例裁剪图片
此插件基于 artgris 媒体包和文件管理器。
安装
在 sylius 应用程序中
- 安装插件:
composer require aropixel/sylius-admin-media-plugin
如果插件未在 config/bundles.php 文件中注册,请通过添加 "Aropixel\SyliusAdminMediaPlugin\AropixelSyliusAdminMediaPlugin::class => ['all' => true]," 来注册它
- 在配置文件夹中创建 aropixel_sylius_admin_media.yaml 并导入插件配置
imports:
- { resource: "@AropixelSyliusAdminMediaPlugin/Resources/config/app/config.yml" }
- 在配置/route 文件夹中创建 aropixel_sylius_admin_media.yaml 并导入插件路由
aropixel_sylius_admin_media:
resource: '@AropixelSyliusAdminMediaPlugin/Resources/config/routes.xml'
- 在 bundles.php 文件中注册新插件
Artgris\Bundle\FileManagerBundle\ArtgrisFileManagerBundle::class => ['all' => true],
Gregwar\ImageBundle\GregwarImageBundle::class => ['all' => true],
Artgris\Bundle\MediaBundle\ArtgrisMediaBundle::class => ['all' => true],
Aropixel\SyliusAdminMediaPlugin\AropixelSyliusAdminMediaPlugin::class => ['all' => true],
-
在 "public" 文件夹中创建 'uploads' 文件夹
-
安装资产
php bin/console assets:install
使用
对于每个资源,您可以定义裁剪格式(比例),您希望在管理界面中裁剪图像。每个定义的裁剪都与 liip 过滤器相关联,以便根据 liip 过滤器的大小自动计算裁剪比例。
例如,假设您在 sylius 应用程序中有一个博客系统,并且您想在主页上显示每个博客帖子的小缩略图。您有两个 sylius 资源:帖子实体和一个帖子图像实体。
- 首先,您需要为您的帖子实体创建管理表单,还需要为您的帖子图像实体创建管理表单。实体表单将为图片添加 AdminMediaCollectionType
->add('images', AdminMediaCollectionType::class, [
'entry_type' => PostImageType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'label' => 'Images'
])
- 帖子图像表单需要扩展插件定义的 ImageType,例如;
use App\Entity\Producer\ProducerImage;
use Aropixel\SyliusAdminMediaBundle\Form\Type\ImageType;
use Symfony\Component\OptionsResolver\OptionsResolver;
final class PostImageType extends ImageType
{
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults(array(
'data_class' => PostImage::class,
));
}
public function getBlockPrefix(): string
{
return 'app_post_image';
}
}
- 然后在 services.yaml 中注册图像表单
app.form.type.post_image:
class: App\Form\Type\PostImageType
tags:
- { name: form.type }
arguments: [ '@aropixel_sylius_admin_media.image_crop.crop_ratio_manager', '%app.model.post_image.class%']
- 在经典的 sylius 应用程序中,您通常使用 liip 过滤器来生成,例如,在图像博客帖子前面的缩略图
liip_imagine:
resolvers:
default:
web_path:
web_root: "%kernel.project_dir%/public"
cache_prefix: "media/cache"
filter_sets:
home_news:
quality: 75
filters:
strip: ~
thumbnail:
size: [600, 400]
mode: outbound
allow_upscale: true
- 当管理员上传博客帖子的图像时,使用此插件,他可以选择一个定义的格式,以便在保存之前以正确的比例裁剪图像,这样图像就非常适合缩略图!以下是在您希望管理员使用 home_news liip 过滤器大小裁剪图像时插件配置
aropixel_sylius_admin_media:
entities_crops:
#first you have to define the image entity in which you want to use the crop system
App\Entity\Producer\ProducerImage:
# you use the the liip filter id and define a name that will be displayed for selecting this crop
home_news: "Home news"
您还可以添加默认裁剪格式,适用于所有图像
aropixel_sylius_admin_media:
entities_crops:
...
default_crops:
main: "Default"
就这样!您现在可以在管理界面中选择一个格式,并以特定的比例裁剪它,使其非常适合您的页面!
许可证
Aropixel 博客包采用 MIT 许可证