icybee/module-images

管理Icybee CMS用户上传的图片。

安装: 408

依赖项: 2

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:icanboogie-module

3.0.x-dev 2017-03-06 00:21 UTC

This package is auto-updated.

Last update: 2024-09-20 03:03:27 UTC


README

Packagist Build Status HHVM Code Quality Code Coverage Downloads

图像模块(images)管理CMS Icybee 用户上传的图片。

渲染图像记录

图像活动记录以字符串形式渲染

<?php

$image = $app->models['images']->one;

echo $image;

将生成类似以下的内容

<img src="/repository/files/image/140-porte-verre-blanc.jpeg" alt="Porte verre" width="484" height="518" data-nid="140" />

缩略图

使用 icybee/module-thumbnailer 包从图片创建缩略图。使用 thumbnail() 方法获取一个表示图像缩略图的 Thumbnail 实例

<?php

$thumbnail = $image->thumbnail([ 'w' => 64, 'h' => 64 ]);
# or
$thumbnail = $image->thumbnail('w:64;h:64');

echo $thumbnail->url; // /api/images/123/64x64
echo $thumbnail;      // <img src="/api/images/123/64x64" …

缩略图版本

当模块安装时,创建以下缩略图版本

  • $icon:表示图像或分配给记录的图像。它是一个24×24的图像,通常用于 manage 视图(管理员中模块的索引)。

  • $icon-m:一个更大的图标,通常由 AdjustImage 元素用于在网格中显示可用的图像。

  • $popimage:表示 PopImage 元素中的图像预览。

  • $popover:表示当鼠标悬停在 $icon 图像上时出现的弹出预览图像。

  • $gallery:表示在相册中显示的图像。

使用版本创建缩略图非常简单

<?php

$thumbnail = $image->thumbnail('$popover');

echo $thumbnbail->url; // /api/images/thumbnails/$popover
echo $thumbnail;       // <img src="/api/images/thumbnails/$popover" …

将图像分配给内容记录

该模块提供将图像分配给内容记录的能力,例如新闻或文章,以说明它们。使用 Thumbnailer 模块通过流畅的API提供缩略图。

<?php

echo $app->models['images']->one->thumbnail;
echo $app->models['images']->one->thumbnail('news-list');

echo $app->models['news']->one->image->thumbnail('news-list');
# or
echo $app->models['news']->one->image->thumbnail(':list');

echo $app->models['news']->one->image->thumbnail('news-view');
# or
echo $app->models['news']->one->image->thumbnail;

配置分配

在所有扩展 Contents 模块的模块中注入了一个启用关联的选项。当选项启用时,可以指定以下内容

  • 是否需要分配。
  • 如果不需要关联,则默认使用的图像。
  • 注入图像控件的标题和描述。

这些设置存储在全局注册表中

  • images.inject.<flat_module_id>:(bool|null) 如果启用则为 true,否则为未定义。
  • images.inject.<flat_module_id>.required:(bool) 如果关联是必需的则为 true,否则为 false
  • images.inject.<flat_module_id>.default:(int) 当没有关联到记录的图像时使用的默认图像的标识符。这仅适用于不需要关联的情况。
  • images.inject.<flat_module_id>.title:(string) 注入到记录编辑表单中的图像控件的标签。
  • images.inject.<flat_module_id>.description:(string) 注入到记录编辑表单中的图像控件的描述。

额外的控件指定了用于记录不同视图的缩略图选项,通常是 homelistview。缩略图版本名称根据以下模式创建:<module>-<view>,其中 <module> 是模块的正常化标识符,<view> 是视图的正常化标识符。

编辑控件

目标模块的编辑块被修改以提供允许用户选择与正在编辑的记录关联的图像的控件。

所选图像的标识符记录在记录的 image_id 元属性中。

获取与记录关联的图片

与记录关联的图片通过 image 魔法属性获取

<?php

$app->models['articles']->one->image;

注意,获取的不是 Image 实例,而是 NodeRelation 实例。因为所有调用都会被转发,所以 NodeRelation 实例可以像 Image 实例一样使用,尽管 set 会抛出 PropertyNotWritable 异常。

NodeRelation 实例使得使用缩略图变得可能。例如,可以使用 ":list" 而不是 "article-list" 来获取用于文章 列表 视图的缩略图

<?php 

$app->models['articles']->one->image->thumbnail(':list');

魔法属性 thumbnail 返回 视图 缩略图

<?php 

$app->models['articles']->one->image->thumbnail(':view');
// or
$app->models['articles']->one->image->thumbnail;

缩略图装饰器

可以使用 ThumbnailDecorator 实例轻松地对组件进行缩略图装饰

<?php

use Icybee\Modules\Images\ThumbnailDecorator;

echo new ThumbnailDecorator($record->title, $record->image);

前面的代码将生成类似的内容

<a href="/repository/files/image/140-porte-verre-blanc.jpeg" rel="lightbox[thumbnail-decorator]"><img width="24" height="24" data-popover-image="/api/images/140/thumbnails/$popover" class="thumbnail thumbnail--icon" alt="" src="/api/images/140/thumbnails/$icon"></a> My record title

事件钩子

以下事件钩子被使用

  • Icybee\Modules\Views\View::alter_records:如果有的话,将分配的图片包含到记录中。

需求

该包需要 PHP 5.5 或更高版本。

安装

安装此包的推荐方式是通过 Composer。创建一个 composer.json 文件并运行 php composer.phar install 命令来安装

$ composer require icybee/module-images

注意:此模块是 Icybee 所需模块之一。

克隆仓库

该包可在 GitHub 上找到,其仓库可以通过以下命令行克隆

$ git clone git://github.com/Icybee/module-images.git images

测试

测试套件通过 make test 命令运行。Composer 会自动安装以及运行套件所需的所有依赖。可以使用 make clean 命令来清理包目录。

该包通过 Travis CI 持续进行测试。

Build Status Code Coverage

文档

该包作为 Icybee CMS 文档 的一部分进行文档编制。可以使用 make doc 命令生成包及其依赖的文档。文档使用 ApiGendocs 目录中生成。可以使用 make clean 命令来清理包目录。

许可

该包根据新的 BSD 许可证授权 - 详细内容请参阅 LICENSE 文件。