跳转到主要内容

一种理智、可行、编辑友好的方式来创建首页和其他组合页面。现在对普通人有效。

项目描述

生活,宇宙,以及一切

collective.cover 是一个允许为网站主页创建复杂封面的软件包,特别是为需要比简单页面或集合提供更多资源的新闻门户、政府网站和内联网。然而,尽管提供了丰富的资源来构建封面,collective.cover 还提供了一个非常简单的机制来管理其内容,该机制基于拖放界面。

collective.cover 基于 BlocksTiles,类似于 Mosaic,Plone 的新布局解决方案。

演示

对于有耐心的用户,可以在 Heroku 上找到 collective.cover 的演示安装。启动大约需要 60 秒,如果大约一个小时没有使用,它将清除所有更改。

用例

假设您正在运行 The Planet,一个有众多编辑专注于报道不同主题的新闻门户,如经济、健康或体育。

如果您是网站的主要发布者,您可能希望将经济部分主页的建设委托给负责该内容区域的人员,但您可能不希望他们同时干扰体育部分。

此外,假设世界杯决赛即将进行,比赛将通过点球大战决定:您可能希望准备几页封面并发布最终获胜球队的焦点页面。

这是我们想要通过此软件包解决的问题;我们还有很长的路要走,但这是我们的想法。

谁在使用它?

以下是使用 collective.cover 的网站列表

https://raw.github.com/collective/collective.cover/master/cover.png

巴西总统府在其网站首页使用了 collective.cover

大多数是无害的

http://img.shields.io/pypi/v/collective.cover.svg https://img.shields.io/github/workflow/status/collective/collective.cover/Plone%20package/master?label=GitHub%20Actions https://codecov.io/gh/collective/collective.cover/branch/master/graph/badge.svg?token=rQ0kzJU0jt

如果您有想法或发现了错误,请通过 提交支持工单 来告诉我们。

已知问题

请参阅 GitHub上的完整错误列表

不要慌张

我们目前正在编写包的文档;这是我们现在的内容(欢迎贡献)

安装

要在基于buildout的安装中启用此包

编辑您的buildout.cfg并在其中添加以下内容

[buildout]
...
eggs =
    collective.cover

如果您想使用关系字段,必须在您的buildout配置中使用[relations]扩展。

[buildout]
...
eggs =
    collective.cover [relations]

更新配置后,您需要运行“bin/buildout”,这将负责更新您的系统。

转到Plone站点的“站点设置”页面,然后单击“附加组件”链接。

勾选collective.cover旁边的复选框,然后单击“激活”按钮。

开发

我们使用 webpack 来处理此包的静态资源。 webpack 处理SCSS和JS文件,压缩生成的CSS和JS,并优化所有图像。

要贡献,您应该在其中一个shell中启动实例,并在另一个shell中使用以下命令启动webpack监视器

$ bin/watch-cover

然后转到webpack/app文件夹,并编辑SCSS和JS文件; webpack 监视器将自动在正确位置创建最终资源。

还添加了其他命令来处理更复杂的情况。

以下命令将在系统PATH中设置buildout节点安装,这样您就可以像在他们的文档中所描述的那样使用 webpack

$ bin/env-cover

以下命令生成JS和CSS而不进行压缩步骤(它可以用来以人类可读的方式检查生成的代码)。

$ bin/debug-cover

以下命令重建静态文件然后退出(而不是继续监视更改)

$ bin/build-cover

从 1.x 升级到 2.x

在版本2.0b1中,我们移除了对 plone.app.relationfield 的硬依赖。您必须像上面所述在您的buildout配置中使用 [relations] 扩展,否则您的网站将因为以下错误而损坏

AttributeError: type object 'ICatalog' has no attribute '__iro__'

并不完全不同

多年来,一些包被设计用来解决在Plone中创建节封面的问题。我们使用了以下包,并从中吸取了灵感

CompositePack

非常旧;遗留代码如此复杂,已无法维护。它(可以说)拥有所有中最出色的用户界面。无法直接创建布局。视图组件只是与内容类型关联的页面模板;您可以在布局中拖放视图组件。出版商非常喜欢。

CMFContentPanels

