动态应用工具提示

ftw.tooltip的Python项目详细描述


简介

使用ftw.tooltip,您可以动态地向每个dom添加工具提示 元素,可由jquery选择并允许title属性。

http://onegov.ch/approved.png/image

认证日期:2013年1月

安装

ftw.tooltip添加到构建配置:

[instance]
eggs =
  ftw.tooltip

导入ftw.tooltip默认配置文件。

用法

基本上,您必须注册名为ITooltipSource的适配器。 它们将被一个视图查询,该视图生成必要的js代码。

有两个示例工具提示源适配器,以显示它们是如何工作的

  • 静态文本示例。
  • 动态文本示例,读取所选dom元素的title属性。

您可以通过注册以下适配器在站点上加载这两个示例:

>>> from ftw.tooltip.demo_tooltip_source import (DemoStaticTooltipSource,
...    DemoDynamicTooltipSource)
>>> from zope.component import provideAdapter
>>> provideAdapter(DemoStaticTooltipSource, name="demo1")
>>> provideAdapter(DemoDynamicTooltipSource, name="demo2")

或者如果您使用的是zcml:

<adapter
    factory="ftw.tooltip.demo_tooltip_source.DemoStaticTooltipSource" name="demo1" />
<adapter
    factory="ftw.tooltip.demo_tooltip_source.DemoDynamicTooltipSource" name="demo2" />
  • “演示1”在门户徽标上放置工具提示。
  • “demo2”将工具提示放在每个全局导航元素上,并将给定的title属性显示为工具提示。

示例

很容易定义一个新的ITooltipSource适配器。 以下示例将显示工具提示“This is the edit bar”only on folderish类型(检查全局条件),当然只有当“documenteditable”时 css类可用:

>>> from zope.component import adapts
>>> from zope.interface import implements, Interface
>>> from ftw.tooltip.interfaces import ITooltipSource
>>> from plone.app.layout.navigation.interfaces import INavigationRoot
>>> from Products.CMFCore.interfaces import IFolderish

>>> class EditBarTooltip(object):
...     """Base demo static tooltip source. Use a given text"""
...     implements(ITooltipSource)
...     adapts(Interface, Interface)
...
...     def __init__(self, context, request):
...         self.context = context
...         self.request = request
...
...     def global_condition(self):
...         return bool(IFolderish.providedBy(self.context))
...
...     def tooltips(self):
...         return [{
...             'selector': u'#edit-bar',
...             'text': u'This is the edit bar',
...             'condition': 'div.documentEditable'}]

使用zcml注册适配器:

>>> <adapter
...    factory="your.module.EditBarTooltip" name="my_edit_bar_tooltip" />

您可能需要使用自己的工具提示布局: 只需注册一个名为“ftw_tooltip_layout”的browserview并返回您喜欢的工具提示布局。

也可以通过注册BrowserView来完全自定义工具提示参数 命名为“ftw_tooltip_custom_config”-有关更多详细信息,请查看jquerytools文档。

小型定制示例:

{
    offset: [-10, 10],
    position: 'right center',
    opacity: '0.7',
}

示例:使用现有HTML的工具提示

也可以使用html标记作为数据源(必须是selctor的同级),而不是title属性。在这种情况下,只需稍作调整即可:

ITooltipSource适配器应该在^{tt7}中返回一个js选择器$ 属性而不是文本属性:

>>> from zope.component import adapts
>>> from zope.interface import implements, Interface
>>> from ftw.tooltip.interfaces import ITooltipSource
>>> from plone.app.layout.navigation.interfaces import INavigationRoot
>>> from Products.CMFCore.interfaces import IFolderish

>>> class EditBarTooltip(object):
...     """Base demo static tooltip source. Use a given text"""
...     implements(ITooltipSource)
...     adapts(Interface, Interface)
...
...     def __init__(self, context, request):
...         self.context = context
...         self.request = request
...
...     def global_condition(self):
...         return bool(IFolderish.providedBy(self.context))
...
...     def tooltips(self):
...         return [{
...             'selector': u'#edit-bar',
...             'condition': 'div.documentEditable',
...             'content': u'.tabbedview-tooltip-data'}]

HTML结构中的唯一约束wich必须得到注意,即内容标记必须是选择器标记的同级。例如:

... <a href="/edit_bar" id="edit_bar"></a>
... <div class="tabbedview-tooltip-data">
...     <div class="tooltip-content">
...         <div class="tooltip-header">Tooltip Headeer</div>
...         <div class="tooltip-breadcrumb">Lorem ipsum ...</div>
...     </div>
... </div>

兼容性

Plone4.14.24.3一起运行。

更改日志

1.1.4(2014-03-27)

  • 不要内联渲染dynamic\u tooltips.js。 [mathias.leimgruber]

1.1.3(2014-02-10)

  • 激活动态工具提示以重新定位,使其始终可见 [elio.schmutz]

1.1.2(2013-10-21)

  • 什么都没变。

1.1.1(2013-01-21)

  • 更改ajax调用的初始化工具提示的行为。
  • onegov.ch批准:在自述文件中添加徽章。 [乔恩]

1.1(2012-11-28)

  • 添加翻译。 [乔恩]
  • 调整javscripts:使用$而不是不推荐的jq。 [毛]
  • 添加的功能允许使用HTML标记作为工具提示数据。 [毛]

1.0.5(2012-10-16)

  • 包装<;![CData[围绕内联JavaScript(W3C)。 [朱利安·因芬格]
  • 修复了页面模板文件的错误结尾。 [朱利安·因芬格]

1.0.4(2012-06-14)

  • 转义工具提示。不应呈现HTML,而应显示HTML。 这可以防止js注入。 [乔恩]

1.0.3(2012-05-09)

  • 使用新的测试构建配置。 [mathias.leimgruber]
  • 代码清理(PEP8/Pylint) [mathias.leimgruber]

1.0.2(2012-04-23)

  • 默认情况下,将延迟设置为0。 [mathias.leimgruber]
  • 触发鼠标悬停事件以激活工具提示,否则 某些工具提示配置将不起作用(例如,预延迟) [mathias.leimgruber]

1.0.1(2012-03-26)

  • 从浏览器中隐藏默认工具提示。 [mathias.leimgruber]

1.0(2012-03-19)

  • 初始释放 [mathias.leimgruber]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用