添加门垫视图组件并将其安装到Plone页脚中。门垫中的链接和文本可以像内容一样管理。
项目描述
简介
门垫是一些以结构化方式呈现的链接组合。一个例子是当前的plone.org,底部div#sitemap由一些内部和外部链接的有序集合组成,包括“下载”、“文档”、“开发者”、“Plone基金会”和“支持”等部分。更多门垫的示例。
此产品添加了一些内容类型(Archetypes),用于创建用于生成门垫的结构。门垫上的小部件放置在Plone页脚中。门垫中的链接作为内容管理,使门垫比网站地图更灵活。也可以添加外部链接。还可以添加带有标记的文本片段。
快速功能概述
内部链接
外部链接
文本块(包括图片)
来自Plone集合的链接
可以有任意数量的列
每列可以有多个部分
类似的产品
collective.doormat
collective.doormat也允许你在网站上创建门垫,但它采用不同的方法:它不是创建内容对象的结构,而是提供一个配置面板,你可以在其中使用单个富文本字段创建门垫。
这种方法使维护门垫变得更加容易。
它不考虑权限,因此链接可能指向访客没有访问权限的内部内容。也无法从集合中添加内容。
入门
在你的网站上安装此产品后,你应该在Plone网站上有一个“门垫”项目,它应该出现在网站文件夹内容中。在里面,你可以创建列、部分、链接(内部和外部)、文档(Plone的页面类型)以及到集合的链接(门垫集合)的层次结构。应该已经有一个列、一个部分和一个文档。
门垫的示意图可能如下所示
+-- Doormat ----------------------------------------------------------------------------+ | | | +-- Column 1 ----------+ +-- Column 2----------+ +-- Column 3 ------------------+ | | | | | | | | | | | +-- Section 1 ----+ | | +-- Section 1 ----+ | | +-- Section 1 -------------+ | | | | | | | | | | | | | | | | | | | +-- Link 1 --+ | | | | +-- Link 1 --+ | | | | +-- Document 1 -------+ | | | | | | +------------+ | | | | +------------+ | | | | | | | | | | | | | | | | | | | | | (Contact info) | | | | | | | +-- Link 2 --+ | | | | +-- Link 2 --+ | | | | | | | | | | | | +------------+ | | | | +------------+ | | | | +---------------------+ | | | | | | | | | | | | | | | | | | | | +- Document -+ | | | | | | | | +- DoormatCollection -+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Item 1 from Collctn | | | | | | | +------------+ | | | | | | | | | Item 2 from Collctn | | | | | | | | | | | | | | | | (...) | | | | | | | | | | | | | | | | Link to Collection | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------| | | | | | | | | | | | | | | | | | | | +-----------------+ | | +-----------------+ | | +--------------------------+ | | | | | | | | | | | +----------------------+ +---------------------+ +------------------------------+ | | | +---------------------------------------------------------------------------------------+
实际上,你可以添加多个部分,它们将相互堆叠显示。在每个部分中,你可以混合内部链接、外部链接和文档。
在现实生活中
请注意,与plone.org门垫相比,此产品添加了一个额外的层次:它添加了一个列,可以包含多个部分。使用此结构的示例是Oosterpoort,实际上它是该产品的前身。
添加文档
将文档添加到门垫与在任何其他地方添加它一样简单。但是,请注意,只有“正文文本”字段将在门垫中显示。其他字段,尤其是标题和描述将被省略。
文档中的链接
默认情况下,相对链接将根据文档所在位置创建。然后,此链接将显示在门垫上的所有页面上,因此它很可能被破坏。
解决方案是让编辑器使用uid插入链接。在Plone 4上,你可以通过转到TinyMCE设置(通过“网站设置”)的“资源类型”选项卡,并勾选“使用UID链接”的框来启用“使用UID链接”。
这将适用于整个网站。你可以在添加链接后将其恢复到默认设置,因为相对链接通常更受欢迎。
添加图片
要将图片添加到门垫,请添加一个文档并在其中包含图片。无法将图片上传到门垫部分,因此你需要首先将图片上传到网站上的其他地方。
确保首先启用“使用UID链接”(见上文),因为以相对方式定义图片的位置将与相对链接以相同的方式损坏。
到集合的链接
还可以添加一个“链接到集合”项目(门垫集合)。这允许您指向一个Plone集合对象,并从中获取项目。
简单配置
默认情况下,门垫被排除在导航之外。
在文件夹类型(门垫、列和部分)上有一个名为showTitle的字段,允许内容管理员决定是否在门垫中显示项目标题。
更高级的配置和样式
本节是为集成商和/或希望更详细地自定义门垫渲染方式的开发者准备的。
移动门垫
默认情况下,默认门垫视图小部件(doormat.footer)位于plone.portalfooter视图小部件管理器中。在附加产品中修改这很容易,因此门垫将显示在全局导航(门户选项卡)下方或网站中的任何其他位置。
显示不带额外div元素的门垫
默认视图小部件在Plone默认页脚元素内渲染门垫,因此它与Plone 4的默认Sunburst主题融为一体。
<div class="row"> <div class="cell width-full position-0" > <div id="doormat-container" /> </div> </div>
使用doormat.footer.bare视图小部件将省略最外层的两个<div>。当在不同主题或自定义布局中使用门垫时,这可能很有用。您可以通过@@manage-viewlets隐藏默认视图小部件并启用裸版本,或者通过为您开发的产品添加自定义的viewlets.xml。
注意事项
多个门垫
视图小部件会对门垫门户类型进行目录查找。如果您有多个此类对象(没有阻止您这样做),它将使用最旧的。
卸载时删除内容
如果您运行卸载配置文件,就像卸载产品时一样,所有内容都将被删除。这确保了产品可以干净地卸载,方便迁移以及那些只想尝试的人。
如果您网站中有门垫并且您对其满意,请勿点击卸载。
依赖项/要求
该产品适用于
Plone 3
Plone 4
鸣谢
查看更改日志。
此产品最初由GroningerForum赞助。
更改日志
1.2 (2016-08-22)
在Dexterity链接中添加了对${navigation_root_url}和${portal_url}的支持。抱歉,Archetypes不支持此功能。(关闭#9)。[idgserpro]
1.1 (2016-05-20)
重新安装时不要删除现有内容[pbauer]
在导入步骤中添加对正确GS配置文件的检查。[tmassman]
1.0 (2013-12-23)
更新了包的分类器列表和关键字。[macagua]
添加了西班牙语翻译。[macagua]
添加了i18n支持。[macagua]
修复了当与plone.app.contenttypes版本1.0b2或更高版本一起使用时破坏门垫的拼写错误[ericof]
修复了DoormatCollection没有限制的问题[lccruz]
0.9.1 (2013-10-10)
使内容创建依赖于类型,修复了安装中的错误。使点击“停用”运行卸载配置文件。[khink]
0.9 (2013-10-10)
移除UML。添加测试,使用Travis和Coveralls。安装时创建门垫。添加卸载配置文件。[khink]
0.8 (2013-08-23)
如果可用,则在门垫引用中使用archetypes.referencebrowserwidget。注意:archetypes.referencebrowserwidget 2.4.15和2.4.16破坏了非多引用选择,因此如果您的Plone版本使用这些版本之一,您应编辑您的buildout以使用较新版本。[maurits]
转移到github:https://github.com/collective/Products.Doormat [maurits]
使其与Dexterity和新集合兼容[pbauer]
从BaseContent(来自https://github.com/pymilya/Products.Doormat)派生
仅在导航根中搜索门垫。这允许在网站的部分中使用不同的门垫(或没有门垫)。[maurits]
0.7 (2011-06-22)
合并集合分支。
添加“DoormatCollection”类型,该类型从集合中获取链接。感谢Alessandro Vermeulen在https://github.com/spockz/Products.Doormat分支上的工作。
不要从DoormatMixin派生DoormatCollection。[khink]
为字段添加标签和描述,在文档中添加指向它们的指针。[khink]
使用contentValues()而不是objectValues()(仅公开CMS内容)[khink]
0.6 (2010-11-11)
可以按位置样式化门垫列。[malthe]
不要使用目录,使用objectValues()遍历 https://dev.plone.org/plone/ticket/11265 [khink]
0.5 (2010-10-25)
通过在UML中添加标记值将DoormatSection的global_allow设置为False。(agx神秘地将它默认设置为True)[khink]
开发者文档(关于使用AGX)
显式设置Link类型对象的external-link类。
0.4 (2010-10-05)
允许添加文本以及链接。 http://plone.org/products/doormat/issues/6 [renskers]
重新添加了皮肤文件夹,因为这些将由AGX生成。(使它们不为空。) http://plone.org/products/doormat/issues/4 [khink]
为'doormat-container' div添加一个类以表示列数。添加CSS使列具有相同宽度。[khink]
0.3 (2010-07-19)
删除空皮肤文件夹doormat_styles/和doormat_templates/(解决了http://plone.org/products/doormat/issues/4:皮肤目录从蛋中丢失)
添加了视图小部件doormat.footer.bare,以显示不带div.row和div.cell包装的门垫。
0.2 (2010-06-11)
添加到浏览器层的小部件(解决了http://plone.org/products/doormat/issues/3:干净地卸载)
0.1.1 (2010-06-09)
添加locales/NOTEMPTY.txt以确保locales/被添加到蛋中。这解决了#1(http://plone.org/products/doormat/issues/1)
更新文档
0.1 (2010-06-08)
首次发布
对于开发者
UML弃用通知
本产品的内容类型是用ArchGenXML(AGX)创建的,AGX是一种从UML模型生成代码的工具。由于Dexterity内容类型已经取代了Archetypes成为默认内容类型故事,AGX不再广泛使用。
自0.9版以来,此包具有测试,使用plone.app.testing进行。似乎没有必要使AGX与这些测试一起工作。因此,UML模型及其所有相关内容都被删除了。
你仍然可以在代码的0.9版本之前的代码中找到UML及其文档。
待办事项
为getDoormatData和getDoormatTitle方法添加某种缓存,或为整个视图小部件添加缓存。或者至少了解它们的成本。目前视图小部件每次渲染时都会计算整个门垫。
项目详细信息
Products.Doormat-1.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | bede9622589afa4b31656a52a63c54a372b826210393d9b53fd0b25936e5454d |
|
MD5 | 387da6e68908570a0795da3edbf92887 |
|
BLAKE2b-256 | b21d9c46eae345154639920d5adeb6705c6f6ac2f75d5c0ae385989b09ac8ee9 |