Plone 的 AttachmentField/Widget
项目描述
##############
AttachmentField
###############
管理文件附件的 Archetype 字段,用于代替 FileField。
AttachmentField 允许您在基于 Archetypes 的内容类型中索引和预览各种类型的文档,例如 MSOffice(Word、Excel、Powerpoint)、PDF 等。
该产品取代了 Ingeniweb 的前 ZAttachmentAttribute(参见 ingeniweb.sourceforge.net)。
使用前请务必阅读以下警告。
警告
#######
* 由于 AttachmentField 的大量滥用,请注意它本身不会添加任何新的内容类型。AttachmentField 是 Plone/Archetypes 内容类型开发人员的产品。
* *强烈*不建议在配置为使用 FileSystemStorage 时卸载 AttachmentField。如果是这样,所有使用 AttachmentField 的内容都将丢失(即使您稍后重新安装它)。如果要升级,只需重新安装即可,无需卸载。
如果需要卸载 AttachmentField,首先将其配置为使用 AttributeStorage(在 ZODB 中)(默认选择)。在这种情况下,您可以在不丢失内容的情况下卸载 AttachmentField(您需要重新安装 AttachmentField 版本才能再次访问它们)
依赖项
############
Python 包
======= ========
* python-libxml2
* python-libxslt
您需要这些包来支持 OpenOffice 文档。
这些 Python 扩展在大多数 Linux
发行版中都以包的形式提供。Windows 用户可以从 http://users.skynet.be/sbi/libxml-python/Zope/Plone ========== * Plone 2.1.x * Archetypes 1.3找到适合
Python 安装程序的 libxml2 + libxslt .7+ * FileSystemStorage(仅当您想使用 FSS 时)* Products.OpenXml(可选:用于 MS Office 2007 文件支持)应用程序/实用程序 (Unix) ================ ============= * xpdf >= 3.0 * wvware >= 1.0 * xlhtml * ppthtml * unrtf >= 0.19应用程序/实用程序 (win32) ============ ==================以上列出的所有二进制插件都提供“包括电池”用于
Windows,
AF 对 ZAA 的改进/回归是:
##################################### ############
* AF 使用 Archetypes 的现场设计工作。那么,它
依赖于原型。
* 不再需要 ZAAPlugins。所有 AF 插件都
直接集成到 AF 产品中。
* AF 提供方便的插件结构,让您
只需 10 行代码即可创建插件。这样做,我们失去了一点
我们从来不需要的灵活性;)但是仍然
可以覆盖 AttachmentHandler 类以提供更大
的灵活性(AttachmentHandler 是
AbstractAttachment 的新名称)。
* 插件现在是一个提供索引和预览和图标
服务的单例。不再有 ZAA 中的多态性(在 ZAA 中,每个附件都
存储了一个插件类的实例,事实证明这
对于实际需要来说太复杂了)。
* 前一点的副作用是您可以将无效
文件上传到您的服务器并在您上传它们之后开发(或配置)新插件
。AF 将动态检测新的内容类型
,并神奇地提供预览和索引支持。使用该
功能,客户可以在此过程的早期开始填充网站
!
* AF 还不支持 MSWord 预览中的图像(它会!)
* AF 不会在 ZODB 中存储附件预览或可搜索文本;
但是它们被缓存了,并且通常在
每个 Zope 程序运行时只计算一次。这可能在将来是可配置的
(即,您可以选择最佳速度或更少的磁盘使用量)。
在 AT 内容类型源中使用示例
######################################### #
我们假设你真的了解 Archetypes 来理解这个简单的例子...
::
from Products.AttachmentField.AttachmentField import AttachmentField
from Products.AttachmentField.AttachmentWidget import AttachmentWidget
...
my_schema = Schema((
...
AttachmentField('someFile'
searchable =真,
primary=True,
widget=AttachmentWidget(label="White paper",
description="Your white paper for this topic",
show_content_type=True)
)
...
))
...
测试
#######
单元测试
= =========
在您的实例上安装 PloneTestCase_
使用 testrunner -qad 。
Configlet
=========
Plone 管理员可以使用专用的 configlet 测试 AttachmentField。
致谢
#######
AttachmentField 是 Ingeniweb_ 产品。
AttachmentField 嵌入了 Win32 版本的文件转换
实用程序。非常感谢以下
产品的作者和维护者:
* wvWare:http ://wvware.sourceforge.net/
* xpdf(Glyph & Cog, LLC. / Foolabs):http://www.foolabs.com/xpdf/download .html
* xlhtml 和 ppthtml (Wrensoft): http://www.wrensoft.com/zoom/plugins.html
* unrtf: http://gnuwin32.sourceforge.net/packages/unrtf.htm
这些工具中的一些需要特殊的您可以在
unrtf 目录中找到 cygwin1.dll 的版本。
许可证
#######
AttachmentField 受 GPL v2 许可证条款的保护。有关详细信息,请参阅
许可证文件。
下载
#########
您可以从http://plone.org/products/attachmentfield SVN 存储库中找到更新的稳定版本的 AttachmentField 和指向
相关信息(跟踪器、文档...)的指针#############关注最新(不稳定)版本或参与AttachmentField 维护:https ://svn.plone.org/svn/collective/AttachmentField反馈########在 http://sourceforge 报告错误。 net/projects/ingeniweb(单击“错误”链接)通过 support@ingeniweb.com 寻求支持----------- .. _Ingeniweb: http://www.ingeniweb.com .. _PloneTestCase: https://svn.plone.org/svn/collective/PloneTestCase/ [TODO]
* 文档中的依赖项(原型、外部程序...)
* MSWord 图像支持
* 支持 mp3、图像的附加预览...
* 添加 MD5 以检查文件是否损坏
1.4.6 - 2012-09-10
= =================
* PyPI 发布
[aclark]
1.4.5 - 2008-12-11
==================
* 添加了 OpenXml 支持(需要 Products.OpenXml)
[glenfant]
1.4.4 - 2008-05-21
==================
* 修复 PortalTransformsAttachment 中的 getTransforms 方法,该方法
没有'在某些情况下由于错误的缩进和尝试而找不到文本/纯文本转换
:除了包括两个不同的
情况。(maikroeder) 2008-05-07
1.4.3 - 2007-08-27
==================
* 修复 Zope 外部编辑器 0.9.x 的错误:文件名被替换为 id。
此错误在 ZEE 客户端中,不会很快修复 (encolpe)
1.4.2 - 2007-08-20
==================
* 修复单元测试 (glenfant)
* 清理重复的 win32 辅助应用程序 (glenfant)) * 针对 Wrensoft http://www.wrensoft.com/zoom/plugins.html (glenfant)
的更新/安全版本更改了 win32 ppthtml 和 xlhtml * 升级了 win32 xpdf (3.0.2 ) 来自 Foolabs http://www.wrensoft.com/zoom/plugins.html (glenfant) * 将 Excel 和 Powerpoint 附件的编码固定为 UTF-8,因为 Xlhtml 始终返回 UTF-8。(zegor) 1.4.1 - 2007-06-04 ==================
* 使用规范日志 API(参见 http://docs.python.org/lib/node406.html)(glenfant)
*
警告引发了真正的异常并阻止在 Windows 下索引/预览 Word 2003 文档。
(glenfant)
* 图标现在仅在第一次调用期间计算 (zegor)
* 迁移到 FileSystemStorage 现在迁移 PloneArticle 附件 (zegor)
1.4 - 2007-04-19
================ ==
* 删除死代码和危险代码(_process_input、mimetypes 等)
* 增强 AF 小部件(删除无用的括号)
1.3.13 - 2007-03-14
=============== ====
* flexstorage (zegor) 中 Zope 2.7 的固定保存点参数
* 在 preview_popup (zegor) 中左对齐,添加边距和关闭按钮
* 优化 (zegor)
* PreviewAvailable 和 isIndexable 方法使用布尔值而不是测试“巨大”字符串
* 现在仅在第一次调用期间计算预览和可索引属性
* 当内容不可索引时,每次调用的固定 ZODB 事务
1.3.12 - 2007- 02-13
====================
* FlexStorage:在存储迁移期间执行子提交
* 重新引入 _process_input(图标/mimetype 问题的临时修复)
* 删除字段外部编辑器
1.3.11 - 2006-10-26
=====================
* 修复在 Windows 上破坏 configlet 生成的错误。
* 添加 PSAttachment(基于 pstotext)(感谢 ajung)
* 使用 python 日志记录。需要 Zope 2.8+
1.3.10 - 2006-09-19
=====================
* 修复安全漏洞(内联文本/*)
* 修复 SF 错误 #1542861
* 更新 setHeader内容...
1.3.9 - 2006-07-31
==================
* 修复损坏的安装方法(感谢 adf)
1.3.8 - 2006-07-25
==================
* 引入弹性存储,允许附件字段存储其内容
以存储在 ZODB 或 FSS 中。
1.3.7 - 2006-07-10
==================
* 修复 #1505660 (sourceforge): OOConverter (2006-06-14 BM) 中的导入语句
* 添加内联(或附件)查看
1.3.6 - 2006-06-08
==================
* 忽略 MSWord 中的图像。将选项“-1”添加到 wvWare.exe (2006-06-08 MR)
* 将 Excel 的最大列数和行数限制为 100。可在 global_symbols.py (2006-06-08 MR)
1.3.5 - 2006-05-中配置14
==================
* 使用全局外部编辑器链接和 webdav 锁定(是的)
* 删除外部编辑器链接(不能在字段级别工作)
* 修复 mime 类型分类(MS Excel 和 Powerpoint 作为 MS Word 文档处理)
1.3.4 - 2006-05-2
=================
* 添加与 CompoundField 产品的基本兼容性 (2006-03-15 ED)
* 修复运行单元测试时缺少权限 (2006-03-15 ED)
* 添加 Photoshop 附件插件
1.3.3 - 2006-01-24
================= =
* 修复了 Plone 2.1.2 [1.3.1 - 20060113]的附件识别问题
* OpenOffice2 文档支持
* 修复小部件:如果字段为空,则仅显示单个文件输入。还修复了
“首次上传不删除”(2005-12-15 BM)
[v1.3 - 20051102]
* 首次上传不删除、替换和未更改复选框。(2005-10-31 MR)
* 更好的日志以防丢失 libxml2 或 libxslt (2005-09-06 MR)
* 添加了 Flash 附件插件(感谢 Harlow Pinson)
* 修复 AT 更新模式方法的错误 - ED
[v1.3RC5 - 20050832]
* 删除了 AttachementService;改用 plone 控制面板中的 configlet
*
修复将 Zope 挂在 100% CPU 的无限循环
[v1.3RC4 - 20050729] * 使用 FileField 代替 Field.FileField
修复 AttachmentField 下载方法中的错误[v1.3RC3 - 20050524] * 在 Win32 下再次正确支持 MSWord * 修复了安装程序以卸载 configlet *修复了 PortalTransformsAttachment 的 unicode 错误提供了一个基于正则表达式的 HTML 剥离器,尤其适用于 wvWare 输出* 添加了 RTF 附件支持* 使用 Mimetypesregistry 作为索引 RTF 内容的后备* OpenOffice 文档现在被原生索引[v1.3RC2 - 20050325] * 在 win32 下使用 PortalTransofrms 的小修复* 使用用于生成 configlet 示例页面的无类型内容类型[v1.3RC1 - 20050322]
* 修复了未知内容类型的图标(询问标记而不是 RTF 图标)
* 添加了一个“PortalTransformAttachment”类,现在可以将 PortalTransforms
用作附件服务。哇!例如,使用 CMFOODocument 进行测试。
* 感谢 Zegor
[v1.2 - 20050311] ,增加了对压缩文件(zip、rar、...)的支持
* 添加 AttachmentWidget
* 添加了视频文件支持
[v1.1 - 20050225]
* 改进了临时文件管理。现在所有转换器输出都应该
写在一个临时目录中。
[v1.0 - 20050118]
* callConverter() 类方法中的代码页翻译
* Archetypes 的自动 SearchableText 支持(get() 中的 contentType 参数,
和“可搜索”字段参数支持;例如。
如果“可搜索”为假,我们将禁用自动索引)。
* 创建了一个 AttachmentService 来测试和监控东西。
* 为 Plone 创建了一个 AttachmentTool 和一个用于监控内容的 configlet。
[v1.0RC - 20041229]
* 使 AttachmentField 的 isEmpty 方法更安全 2004/12/29 MR
* 修复了 Windows 下的路径问题 2004/12/29 MR
* 修复了关闭打开文件的问题 2004/12/29 MR
* First版本 !;)
AttachmentField
###############
管理文件附件的 Archetype 字段,用于代替 FileField。
AttachmentField 允许您在基于 Archetypes 的内容类型中索引和预览各种类型的文档,例如 MSOffice(Word、Excel、Powerpoint)、PDF 等。
该产品取代了 Ingeniweb 的前 ZAttachmentAttribute(参见 ingeniweb.sourceforge.net)。
使用前请务必阅读以下警告。
警告
#######
* 由于 AttachmentField 的大量滥用,请注意它本身不会添加任何新的内容类型。AttachmentField 是 Plone/Archetypes 内容类型开发人员的产品。
* *强烈*不建议在配置为使用 FileSystemStorage 时卸载 AttachmentField。如果是这样,所有使用 AttachmentField 的内容都将丢失(即使您稍后重新安装它)。如果要升级,只需重新安装即可,无需卸载。
如果需要卸载 AttachmentField,首先将其配置为使用 AttributeStorage(在 ZODB 中)(默认选择)。在这种情况下,您可以在不丢失内容的情况下卸载 AttachmentField(您需要重新安装 AttachmentField 版本才能再次访问它们)
依赖项
############
Python 包
======= ========
* python-libxml2
* python-libxslt
您需要这些包来支持 OpenOffice 文档。
这些 Python 扩展在大多数 Linux
发行版中都以包的形式提供。Windows 用户可以从 http://users.skynet.be/sbi/libxml-python/Zope/Plone ========== * Plone 2.1.x * Archetypes 1.3找到适合
Python 安装程序的 libxml2 + libxslt .7+ * FileSystemStorage(仅当您想使用 FSS 时)* Products.OpenXml(可选:用于 MS Office 2007 文件支持)应用程序/实用程序 (Unix) ================ ============= * xpdf >= 3.0 * wvware >= 1.0 * xlhtml * ppthtml * unrtf >= 0.19应用程序/实用程序 (win32) ============ ==================以上列出的所有二进制插件都提供“包括电池”用于
Windows,
AF 对 ZAA 的改进/回归是:
##################################### ############
* AF 使用 Archetypes 的现场设计工作。那么,它
依赖于原型。
* 不再需要 ZAAPlugins。所有 AF 插件都
直接集成到 AF 产品中。
* AF 提供方便的插件结构,让您
只需 10 行代码即可创建插件。这样做,我们失去了一点
我们从来不需要的灵活性;)但是仍然
可以覆盖 AttachmentHandler 类以提供更大
的灵活性(AttachmentHandler 是
AbstractAttachment 的新名称)。
* 插件现在是一个提供索引和预览和图标
服务的单例。不再有 ZAA 中的多态性(在 ZAA 中,每个附件都
存储了一个插件类的实例,事实证明这
对于实际需要来说太复杂了)。
* 前一点的副作用是您可以将无效
文件上传到您的服务器并在您上传它们之后开发(或配置)新插件
。AF 将动态检测新的内容类型
,并神奇地提供预览和索引支持。使用该
功能,客户可以在此过程的早期开始填充网站
!
* AF 还不支持 MSWord 预览中的图像(它会!)
* AF 不会在 ZODB 中存储附件预览或可搜索文本;
但是它们被缓存了,并且通常在
每个 Zope 程序运行时只计算一次。这可能在将来是可配置的
(即,您可以选择最佳速度或更少的磁盘使用量)。
在 AT 内容类型源中使用示例
######################################### #
我们假设你真的了解 Archetypes 来理解这个简单的例子...
::
from Products.AttachmentField.AttachmentField import AttachmentField
from Products.AttachmentField.AttachmentWidget import AttachmentWidget
...
my_schema = Schema((
...
AttachmentField('someFile'
searchable =真,
primary=True,
widget=AttachmentWidget(label="White paper",
description="Your white paper for this topic",
show_content_type=True)
)
...
))
...
测试
#######
单元测试
= =========
在您的实例上安装 PloneTestCase_
使用 testrunner -qad 。
Configlet
=========
Plone 管理员可以使用专用的 configlet 测试 AttachmentField。
致谢
#######
AttachmentField 是 Ingeniweb_ 产品。
AttachmentField 嵌入了 Win32 版本的文件转换
实用程序。非常感谢以下
产品的作者和维护者:
* wvWare:http ://wvware.sourceforge.net/
* xpdf(Glyph & Cog, LLC. / Foolabs):http://www.foolabs.com/xpdf/download .html
* xlhtml 和 ppthtml (Wrensoft): http://www.wrensoft.com/zoom/plugins.html
* unrtf: http://gnuwin32.sourceforge.net/packages/unrtf.htm
这些工具中的一些需要特殊的您可以在
unrtf 目录中找到 cygwin1.dll 的版本。
许可证
#######
AttachmentField 受 GPL v2 许可证条款的保护。有关详细信息,请参阅
许可证文件。
下载
#########
您可以从http://plone.org/products/attachmentfield SVN 存储库中找到更新的稳定版本的 AttachmentField 和指向
相关信息(跟踪器、文档...)的指针#############关注最新(不稳定)版本或参与AttachmentField 维护:https ://svn.plone.org/svn/collective/AttachmentField反馈########在 http://sourceforge 报告错误。 net/projects/ingeniweb(单击“错误”链接)通过 support@ingeniweb.com 寻求支持----------- .. _Ingeniweb: http://www.ingeniweb.com .. _PloneTestCase: https://svn.plone.org/svn/collective/PloneTestCase/ [TODO]
* 文档中的依赖项(原型、外部程序...)
* MSWord 图像支持
* 支持 mp3、图像的附加预览...
* 添加 MD5 以检查文件是否损坏
1.4.6 - 2012-09-10
= =================
* PyPI 发布
[aclark]
1.4.5 - 2008-12-11
==================
* 添加了 OpenXml 支持(需要 Products.OpenXml)
[glenfant]
1.4.4 - 2008-05-21
==================
* 修复 PortalTransformsAttachment 中的 getTransforms 方法,该方法
没有'在某些情况下由于错误的缩进和尝试而找不到文本/纯文本转换
:除了包括两个不同的
情况。(maikroeder) 2008-05-07
1.4.3 - 2007-08-27
==================
* 修复 Zope 外部编辑器 0.9.x 的错误:文件名被替换为 id。
此错误在 ZEE 客户端中,不会很快修复 (encolpe)
1.4.2 - 2007-08-20
==================
* 修复单元测试 (glenfant)
* 清理重复的 win32 辅助应用程序 (glenfant)) * 针对 Wrensoft http://www.wrensoft.com/zoom/plugins.html (glenfant)
的更新/安全版本更改了 win32 ppthtml 和 xlhtml * 升级了 win32 xpdf (3.0.2 ) 来自 Foolabs http://www.wrensoft.com/zoom/plugins.html (glenfant) * 将 Excel 和 Powerpoint 附件的编码固定为 UTF-8,因为 Xlhtml 始终返回 UTF-8。(zegor) 1.4.1 - 2007-06-04 ==================
* 使用规范日志 API(参见 http://docs.python.org/lib/node406.html)(glenfant)
*
警告引发了真正的异常并阻止在 Windows 下索引/预览 Word 2003 文档。
(glenfant)
* 图标现在仅在第一次调用期间计算 (zegor)
* 迁移到 FileSystemStorage 现在迁移 PloneArticle 附件 (zegor)
1.4 - 2007-04-19
================ ==
* 删除死代码和危险代码(_process_input、mimetypes 等)
* 增强 AF 小部件(删除无用的括号)
1.3.13 - 2007-03-14
=============== ====
* flexstorage (zegor) 中 Zope 2.7 的固定保存点参数
* 在 preview_popup (zegor) 中左对齐,添加边距和关闭按钮
* 优化 (zegor)
* PreviewAvailable 和 isIndexable 方法使用布尔值而不是测试“巨大”字符串
* 现在仅在第一次调用期间计算预览和可索引属性
* 当内容不可索引时,每次调用的固定 ZODB 事务
1.3.12 - 2007- 02-13
====================
* FlexStorage:在存储迁移期间执行子提交
* 重新引入 _process_input(图标/mimetype 问题的临时修复)
* 删除字段外部编辑器
1.3.11 - 2006-10-26
=====================
* 修复在 Windows 上破坏 configlet 生成的错误。
* 添加 PSAttachment(基于 pstotext)(感谢 ajung)
* 使用 python 日志记录。需要 Zope 2.8+
1.3.10 - 2006-09-19
=====================
* 修复安全漏洞(内联文本/*)
* 修复 SF 错误 #1542861
* 更新 setHeader内容...
1.3.9 - 2006-07-31
==================
* 修复损坏的安装方法(感谢 adf)
1.3.8 - 2006-07-25
==================
* 引入弹性存储,允许附件字段存储其内容
以存储在 ZODB 或 FSS 中。
1.3.7 - 2006-07-10
==================
* 修复 #1505660 (sourceforge): OOConverter (2006-06-14 BM) 中的导入语句
* 添加内联(或附件)查看
1.3.6 - 2006-06-08
==================
* 忽略 MSWord 中的图像。将选项“-1”添加到 wvWare.exe (2006-06-08 MR)
* 将 Excel 的最大列数和行数限制为 100。可在 global_symbols.py (2006-06-08 MR)
1.3.5 - 2006-05-中配置14
==================
* 使用全局外部编辑器链接和 webdav 锁定(是的)
* 删除外部编辑器链接(不能在字段级别工作)
* 修复 mime 类型分类(MS Excel 和 Powerpoint 作为 MS Word 文档处理)
1.3.4 - 2006-05-2
=================
* 添加与 CompoundField 产品的基本兼容性 (2006-03-15 ED)
* 修复运行单元测试时缺少权限 (2006-03-15 ED)
* 添加 Photoshop 附件插件
1.3.3 - 2006-01-24
================= =
* 修复了 Plone 2.1.2 [1.3.1 - 20060113]的附件识别问题
* OpenOffice2 文档支持
* 修复小部件:如果字段为空,则仅显示单个文件输入。还修复了
“首次上传不删除”(2005-12-15 BM)
[v1.3 - 20051102]
* 首次上传不删除、替换和未更改复选框。(2005-10-31 MR)
* 更好的日志以防丢失 libxml2 或 libxslt (2005-09-06 MR)
* 添加了 Flash 附件插件(感谢 Harlow Pinson)
* 修复 AT 更新模式方法的错误 - ED
[v1.3RC5 - 20050832]
* 删除了 AttachementService;改用 plone 控制面板中的 configlet
*
修复将 Zope 挂在 100% CPU 的无限循环
[v1.3RC4 - 20050729] * 使用 FileField 代替 Field.FileField
修复 AttachmentField 下载方法中的错误[v1.3RC3 - 20050524] * 在 Win32 下再次正确支持 MSWord * 修复了安装程序以卸载 configlet *修复了 PortalTransformsAttachment 的 unicode 错误提供了一个基于正则表达式的 HTML 剥离器,尤其适用于 wvWare 输出* 添加了 RTF 附件支持* 使用 Mimetypesregistry 作为索引 RTF 内容的后备* OpenOffice 文档现在被原生索引[v1.3RC2 - 20050325] * 在 win32 下使用 PortalTransofrms 的小修复* 使用用于生成 configlet 示例页面的无类型内容类型[v1.3RC1 - 20050322]
* 修复了未知内容类型的图标(询问标记而不是 RTF 图标)
* 添加了一个“PortalTransformAttachment”类,现在可以将 PortalTransforms
用作附件服务。哇!例如,使用 CMFOODocument 进行测试。
* 感谢 Zegor
[v1.2 - 20050311] ,增加了对压缩文件(zip、rar、...)的支持
* 添加 AttachmentWidget
* 添加了视频文件支持
[v1.1 - 20050225]
* 改进了临时文件管理。现在所有转换器输出都应该
写在一个临时目录中。
[v1.0 - 20050118]
* callConverter() 类方法中的代码页翻译
* Archetypes 的自动 SearchableText 支持(get() 中的 contentType 参数,
和“可搜索”字段参数支持;例如。
如果“可搜索”为假,我们将禁用自动索引)。
* 创建了一个 AttachmentService 来测试和监控东西。
* 为 Plone 创建了一个 AttachmentTool 和一个用于监控内容的 configlet。
[v1.0RC - 20041229]
* 使 AttachmentField 的 isEmpty 方法更安全 2004/12/29 MR
* 修复了 Windows 下的路径问题 2004/12/29 MR
* 修复了关闭打开文件的问题 2004/12/29 MR
* First版本 !;)