以不干扰的方式为特定Plone导航条目扩展/折叠功能
项目描述
简介
本产品的目的是在不修改导航代码本身或覆盖其功能的情况下,使Plone导航(部件)的展开/折叠功能成为可能。
此产品不是一个新的导航部件,而是一个依赖于原生Plone的jQuery支持的JavaScript插件。
更重要的是:它仅专注于使一些导航链接可展开。
你什么时候会喜欢这个?
当您的Plone网站需要(不太多)特殊处理导航元素时,collective.navigationtoggle非常有用。有时您的网站结构可能如下所示:
ROOT | |_ FolderWhatever \_ NotImportantFolder | |_ ImportantFolder1 ... \_ ImportantFolderN
如果您在网站根目录上配置导航部件,用户必须点击NotImportantFolder并重新加载整个页面才能到达ImportantFolder部分的链接。在NotImportantFolder级别的网站没有用……也许您只提供一个folder_listing视图或一个默认页面,只说“欢迎来到网站的 重要区域,请访问您要查找的子部分……”。
对用户体验来说,第一次点击只是浪费时间。
您所寻找的可以是一个客户端效果,该效果可以展开/折叠导航中的文件夹。在您的信息架构中,NotImportantFolder本身不被视为真正的内容。
会有什么变化
使特殊导航链接不再将用户移动到目标部分,而是在导航中本身显示所有子部分(因此导航看起来就像用户真的移动到了目标文件夹)。
第二次点击将折叠部分。
文件夹中的默认页面、带有“从导航中排除”标记的元素以及来自metaTypesNotToList属性的未想要类型将被排除。
脚本试图尽可能好地模拟正常的部件导航行为。
代码考虑到了优雅降级。未启用JavaScript的浏览器将简单地使用基本Plone导航功能。
详细文档
基本配置
在您的Plone配置面板中,您将找到新的“导航切换设置”。
从这个部分,您可以配置许多高级选项,主要您需要配置
- 链接选择器
一组URL路径后缀,例如href属性的/foo1/foo2。使用此示例,以下链接将被触发
<a href="http://plonehost/plone/foo1/foo2">
通常只检查导航部件内的链接(请参阅“切换容器类”)。
您也可以在此处提供一个复杂的jQuery表达式,例如
li.navTreeItem a
如果您没有直接提供一个匹配HTML <A>元素的选择器,您仍然需要查询该节点内的某些内容,例如
li.navTreeItem a.contenttype-folder span
在上面的最后一个示例中,只有点击导航条目文本才会触发展开/折叠功能,而点击图标将保持默认的浏览器行为。
- 动画延迟
此产品可以为您启用在展开/折叠项时使用图形效果。默认情况下是禁用的。
要启用它,您必须将此值更改为大于0的值。您放入的值是用于slideDown和slideUp jQuery效果的毫秒数。
将其简单地设置为0(默认值)以禁用效果。
高级配置
- 缓存
选中它以执行客户端AJAX请求的缓存。如果禁用,则每次点击导航时都会向服务器发送请求。
- 切换容器类
一组CSS类,用于标记您的导航元素。仅包含这些类之一的元素内的链接是“可切换”的。
请注意,对于使用jQuery表达式而不是URL路径的“链接选择器”条目,此选项将被忽略。
- HTML列表类型
要查找的HTML容器元素的类型。
- HTML列表项
要生成的HTML元素类型。
样式
此产品会动态地向包含匹配配置的链接的<li>元素添加两个新的可能CSS类。
当页面上显示特殊导航元素且关闭子树时,会添加类“cnavClosed”。当打开子节时,同一元素会添加类“cnavOpen”。
生成的子结构是Plone提供的主要结构的副本,但会添加一个“cnavGenerated”类。
您可以使用这些类在Plone主题中提供额外的样式效果(但此产品并不提供)。
版本/依赖关系
浏览器
Firefox 16(…在我写这行字的时候,可能已经发布了一个新的主要版本…)
Google Chrome 23(…与上面相同…)
Opera 12
Safari 5.1
Internet Explorer 8, 9
Plone
Plone 3.3(经典Plone主题)
Plone 4.2(经典Plone主题和Sunburst)
Plone 4.3(经典Plone主题和Sunburst)
依赖关系
simplejson(如果使用Plone 3)
jQuery 1.3或更高版本
缓存控制
切换配置存储在一个JavaScript文件中,您的浏览器和Plone的portal_javascript工具可能会将其缓存。
更改配置时,您可以使用“保存并使JS缓存失效”按钮。
其他产品
如果您需要一个完整的展开/折叠导航功能,此产品不适合您;所以请看看
致谢
在以下机构的支持下开发:
他们都支持PloneGov计划。
变更日志
1.0.3 (2020-05-05)
添加了Transifex.net服务集成以管理翻译过程 [macagua]
添加了西班牙语翻译 [macagua]
更新了gettext文件支持 [macagua]
1.0.2 (2014-07-17)
修复了在Plone站点(例如文件系统中的文件夹)中使用产品时 @@query-subelements 的一个错误 [mpampols]
修复了在生成 collective.navigationtoggle.rules.js 时,如果规则包含引号字符,则会将规则错误地放置在内的一个错误 [keul]
1.0.1 (2013-01-24)
使用对象的id作为展开项的备用标题(关闭 #6) [yangh]
1.0.0 (2013-01-15)
0.4.0 (2012-11-15)
添加了产品的浏览器层 [keul]
提供了一个自定义配置面板 [keul]
将所有剩余的配置添加到Plone UI中 [keul]
toggleContainerClass 现在是 toggleContainerClasses (可用于一组类) [keul]
添加了 i18n 支持,以及意大利语翻译 [keul]
更改了 AJAX 调用上下文,现在始终调用门户根 URL [keul]
添加了测试(Plone 和 JavaScript) [keul]
0.3.0 (2011-06-07)
现在可以使用更通用的 jQuery 选择器 而不是简单的 URL 路径 [keul]
不要显示在导航中不希望显示的类型列表中的类型 [keul]
collective.navigationtoggle.txt 是空的 [keul]
JSLint 清理 [keul]
代码更加通用,并添加了新的属性如 toggleContainerClass、listType 和 listItem。现在代码可以用来模拟带有非端口导航结构的导航器 [keul]
添加了卸载 GS 步骤 [keul]
正确修复了 simplejson 依赖项,仅在 Python < 2.6 时 [keul]
可以通过 Plone UI 添加链接选择器 [keul]
0.2.1 (2010-07-09)
修复了在打开的元素上快速双击时的错误(关闭 #1) [keul]
对 Sunburst 支持有了很大改进(以及其他主题,总的来说),现在还会检查链接上的 “contenttype-xx” 和 “state-xx” CSS 类 [keul]
0.2.0 (2010-04-11)
query_subelement 观看文档不完整 [keul]
在查询空文件夹时,不要阻止(实际上:模拟)浏览器默认操作 [keul]
防止浏览器缓存(主要针对 Internet Explorer 问题) [keul]
不要总是显示内容图像图标(有时用户在导航中看不到它们) [keul]
现在每个元素节点都会缓存其子树,因此 AJAX 调用只执行一次(可以禁用) [keul]
添加了对 simplejson 的依赖,用于格式化服务器响应 [keul]
添加了与 Plone 4.0 的最小兼容性(UI 结果并不完美) [keul]
添加了简单的向上/向下滑动效果(默认禁用) [keul]
0.1.0 (2010-04-06)
初始版本
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
collective.navigationtoggle-1.0.3.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea9a1ec694ed2533609af8730edebb65a725da74124f4e87981b99428cad04cf |
|
MD5 | e26a0b9ad49d40255510fa5cc1fddd97 |
|
BLAKE2b-256 | 1b89d56610188630040dcb985906b9b357fba4988a9e9d68a6c6ca5347500d60 |