aquy/yii2-gallery-manager

yii 的扩展,允许管理图片画廊

安装数: 1,479

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 61

类型:yii2-extension

0.1.7 2021-12-27 09:27 UTC

This package is auto-updated.

Last update: 2024-09-27 15:07:58 UTC


README

源自 https://github.com/zxbodya/yii2-gallery-manager

功能特性

  1. AJAX 图片上传
  2. 可选为每张图片添加名称和描述
  3. 可以在画廊中排列图片
  4. 可以为每张图片生成具有不同配置的多个版本
  5. 拖放

依赖

  1. Yii2
  2. Twitter Bootstrap 资产(版本 3)
  3. Imagine 库
  4. JQuery UI(包含在 Yii 中)

安装

安装此扩展的最佳方式是通过 Composer

运行以下命令之一

php composer.phar require --prefer-dist aquy/yii2-gallery-manager "*"

或将以下内容添加到您的 composer.json 文件的 require 部分:

"aquy/yii2-gallery-manager": "*"

使用

添加迁移以创建图像表

class m150318_154933_gallery_ext
    extends aquy\gallery\migrations\m140930_003227_gallery_manager
{

}

或者更好 - 将迁移复制到您的应用程序中。

将 GalleryBehavior 添加到您的模型中,并进行配置,创建上传文件的文件夹。

public function behaviors()
{
    return [
         'galleryBehavior' => [
             'class' => GalleryBehavior::className(),
             'type' => 'product',
             'directory' => Yii::getAlias('@webroot') . '/images/product/gallery',
             'url' => Yii::getAlias('@web') . '/images/product/gallery',
         ]
    ];
}

在您的应用程序的控制器中添加 GalleryManagerAction。在此步骤中,您还可以为此操作添加一些安全检查。

public function actions()
{
    return [
       'galleryApi' => [
           'class' => GalleryManagerAction::className(),
           // mappings between type names and model classes (should be the same as in behaviour)
           'types' => [
               'product' => Product::className()
           ]
       ],
    ];
}

在您的应用程序的某个位置添加 ImageAttachmentWidget,例如在编辑界面。

if ($model->isNewRecord) {
    echo 'Can not upload images for new record';
} else {
    echo GalleryManager::widget(
        [
            'model' => $model,
            'behaviorName' => 'galleryBehavior',
            'apiRoute' => 'product/galleryApi',
            'async' => false
        ]
    );
}

完成!

现在,您可以像以下这样使用画廊中的上传图片

foreach($model->getBehavior('galleryBehavior')->getImages() as $image) {
    echo Html::img($image->getUrl());
}

$image = $model->getBehavior('galleryBehavior')->getImage()
echo Html::img($image->getUrl());

选项

为画廊图片使用非默认表名(默认为 {{%gallery_image}}

  1. 添加创建所需表的迁移
  2. 更改行为配置中的 tableName 属性