laker-ls/yii2-pencil

模块创建和查看交互式文本和图像。

安装: 61

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

2.2.4 2020-04-28 13:17 UTC

This package is auto-updated.

Last update: 2024-09-29 05:42:25 UTC


README

yii2-pencil

Stable Version Unstable Version License Total Downloads

注意:要运行此程序需要 developeruz/yii2-db-rbac 和现有的角色。

当用户作为管理员登录时,通过模态窗口编辑显示的文本。非管理员只能看到普通文本,而管理员可以通过点击文本来打开一个包含单行文本区域(textarea)的模态窗口,在此字段中的换行符会被转换为 <br />,所有文本样式都应该通过 CSS 设置。
你可以设置在哪个标签中输出文本,并传递给它类和其他属性。管理员的文本视图不同,并且可以添加仅对管理员可见的属性。

当用户作为管理员登录时,通过模态窗口编辑显示的图像。所有用户都可以看到图像,但管理员会额外看到一个编辑图像的按钮。

安装

推荐使用 composer 安装此扩展。请检查 composer.json 以了解此扩展的需求和依赖项。

要安装,请运行

$ php composer.phar require laker-ls/yii2-pencil "~2.2.5"

或者将以下行添加到 composer.jsonrequire 部分

"laker-ls/yii2-pencil": "~2.2.5"

查看 变更日志 以获取关于版本的详细信息。

连接

在控制台中执行迁移

yii migrate --migrationPath=@lakerLS/pencil/migrations

在应用程序配置中连接模块,并使用 accessRoles 参数指定允许编辑的角色。使用 imagePath 参数传递存储图像的文件夹路径(原始和缩略图)

'modules' => [
    'pencil' => [
        'class' => '\lakerLS\pencil\Module',
        'params' => [
            'accessRoles' => ['admin'],
            'imagePath' => [
                'full' => 'upload/image-gallery/full',
                'mini' => 'upload/image-gallery/mini',
            ],
        ],
    ],
]

在调用“铅笔”动作的控制器中,必须传递当前类别的 id。以下代码仅作为示例,实际传递的参数可能会有所不同,但 categoryId 属性的名称不应更改。

    public $categoryId;
    
    public function actionIndex($category)
    {
        // Где $category объект текущей категории.
        $this->categoryId = $category->id;
        
        // Если страница статическая, то можем задать `id` явно, но данный способ не является хорошей практикой.
        $this->categoryId = 1;
        
        return $this->render('view');
    }

扩展已准备就绪。

使用文本小部件

use lakerLS\pencil\widgets\PencilText;
           
<?= PencilText::widget(['id' => 'example-id']) ?>

在布局中使用小部件

use lakerLS\pencil\widgets\PencilText;
           
<?= PencilText::widget(['id' => 'example-id', 'nonUnique' => 'this-name-layout']) ?>

使用额外的参数

use lakerLS\pencil\widgets\Pencil;
           
<?= PencilText::widget(['id' => 'example-id', 'tag' => 'h2', 'options' => ['class' => 'my-class']]) ?>

id(字符串)- 必要参数,出于方便,请使用字符串指定 id。在单页面上需要唯一的名称。在其他页面上重复使用名称不会引起冲突。

tag(字符串)- 包含内容标签的名称。

options(数组)- 对所有用户可见的标签参数。

nonUnique(字符串)- 可选参数。为了在多个页面上显示相同的文本,需要传递一个字符串,该字符串将用作 id 的替代品。

optionsAdmin(数组)- 只有管理员可见的标签参数。使用类和样式设置文本样式,使其易于理解(可编辑)。默认为蓝色下划线。

textIsEmpty(字符串)- 当内容为空或不存在时,管理员看到的文本,以便编辑,因为文本是唯一可以调用管理员模态窗口的方式。

使用图像小部件

将小部件放置在没有任何其他内容的标签内,因为当更新图像时,所有标签内容都将被替换。

beginend 之间传递每个单独图像的模板。在这个模板中,必须有一个空的 <img> 标签,该标签将被实际图像替换。

要在布局中使用小部件,必须通过 layout 参数传递布局的名称。

truefalse 参数传递给 small,可以选择编辑按钮的样式(仅管理员可见)。

重要:使用 true 作为 small 参数的值时,必须确保包含图像的父元素具有样式 position: relative

<?php
use lakerLS\pencil\widgets\PencilImage;
?>
 <div class="example-container" style="position: relative">
     <?php 
     $pencilImg = PencilImage::begin([
        'group' => 'our-characteristics-img-main', 
        'small' => true, 
        'thumbnail' => [
            'width' => 634, 
            'height' => 466,
            'quality' => 50,
        ]
     ]);
     ?>
     
         <a href="<?= $pencilImg->urlFull() ?>">
             <img src="<?= $pencilImg->urlMini() ?>" alt="<?= $pencilImg->alt() ?>">
         </a>
         
     <?php PencilImage::end() ?>
 </div>

group(字符串)- 必须传递的参数,用于创建图像专辑。可以使用西里尔字母。

thumbnail(数组)- 必须传递的参数,其中包含缩略图的宽度和高度。可选参数是 quality。缩略图的质量设置为1到100之间的值,默认为50。

small(布尔值)- 可选参数。默认为 false
如果值为 false,则显示大按钮用于编辑。适用于创建/编辑专辑。
如果值为 true,按钮具有小尺寸和绝对位置。不影响布局,显示在右下角。

nonUnique(字符串)- 可选参数。为了在多个页面上显示相同的图像,需要传递一个字符串,该字符串将用作 id 的替代。

删除未使用的图像

通过数据库删除记录时,图像将保留。为此,实现了删除未使用图像的功能。在其他情况下,不需要使用此控制器。

config/console.php 中,需要以以下方式连接该模块

'modules'=>[
        'pencil' => [
            'class' => '\lakerLS\pencil\Module',
            'params' => [
                'imagePath' => [
                    'full' => 'upload/image-gallery/full', // Ваш путь к оригинальному изображению.
                    'mini' => 'upload/image-gallery/mini', // Ваш путь к миниатюре изображения.
                ],
            ],
            'controllerNamespace' => 'lakerLS\pencil\commands',
        ],
    ],

在控制台中,从项目根目录执行以下命令

yii pencil/cron/delete-image

许可证

yii2-pencil 根据 BSD-3-Clause 许可证发布。可以在 LICENSE.md 文件中查阅。