动态应用工具提示
ftw.tooltip的Python项目详细描述
安装
将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.1,4.2或4.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]
推荐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提交表单获取复选框值不起作用