跳转到主要内容

移动导航以及Plone站点上移动按钮的基本基础设施。

项目描述

介绍

使用 ftw.mobile,您可以实现移动按钮,点击后显示选项列表。该软件包依赖于 ftw.theming,它提供基本样式。

它还提供移动导航,也显示为移动按钮,但行为不同。

安装

  • 将软件包添加到您的构建配置中

[instance]
eggs +=
    ...
    ftw.mobile

依赖

警告:此软件包安装了 ftw.gopip,它将 getObjPositionInParent 目录索引替换为 FieldIndex。这是因为 ftw.mobile 需要对 getObjPositionInParent 按顺序进行大量目录查询,这在标准 Plone 中太慢。有关更多详细信息,请参阅 ftw.gopip 的 README。

使用

默认情况下已注册两个按钮。

  • 用户菜单

  • 导航

按钮在视图小部件中渲染,在某个视口大小下可见。

注册新按钮

最小示例

from ftw.mobile.buttons import BaseButton


class UserButton(BaseButton):

    def label(self):
        return u"User menu"

    def position(self):
        return 1000

    def data(self):
        """json data to display"""
        context_state = getMultiAdapter((self.context, self.request),
                                        name=u'plone_context_state')

        user_actions = context_state.actions('user')

        def link_data(item):
            return {'url': item.get('url'),
                    'label': item.get('title')}
        return map(link_data, user_actions)

您需要定义至少移动按钮的 labelpositiondata 才能使其工作。

数据方法需要返回以下有效的 json 数据结构

[
    {
        "url": "$LINK_URL",
        "label": "$LINK_LABEL"
    },
    {
        "url": "$LINK_URL",
         "label": "$LINK_LABEL"
    }
]

用户按钮的位置为 1000,在最右侧渲染,导航按钮的位置为 100,在最左侧渲染。

导航按钮引入了大量的复杂性。它不被认为是 简单的 按钮 ;-)

详细信息导航按钮

导航按钮的 JS 将 body 标签的所有子元素包装起来,并在页面加载时添加两个额外的 div。

开发

Python

  1. 复制此存储库

  2. 克隆您的副本

  3. Shell: ln -s development.cfg buidlout.cfg

  4. Shell: python boostrap.py

  5. Shell: bin/buildout

运行 bin/test 以测试您的更改。

或通过运行 bin/instance fg 启动实例。

变更日志

2.2.2 (2021-08-20)

  • 删除 Plone 5 的 JS 对 plone bundle 的依赖。 [mathias.leimgruber]

2.2.1 (2021-02-19)

  • 修复使用 ESC 关闭 nav,没有 jQuery UI 的问题 [Nachtalb]

  • 在 body 被包装后发出 “mobilenav:body:wrapped” [Nachtalb]

2.2.0 (2021-01-27)

  • 添加 willopen 和 willclose nav 事件。 [mathias.leimgruber]

  • 修复通过不初始化 nav 菜单(如果缺少 html 结构)导致的 JS 错误。 [mathias.leimgruber]

2.1.0 (2020-07-27)

  • 使用 yarn 为 Plone 5 AMD-ify JavaScript。 [djowett-ftw]

  • 修复 Plone 5 的工具栏对齐问题。 [djowett-ftw]

2.0.1 (2020-02-20)

  • 在默认布局中将移动按钮放置在文本旁边。 [busykoala]

  • 允许在导航按钮中使用非 ASCII 字符。 [Nachtalb]

2.0.0 (2019-08-13)

  • 添加对 Plone 5.1 的支持。 [mbaechtold]

1.10.2 (2019-05-16)

  • 为脚本分离部分使用更好的选择器(仅捕获实际的 js)。 [mathias.leimgruber]

1.10.1 (2018-11-12)

  • 修复箭头滚动控制器中没有 topLevelTabs 时的 JS 错误。 [mathias.leimgruber]

  • 在 root_node 上使用 portal 标题。 [mathias.leimgruber]

1.10.0 (2018-05-25)

  • 允许忽略排除的内容的选项。

1.9.0 (2018-05-24)

  • 允许直接打开顶级选项卡。 [Kevin Bieri]

  • 允许显示 leafnote 兄弟节点。 [Kevin Bieri]

1.8.0 (2018-03-19)

  • 修复如果根不是 portal_root,获取子节点的问题。 [mathias.leimgruber]

  • 与ftw.theming 2.0.0.兼容。[Kevin Bieri]

