可定制的下拉菜单
项目描述
为Plone提供的可定制导航菜单。功能包括
手动定义导航菜单条目
对单个条目设置条件
通过读取给定文件夹的内容自动生成子菜单
从静态页面手动生成子菜单
单个条目可以同时存在两种类型的子菜单
菜单没有预设样式。您可以在网站主题中自定义样式。
处理多个配置,绑定到不同的路径。例如,用于处理子站点。
基本配置
这是控制面板的样式
在标题下方可以找到选项卡。每个选项卡包含单个路径的配置。我们将在稍后详细介绍这一点,现在我们将专注于主选项卡,其名称为当前Plone站点的名称。
path字段包含此配置的根路径。此路径下的每个路径都将使用此菜单。
在path字段之后是一个菜单项列表(图片中只显示了一个)。每个菜单项都是一个包含五个字段的可折叠、可排序(通过拖动上下)和可删除的字段集。
tab_title是菜单条目的标题。这是将打印在主导航菜单上的字符串。
导航文件夹是我们可以从其中自动生成子菜单的文件夹路径。
附加列是包含页面的文件夹路径。页面的文本将添加到生成的子菜单中。这可以与导航文件夹字段一起使用,例如,用于向生成的子菜单添加图片,但也可以单独使用,以生成静态的自定义子菜单。
如果我们使用一个或两个上述字段,主导航链接将切换生成的可折叠子菜单。
简单链接覆盖前两个字段,可以用于创建指向指定URL的简单链接。
条件是一个表达式,用于验证是否显示菜单条目。在创建新条目时默认为python: True,可以更改为python: False以隐藏条目,作为基本配置,但允许更复杂的表达式。请参阅此处完整列表:http://docs.plone.org/develop/plone/functionality/expressions.html#expression-variables
在条目列表之后,您可以找到一个按钮(添加项),用于添加新的菜单条目。
事件
菜单链接将从菜单中触发三个不同的自定义事件。
editablemenu.submenu.opened:当菜单完成滑动下来时
editablemenu.submenu.closed:当菜单完成滑动上去时
editablemenu.submenu.loaded:当菜单完成加载新内容时
安装
通过将其添加到您的构建中安装collective.editablemenu
[buildout] ... eggs = collective.editablemenu
然后运行“bin/buildout”
兼容性
此插件已在Plone版本5.0和5.1上进行测试。
对于Plone 4的兼容性,请使用版本0.10.2(专用分支即将推出…)
升级旧版本
从2.1.0版本开始,我们删除了一个自2.0.0以来已替换的旧配置。为此,我们需要删除一些未使用的代码/接口。
如果您有非常旧的此产品版本(< 0.10.0),则应安装2.0.0版本并执行升级步骤,然后再安装最新版本。
开发
在此产品中包含几个静态资源
scss样式
配置菜单的React应用程序
渲染菜单的Js
编译小部件配置应用程序
转到 src/collective/editablemenu/browser/static/js/widget 文件夹。
然后安装依赖项
yarn
最后编译React应用程序
yarn build
之后,您需要编译所有资源并将它们捆绑到资源注册表捆绑包中
进入项目的根目录并为Grunt安装依赖项
npm install
最后编译和压缩资源
npm run compile
贡献
许可证
本项目采用GPLv2许可证。
贡献者
RedTurtle Technology,sviluppoplone@redturtle.it
变更日志
2.3.0 (2019-09-10)
添加了自定义动态部分标签的选项 [pnicolli]
2.2.0 (2019-07-05)
添加了python3支持。 [cekk]
2.1.1 (2019-05-24)
修复了submenu_detail_view.pt,以便条件不会调用文件夹对象。 [eikichi18]
2.1.0 (2018-12-20)
如果上下文不在结构映射中,则不会破坏视图。 [cekk]
破坏
从代码中删除了旧式注册条目中未使用的类/接口。请参阅README以获取升级信息(仅当您从 < 0.10.0 开始时)。 [cekk]
2.0.0 (2018-10-11)
破坏
重写了菜单模板以改进可访问性 [pnicolli]
通过ES处理aria-expanded和ESC按键事件 [nzambello]
1.2.0(未发布)
删除了未使用的旧代码 [cekk]
修复了没有当前文件夹设置时的菜单渲染 [cekk]
添加了初始测试套件(功能性和验收)
添加测试套件(功能性和验收) [cekk]
1.1.0 (2018-05-15)
当菜单打开、关闭和加载时添加了自定义事件 [pnicolli]
1.0.1 (2018-04-27)
修复了过时的plone.directives.form导入 [pnicolli]
1.0.0 (2018-03-12)
修复zcml条件以注册global_sections视图小部件。它现在在Plone 5上同时添加了两个不同的视图小部件,现在其中一个已经消失。[pnicolli]
plone.protect JavaScript脚本曾被添加到子菜单HTML中,现在已手动从异步响应中删除。[pnicolli]
将配置格式移动到使用JSON字符串[daniele-andreotti]
全新的控制面板布局[pnicolli]
修复choose_site_menu_config方法以采用正确的路径[fdelia]
0.10.2 (2017-09-13)
修复simple_link字段的URL生成。现在可以正确处理内部或外部链接。[cekk]
0.10.1 (2017-01-23)
修复升级步骤[lucabel]
0.10.0 (2017-01-20)
BREAKING:子菜单现在在菜单
- 元素内创建,而不是在
- 之后[pnicolli]
0.9.1 (2016-12-02)
添加了对菜单静态部分的Dexterity支持[pnicolli]
页面模板现在在类内部加载,以允许更轻松地克隆视图小部件[pnicolli]
在菜单中添加简单的“不可展开”链接[lucabel]
添加与portal_tabs相同的方式来条件化标签页的可见性[lucabel]
添加Plone5兼容性(无资源注册器)[cekk]
0.9.0 (2016-03-15)
修复MANIFEST.in和trove分类器,以便在PyPI上发布包[ale-rt]
0.2.1 (2016-01-11)
修复JavaScript调用[cekk]
0.2.0 (2016-01-11)
修复注册问题[cekk]
0.1.0 (2016-01-05)
初始发布。[cekk]
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
集体.editablemenu-2.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 64d5ade805138541c99d32c4bab0c8c777357d2db2fc172225924c9f70db856d |
|
MD5 | 9c987704fcfa4c6e30d4ceb1ffd750b2 |
|
BLAKE2b-256 | c27d43d8086a49c4889053a5875999ceb88383f28a6c2070de17417df946fd66 |