代码非常旧,但仍在维护(至少在Plone 4中运行)。允许直接创建复杂布局,并可以使用任何布局作为模板。易于扩展和编辑(但很难找到要使用的内容)。运行时需要大量内存和积极的缓存设置。

Collage

允许直接创建布局,但(可以说)拥有所有中最差的用户界面。它很容易扩展,并且有多个插件可用,为它提供新的功能。

巴西众议院网站主页编辑器

该包强烈基于Collage,在2012年巴西利亚的世界Plone日上展出。允许编辑主页和定义内容块的权限。仅在Plone 3中运行。

collective.panels

一个新的包,允许网站编辑在一系列新位置添加组件:页面内容上方和下方、门户顶部和底部。该包包含一些灵活的布局,用于定位组件,位置可以固定到最近的网站对象,以方便继承。在collective.cover(此包)中,我们根本不想使用组件。

使用 zest.releaser 发布

此包的静态资源使用webpack生成,不包括在版本控制系统中。如果您使用zest.releaser发布,则必须手动上传文件到PyPI,否则最终将得到一个损坏的发布版本。

  • 按照惯例运行 longtestfullrelease

  • 当被询问是否上传到PyPI时,请回答“否”并继续正常操作

  • 检出您要发布的标签

  • 运行 bin/build-cover 以更新静态文件

  • 使用 python setup.py sdist bdist_wheel 按照惯例创建发布文件

  • 使用 twine upload dist/* 上传文件

如果出现错误,您将不得不创建一个新版本,因为PyPI仓库不允许重复使用文件名

分享并享受

collective.cover 的实现离不开以下人员的贡献

  • André Nogueira

  • Asko Soukka

  • Carlos de la Guardia

  • Cleber J. Santos

  • Daniel Jowett

  • Davi Lima

  • Denis Krienbühl

  • Érico Andrei

  • Franco Pellegrini

  • Fred van Dijk

  • Fulvio Casali

  • Giorgio Borelli

  • Gonzalo Almeida

  • Héctor Velarde

  • JeanMichel FRANCOIS

  • Juan A. Díaz

  • Juan Pablo Giménez

  • Kuno Woudt

  • Laura Pérez Mayos

  • Marcos F. Romero

  • Maurits van Rees

  • Rodrigo Ferreira de Souza

  • Silvestre Huens

  • Thiago Curvelo

  • Thiago Tamosauskas

  • Launched Pixels(图标)

您可以在GitHub上找到包贡献者的更新列表。

由Open Multimedia、Ravvit和Simples Consultoria赞助开发。

变更日志

有一个家伙真的很清楚他的毛巾在哪里。

3.0.0 (2023-03-29)

  • 为Cover内容类型和“组合”和“布局”标签添加图标。[wesleybl]

  • 修复在内容树中单击文件夹时出现的错误。[idgserpro]

  • 修复清除内容选择器输入时的错误(修复了#942)。[wesleybl]

  • 改进内容选择器搜索输入布局。[wesleybl]

  • 修复布局滚动错误 - 无法保存。[idgserpro]

  • Products.ZCatalog.query.IndexQuery 中移除补丁。 Products.ZCatalog 5.4 修复了当搜索参数为记录时的错误。[wesleybl]

  • 停止支持 Python 3.6。[wesleybl]

  • 使用 plone 资源而不是浏览器资源。[wesleybl]

  • 移除导致 AJAX 调用同步的 JavaScript 定制化。[wesleybl]

  • 在内容树中显示所选文件夹路径(修复了 #921)。[wesleybl]

  • 添加缺失的依赖项:Products.MimetypesRegistryProducts.ZCatalogpersistentplone.lockingzope.containerzope.traversingZODBZope。[wesleybl]

  • 移除未使用的依赖项:plone.app.contentplone.app.jquerycssselecttestfixturestransaction。[wesleybl]

  • 修复链接完整性(修复了 #615)。[wesleybl]

  • 当编辑器离开 Compose/Layout 标签时解锁 Cover(修复了 #916)。[wesleybl]

  • 修复编辑包含图像的基本拼图时的 PicklingError(修复了 #907)。[wesleybl]

  • 在从一块拖动内容到另一块时,在 Compose 中重新组织 js 事件注册,以防止内容留在源拼图上。[wesleybl]

  • PersistentCoverTileDataManager 中设置,在将值放入存储后清除拼图,以防止旧值被缓存,因为清除会访问 tile.data。还更新了用于 self.storage 的数据保存属性。[wesleybl]

  • 在导航栏中显示 Cover。[wesleybl]

  • 移除 onbeforeunload 弹出窗口的定制消息。浏览器不再显示定制消息。[wesleybl]

  • Products.ZCatalog.query.IndexQuery 中应用补丁,以避免在日历拼图中单击带事件的日子时出错。[wesleybl]

  • 修复 Plone 5.2 中的日历拼图(修复了 #633)。[wesleybl, pbauer]

  • 移除旧的升级步骤。[wesleybl]

  • 添加对 Python 3.6、3.7 和 3.8 的支持。[pbauer]

  • 停止对 Plone 4.x 的支持 [cleberjsantos]

  • 添加对 Plone 5.2 的支持。[cleberjsantos]

  • 停止 PFG 支持 [cleberjsantos]

  • 修复 plone.namedfile 缩放 [cleberjsantos]

  • 修正图像缩放的显示 [cleberjsantos]

  • 修复 Plone 5 中的新概念 Js 注册 [cleberjsantos]

  • 停止 Deco 网格 [cleberjsantos]

  • 重构测试 [cleberjsantos]

2.2.3 (2021-02-02)

  • 修复移除列表拼图项。[fredvd]

  • 固定通过拖放更改列表拼图顺序。[maurits]

2.2.2 (2019-12-27)

  • 修复棕色纸袋发布。[hvelarde]

2.2.1 (2019-12-24)

  • 修复由于 JavaScript 代码迁移到 webpack 而引起的多个回归(修复了 #859#861#868#871)。[Mubra]

2.2.0 (2019-02-26)

  • 弃用资源注册表;现在我们在 plone.htmlhead 中使用一个视图来加载 JavaScript 代码。这简化了多个 Plone 版本之间插件的维护。[rodfersou]

  • 使用 webpack 处理静态资源。[rodfersou]

2.1b2 (2018-10-04)

  • 修复基本拼图中 remote_url 字段的行为,因为从备用 URL 中填充它们可能会导致存储错误的链接。从用于更新字段的配置文件版本 22 中删除升级步骤;我们包括一个新升级步骤,列出可疑拼图,以帮助手动修复任何问题(修复了 #839)。[hvelarde]

2.1b1 (2018-09-28)

2.0b1 (2018-08-24)

  • 更新包依赖项。[hvelarde]

  • 弃用PFG瓷砖;它将在Plone 4中继续可用,但不在Plone 5中。[hvelarde]

  • 移除对plone.app.relationfield的硬依赖;如果您是从collective.cover的早期版本升级,您必须添加额外的[relations](关闭#684)。[hvelarde]

  • 移除预定义布局,因为它们是使用Deco网格系统创建的,并在Plone 5中已损坏(关闭#652)。您仍然可以像往常一样使用您喜欢的网格系统创建自己的布局。[rodfersou]

  • 移除旧版本、不受支持的版本的升级步骤。[hvelarde]

  • 移除已弃用的适配器CollectionUIDsProviderFolderUIDsProviderGenericUIDsProvider。[hvelarde]

  • 修复Plone 5中瓷砖布局配置中可用图像缩放的检索(解决#781问题)。[rodfersou]

  • 修复Plone 5中内容选择器中的“编辑”选项卡中的列表元素编辑(解决#770问题)。[rodfersou]

  • 修复Plone 5内容选择器中选项卡的显示。[cdw9, rodfersou]

1.7b3 (2018-07-09)

  • 在存在许多类时,审查多个类的选择(关闭#785)。[rodfersou]

  • 进行小的代码重构以增加未来的Python 3兼容性。[hvelarde]

1.7b2 (2018-04-27)

  • 修复不同基本瓷砖的瓷砖配置中的多个CSS类选择。[rodfersou]

1.7b1 (2018-04-27)

  • 更新i18n、巴西葡萄牙语和西班牙语翻译。[hvelarde]

  • 允许在瓷砖配置中选择多个CSS类。[rodfersou]

  • 进行小的代码重构以增加未来的Python 3兼容性;添加对six的依赖。[hvelarde]

  • 为瓷砖中的图像字段提供替代文本(关闭#628)。[hvelarde]

1.6b5 (2017-11-21)

  • 修复在从封面布局中删除瓷砖时清除瓷砖注释的问题。这解决了使用版本控制时封面对象指数级增长的问题,导致在代理服务器使用的后端上检查/检出(plone.app.iterate)超时(解决#765)。[rodfersou]

  • 不要自动包含包依赖项,但明确声明它们。[hvelarde]

1.6b4 (2017-10-30)

  • 撤销将cover_layout字段在内容类型架构中声明为只读(解决#761)。[hvelarde]

1.6b3 (2017-10-23)

  • 修复当carousel瓷砖中的一个carousel项目标题包含Unicode字符时的编辑视图(解决#757)。[fulv]

  • 在内容类型模式中明确声明cover_layout字段为只读;使用Plone 4.3的最新版本(修复了#759)的Robot Framework测试再次通过。[hvelarde]

1.6b2 (2017-09-01)

  • 使用正确的image/x-icon MIME类型来处理ICO文件格式(修复了#750)。[hvelarde]

  • 当使用plone.app.contenttypes >= 1.1.1时修复IDatetimeWidget的覆盖问题:collective.z3cform.datetimewidget已合并到plone.formwidget.datetime中,因此zcml必须同时覆盖来自plone.formwidget.datetime.z3cform.interfaces.IDatetimeWidget的模板。(关闭#745)。[idgserpro]

  • 使用自定义事件来审查瓷砖刷新。[rodfersou]

1.6b1 (2017-06-23)

  • 修复了上一版本中做出的适配器的弃用,因为它们被错误地移除了。在collective.cover v1.7中仍将发生代码移除。[idgserpro]

  • 在内容选择器树中使用根的绝对URL(修复了#733)。[maurits]

  • 修复内容选择器清除按钮以更新结果(关闭#727)。[rodfersou]

  • 停止支持Plone 4.2。[hvelarde]

  • 修复基本瓷砖模板中的拼写错误(is_empty不是一个属性,而是一个函数)。[hvelarde]

1.5b1 (2017-06-12)

  • 不再向没有适当权限的用户显示填充有私人内容的基本瓷砖上存储的信息(修复了#721)。[hvelarde]

  • 不再将文件夹拖放到旋转木马瓷砖中,以填充瓷砖中的项目;仍然支持使用集合中查询的结果来填充旋转木马瓷砖。[rodfersou, hvelarde]

  • 将文件夹或集合拖放到列表瓷砖中,之前会导致瓷砖填充文件夹中的项目或集合中的查询结果,这使得无法将文件夹或集合本身作为列表瓷砖的项目(修复了#713)。[rodfersou, hvelarde]

  • 更新Blocks依赖项的推荐版本,以保持与当前Mosaic开发的同步。[hvelarde]

  • 修复ListTile的“results”方法中排序函数的UUID顺序。[idgserpro]

  • 审查内容选择器事件仅在“组合”标签发生(修复了#710)。[rodfersou]

  • 不要假设所有瓷砖类型都有模式。[alecm]

  • 不要将Cover类声明为IDAVAware的实现者;这完全没有意义,并且在进行GenericSetup导出时会导致错误(修复了#396)。[hvelarde]

1.4b1 (2016-12-14)

  • 修复@@updatetilecontent视图以避免渲染过时的数据。[hvelarde]

  • 修复更改基本瓷砖上默认图像缩放时的TypeError(修复了#686)。[rodfersou]

  • 修复添加列表瓷砖中的“更多”链接。之前可以选择一个项目作为“更多”链接,但它不会持久化。[maurits]

  • 从列表瓷砖中删除了replace_with_objects方法;请改用replace_with_uuids。[hvelarde]

  • “添加内容”按钮现在也显示在Plone 5中。[hvelarde]

  • 在使用Plone 5中的内容选择器时避免异常。[hvelarde]

  • 为Dexterity基于的内容类型添加获取MIME类型人类表示的辅助函数。这修复了一个导致Plone 5中异常的AttributeError。[hvelarde]

  • 现在我们也在Plone 5中的列表中获取使用视图动作的类型。[hvelarde]

  • ESI支持已被重构;现在所有瓷砖默认继承自ESIPersistentTile。[hvelarde]

  • 在保存布局时添加plone.protect(修复了#651)。[rodfersou]

  • 使用pat-modal代替prepOverlay来适配Plone 5(修复了#641)。[rodfersou]

  • 强制使用plone.app.tiles >= 1.1.0来避免在版本控制时创建无数的空blob文件(修复了#532,巨大的HT @datakurre)。[hvelarde]

1.3b1 (2016-09-12)

  • 更新繁体中文翻译。[l34marr]

  • 移除对five.grok的依赖(关闭#510)。[l34marr, rodfersou]

  • 使用X-Robots-Tag标题来避免在默认视图中索引图像尺寸;这将减少爬虫在搜索动态内容时生成的404(未找到)响应的数量。[hvelarde]

  • 强制使用plone.api >= 1.4.11以避免在运行升级步骤到配置文件14时出现TypeError。[hvelarde]

1.2b1 (2016-07-04)

  • 添加了一个新的日历瓷砖。瓷砖显示一个日历,突出显示当前月份发生的事件,就像标准日历小工具一样。[rodfersou]

  • 在升级到配置文件13的步骤中处理AssertionError,以避免在封面对象上有重复瓷砖时出现失败。现在,将记录错误消息并跳过对象;您必须手动删除重复的瓷砖(关闭#619)。[hvelarde]

1.1b1 (2016-03-31)

  • 强制使用plone.app.blocks 2.2.1来避免瓷砖破坏整个封面页的问题。[hvelarde]

  • 为集合瓷砖添加了选择随机项的选项(关闭#608)。[rodfersou]

  • 旋转木马瓷砖现在使用相对比例来设置其高度(修复了#414)。[terapyon, hvelarde]

  • 移除对plone.app.referenceablebehavior的硬依赖,因为Archetypes不再是Plone 5的默认框架。在Plone < 5.0中,您现在应明确将其添加到buildout配置中的eggs部分,以避免在升级时出现问题。[hvelarde]

  • 重构链接完整性以在所有瓷砖和Plone 5下工作;移除了对Products.Archetypes的硬依赖(修复了#578)。[hvelarde, rodfersou]

  • 请勿使用日历工具来发现类似事件的对象,因为它已经在Plone 5中移除。相反,尝试通过其目录元数据来猜测一个对象是否为事件。[hvelarde]

  • 现在也对安装了plone.app.contenttypes的包进行了测试;修复了与Archetypes和Dexterity之间API不兼容性相关的几个错误。[hvelarde]

  • 移除对vocabularies的Grok依赖。[l34marr]

  • 现在可以使用收藏夹来填充轮播图瓷砖;没有封面图像的搜索结果将被跳过(修复了#574)。[rodfersou]

  • 如果AJAX调用中的瓷砖抛出异常,则向用户显示消息。(关闭#581)。[idgserpro]

  • 修复收藏夹瓷砖中的日期格式(关闭#584)。[tcurvelo]

  • RichText瓷砖不再在安装了plone.app.widgets时损坏(关闭#543)。[frapell, rodfersou]

  • 添加对collective.z3cform.datetimewidget的缺失依赖。[hvelarde]

  • 移除对plone.app.stagingbehavior的硬依赖,因为该包在Plone 5中不再需要。在Plone < 5.0下,现在应明确将其添加到构建配置中的eggs部分,以避免升级时出现问题。[hvelarde]

  • 在瓷砖之间实现拖放(关闭#487)。[rodfersou]

  • 清理静态文件。[rodfersou]

以前的条目可以在HISTORY.rst文件中找到。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源代码发行版

collective.cover-3.0.0.tar.gz (1.7 MB 查看哈希值)

上传时间 源代码

构建发行版

collective.cover-3.0.0-py3-none-any.whl (358.5 kB 查看哈希值)

上传时间 Python 3

由以下支持