1.7.0 (2017-06-02)

  • 修复移动导航中顶级标签的滚动行为。[Kevin Bieri]

  • 修复:ftw.testbrowser兼容性。[mathias.leimgruber]

  • 在标签导航上设置活动元素的焦点。[Kevin Bieri]

  • 使可以使用Escape键关闭导航。[Kevin Bieri]

  • 当菜单关闭时,跳过移动菜单中的链接。[Kevin Bieri]

  • 修复移动导航中IE11的图标大小。[Kevin Bieri]

  • 修复IE11和Edge中遮罩层的偏移。[Kevin Bieri]

  • 引入滑动手势关闭移动菜单。[Kevin Bieri]

1.6.6 (2017-02-16)

  • 修复IE>=9上的移动菜单过渡。[Kevin Bieri]

1.6.5 (2017-01-18)

  • 在附加节点上设置children_loaded标志。[mathias.leimgruber]

  • 将当前上下文路径附加到prepend_unauthorized_parents,因为当前对象可能被排除在导航之外。[mathias.leimgruber]

1.6.4 (2016-12-01)

  • 不要移除类型为x-handlebars-template的脚本标签。jQuery无法重新附加它们。[mathias.leimgruber]

1.6.3 (2016-11-25)

  • 当导航打开时,屏幕大小从移动变为桌面,关闭移动导航。[raphael-s]

1.6.2 (2016-11-09)

  • 实际上在navtree中将外部链接标记为“external-link”类。[mathias.leimgruber]

1.6.1 (2016-11-08)

  • 在移动导航元素上切换aria-hidden属性。[raphael-s]

1.6.0 (2016-11-07)

  • 添加各种JavaScript事件以方便使用。[jone]

1.5.1 (2016-10-20)

  • 在显示一个级别时隐藏根路径。[jone]

  • 修复模板中的无效标记,导致与chameleon一起出现破损的标记。[jone]

1.5.0 (2016-10-17)

  • 移动按钮:添加设置“show_tabs”和“show_two_levels_on_root”。[jone]

  • 将导航根的URL传递给handlebars模板。[mbaechtold]

  • 将辅助文本也用作链接本身的title属性,以供屏幕阅读器使用。[mathias.leimgruber]

  • 实现handlebars模板的plone翻译。[mathias.leimgruber]

  • 不要使用PageTemplate引擎渲染handlebars模板。[mathias.leimgruber]

  • 将“navActiveNode”类添加到当前加载的节点。[jone]

  • 除了“父节点”外,还添加了单独的“当前节点”项。[jone]

  • 叶节点:打开父导航。[jone]

  • 防止内联javascript重复评估。[Kevin Bieri]

1.4.0 (2016-09-26)

  • 安装ftw.gopip以获得更好的性能。[jone]

  • 标记叶节点并删除指向子节点的链接。[jone]

1.3.0 (2016-09-20)

  • 添加对plone.app.multilingual的支持。[Kevin Bieri]

1.2.0 (2016-09-09)

  • 点击顶级节点后,如果没有子节点,则打开其背后的目标。[jone, mbaechtold]

  • 点击后返回顶级节点。[jone]

1.1.0 (2016-09-09)

  • 修复当父节点被排除在导航之外时崩溃的问题。在排除父节点时也包括父节点。[jone]

  • 使点击菜单外的任何地方时可以关闭菜单。[Kevin Bieri]

1.0.2 (2016-08-08)

  • 修复多个顶级标签高亮显示的问题。[Kevin]

  • 翻译用户菜单操作。[jone]

  • 修复用户没有权限查看父节点时的问题。[jone]

1.0.1 (2016-07-18)

  • 当导航打开时阻止滚动。[Kevin Bieri]

  • 使用ftw.theming的zindex系统修复下拉菜单。[Kevin Bieri]

1.0.0a3 (2016-07-11)

  • 在根元素上引入transitionend标记。[Kevin Bieri]

1.0.0a2 (2016-07-06)

  • 修复iOS设备上的offcanvas导航。重做使用两个额外包装器的revealing offcanvas导航。重构样式。[Kevin Bieri]

1.0.0a1 (2016-07-06)

  • 初始化版本

项目详情


下载文件

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

源代码分发

ftw.mobile-2.2.2.tar.gz (110.2 kB 查看哈希值)

上传时间 源代码

支持者