mugoweb/mugo_dam
包含DAM客户端的eZ Publish扩展。
Requires
This package is auto-updated.
Last update: 2024-09-11 13:35:34 UTC
README
mugo_dam代表Mugo数字资产管理器。它包含2部分
- Mugo DAM服务器
- 以及这个eZ Publish扩展(客户端集成以访问DAM服务器)
这个eZ Publish扩展包含一个新的图像数据类型。这个数据类型具有增强的图像上传界面,支持图像拖放。用户上传的图像不会以eZ Publish存储内容图像的常规方式存储;相反,图像存储在数字资产服务器上。数字资产服务器是一个独立的服务(与eZ Publish无关),支持以不同格式上传和提供图像(类似于eZ Publish的图像别名)。
安装
- 在site.ini中创建条目以启用扩展:
ActiveExtensions[]=mugo_dam
- 将mugo_dam/settings/mugo_dam.ini复制到settings/override/
- 自定义设置文件
- 清除缓存
- 创建新的autoload文件
- 将新的数据类型添加到内容类
##数据类型
array(
'standard' => array(
url => '/link/to/image.jpg',
alt => 'Image alt text',
),
'square' => array(
url => '/link/to/square_image.jpg',
alt => 'Image alt text for square image',
),
)
eZ Publish数据类型称为'dam_images'。它负责存储对图像服务器的引用--它不存储图像在本地上。数据类型将那些引用存储在一个关联数组中
数组键是比例标识符'标准'或'正方形'。因此,单个属性实例可以存储多个图像(这与eZ Publish标准图像数据类型不同)。不要将'比例'与图像别名混淆。因为每个比例都有一个用户上传的原始图像 - 对于每个比例图像,你可以有多个图像别名。这个关联数组被序列化并存储在数据库的'data_text'字段中。图像比例标识符在类定义中配置。每个比例标识符都有如'required'、'alt. text required'之类的选项。
##attribute_view_gui模板
- 在模板中,您可以使用attribute_view_gui来渲染图像。支持以下参数
- image_alias
image_ratio_identifier
- 如果您需要更复杂的解决方案来渲染img标签,请编写自己的视图模板。另一种选择是使用名为'image_url'的模板运算符。您必须在DAM图像属性上执行该运算符,并可以选择指定3个参数
- image_alias
- alias
协议 ('http', 'https', 'none', 'auto')
{def $image_path = $attribute|image_url( 's300x200', 'standard', 'none' )}
以下是一个示例
它将生成一个类似'//images.domain.com/path/to/image.jpg?alias=s300x200'的URL
##图像别名
##使用 'fromString' 方法导入数据 数据类型实现了 fromString(以及 toString)方法。字符串是 DB 字段 data_text 中内容的序列化形式。更多信息请参考“数据类型”标题下。fromString 方法可以处理远程图片,如果您指定了其 URL。
##PHP 中的有用函数
MugoDamFunctionCollection::uploadToDam( $imagePath, $fileName = null, $creationTime = null )
它将指定的 $imagePath(可选的 fileName 和 creationTime)上传到图像服务器。imagePath 可以是本地图像或远程图像,指定为 URL。
dam_imagesType::getImageUrlByAttribute( $contentObjectAttribute, $alias = null, $image_ratio_identifier = 'standard', $protocol = 'none' )
根据给定的 eZ 属性、别名、比率标识符和协议返回一个图像 URL。
##ezfind 和 mugo_dam 扩展包含一个处理类 'ezfSolrDocumentFieldDamImages',用于实现引用图像在 Solr 中的索引逻辑。
##uploadHandler eZ Publish 允许开发自定义上传处理程序。该处理程序用于各种编辑操作,例如在 exzmltext 属性中上传图像,或者通过 webdav 上传图像。mugo_dam 包含一个自定义上传处理程序,确保图像最终出现在图像服务器上。在设置文件中,您指定目标内容类(通常是 'image')和所需的属性标识符。
##设置 所有设置都有内联文档,请查看此处:https://github.com/mugoweb/mugo_dam/blob/master/settings/mugo_dam.ini
##数据迁移 扩展包含一个迁移脚本 "MugoMigrateImages",用于将图像从标准 ezp 属性移动到新的数据类型属性。该脚本编写为 'Mugo Task',您需要 mugo_queue 扩展来执行它。您需要编辑该脚本以指定旧属性到新属性的映射。
性能
eZ Publish 提供图像的方式有一些缺点,DAM 服务器可以解决这些问题
- eZ Publish 在集群设置中提供图像的速度较慢。它从共享文件系统(如 NFS)提供图像,并在集群数据库中为每个图像(和图像别名)保留引用。对于较大的站点,您很容易在该集群数据库中拥有数百万条记录。数字资产服务器在此处提高了性能
- 它直接从本地磁盘提供图像
- 它是一个专用服务,可以在专用硬件上运行
- 它不需要数据库(用于保留引用)
- 图像可以由不同的子域提供,这允许增加客户端(浏览器)加载页面的速度
- 具有专用服务可以卸载 eZ Publish 的图像提供
-
有可能达到一些文件系统限制(如 32000 个子文件夹限制),这会破坏 eZ Publish 中的图像上传功能。DAM 服务器通过将图像放入日期文件夹(年/月)来避免这些文件系统限制。
-
Mugo DAM 允许多个 eZ Publish 实例轻松交叉访问图像存储库。这在将内容存档到另一个 eZ Publish 实例或希望在预发布实例和开发实例之间共享图像存储库时非常有用。
-
使用 DAM 服务器,您可以管理多个图像存储库,并定义对其他存储库的回退查找。
-
eZ Publish 不区分上传的图像和动态创建的图像别名。这使得系统更难维护。DAM 服务器在专用 FS 目录中存储图像别名。
术语表
别名 一个关键字,表示如何将上传的图像转换为特定大小、比例和其他图像转换的规则
图像比率标识符 每个 eZAttribute 实例可以存储用户上传的多个图像。每个上传的图像都存储在图像比率标识符的上下文中
待办事项
- 审查类选项,如最大文件大小等