z3c.menu.simple 0.6.0
pip install z3c.menu.simple
上次发布日期:
一个简单的zope3菜单系统
- 您所在的位置:
- Python中文网 >
- pypi >
- z3c.menu.simple库 >
- 正文
z3c.menu.simple的Python项目详细描述
这个包提供了一个基于viewlets的简单菜单实现。
内容
Simple Menu
z3c.menu.simple包提供了一个简单的菜单实现 允许您基于内容提供程序和viewlet实现简单的菜单。
现在有一些SimpleMenuItem菜单项实现和 一个选项卡式菜单,其中有tab/tab项和action/action项 包裹。
让我们看看这意味着什么。
ContextMenu
>>> from zope.viewlet.interfaces import IViewlet >>> from zope.viewlet.interfaces import IViewletManager
让我们创建一个菜单,这意味着我们定义了一个viewlet管理器界面:
>>> class IMenu(IViewletManager): ... """Menu viewlet manager."""
然后,现在可以使用此界面创建viewlet管理器:
>>> from zope.viewlet import manager >>> Menu = manager.ViewletManager('left', IMenu)
现在我们必须定义一个上下文:
>>> import zope.interface >>> from zope.app.container import contained >>> from zope.app.container.interfaces import IContained >>> class Content(contained.Contained): ... zope.interface.implements(IContained) >>> root['content'] = Content() >>> content = root['content']>>> from zope.publisher.browser import TestRequest >>> request = TestRequest()>>> from zope.publisher.interfaces.browser import IBrowserView >>> class View(contained.Contained): ... zope.interface.implements(IBrowserView) ... def __init__(self, context, request): ... self.__parent__ = context ... self.context = context ... self.request = request >>> view = View(content, request)>>> menu = Menu(content, request, view)
所以最初没有菜单被渲染:
>>> menu.update() >>> menu.render() u''
但现在我们为iMenu注册了一个上下文菜单项
>>> import zope.component >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer>>> from z3c.menu.simple.menu import ContextMenuItem >>> class MyLocalLink(ContextMenuItem): ... ... __name__ = u'MyLocalLink' ... urlEndings = 'myLocal.html' ... viewURL = 'myLocal.html'>>> # Create a security checker for viewlets. >>> from zope.security.checker import NamesChecker, defineChecker >>> viewletChecker = NamesChecker(('update', 'render')) >>> defineChecker(MyLocalLink, viewletChecker)>>> zope.component.provideAdapter( ... MyLocalLink, ... (zope.interface.Interface, IDefaultBrowserLayer, ... IBrowserView, IMenu), ... IViewlet, name='MyLocalLink')
现在看看如果使用imenu viewlet管理器我们会得到什么:
>>> menu.update() >>> print menu.render() <a href="http://127.0.0.1/content/myLocal.html" class="inactive-menu-item">MyLocalLink</a>
GlobalMenu
>>> from z3c.menu.simple.menu import GlobalMenuItem >>> class MyGlobalLink(GlobalMenuItem): ... ... __name__ = u'MyGlobalLink' ... urlEndings = 'myGlobal.html' ... viewURL = 'myGlobal.html'>>> defineChecker(MyGlobalLink, viewletChecker)>>> zope.component.provideAdapter( ... MyGlobalLink, ... (zope.interface.Interface, IDefaultBrowserLayer, ... IBrowserView, IMenu), ... IViewlet, name='MyGlobalLink')
现在看看如果使用imenu viewlet管理器我们会得到什么:
>>> menu.update() >>> print menu.render() <a href="http://127.0.0.1/myGlobal.html" class="inactive-menu-item">MyGlobalLink</a> <a href="http://127.0.0.1/content/myLocal.html" class="inactive-menu-item">MyLocalLink</a>
TabbedMenu
现在我们创建一个名为mastermenu的选项卡式菜单:
>>> class IMasterMenu(IViewletManager): ... """Master menu viewlet manager."""
让我们用这个界面和tabmenu作为基础创建一个viewlet管理器 课程:
>>> from z3c.menu.simple.menu import TabMenu >>> MasterMenu = manager.ViewletManager('masterMenu', IMasterMenu, ... bases=(TabMenu,))
我们像以前一样使用相同的上下文、请求和视图:
>>> masterMenu = MasterMenu(content, request, view)
所以最初没有菜单被渲染:
>>> masterMenu.update() >>> masterMenu.render() u''
现在我们注册一个菜单选项卡,它也是一个viewlet管理器:
>>> from zope.browserpage import viewpagetemplatefile >>> from z3c.menu.simple import ITab >>> from z3c.menu.simple.menu import Tab >>> class MyTabs(Tab): ... template = viewpagetemplatefile.ViewPageTemplateFile('tab.pt') >>> myTabs = MyTabs(content, request, view)
同样在这里,最初没有选项卡被呈现:
>>> myTabs.update() >>> myTabs.render() u''
现在我们注册一个菜单操作,它也是一个viewlet管理器:
>>> from z3c.menu.simple import IAction >>> from z3c.menu.simple.menu import Action >>> class MyActions(Action): ... template = viewpagetemplatefile.ViewPageTemplateFile('action.pt') >>> myActions = MyActions(content, request, view)
同样在这里,最初没有选项卡被呈现:
>>> myActions.update() >>> myActions.render() u''
在设置选项卡菜单、选项卡和操作之后,我们开始 注册选项卡菜单项:
>>> from z3c.menu.simple.menu import TabItem >>> class MyTab(TabItem): ... ... __name__ = u'MyTab' ... url = 'myTab.html' ... selectedViewNames = ['myTab.html']>>> tabChecker = NamesChecker(('update', 'render', 'css', 'selected')) >>> defineChecker(MyTab, tabChecker)>>> zope.component.provideAdapter( ... MyTab, ... (zope.interface.Interface, IDefaultBrowserLayer, ... IBrowserView, ITab), ... IViewlet, name='MyTab')
现在看看如果选项卡viewlet manager被渲染,我们会得到什么:
>>> myTabs.update() >>> print myTabs.render() <div class="tabMenu"> <span class="inactive-menu-item"> <a href="myTab.html">MyTab</a> </span> </div>
在显示如何使用选项卡菜单项之后,我们将注册菜单操作 物品。
>>> from z3c.menu.simple.menu import ActionItem >>> class MyAction(ActionItem): ... ... __name__ = u'MyAction' ... title = 'myAction'>>> actionChecker = NamesChecker(('update', 'render', 'title')) >>> defineChecker(MyAction, actionChecker)>>> zope.component.provideAdapter( ... MyAction, ... (zope.interface.Interface, IDefaultBrowserLayer, ... IBrowserView, IAction), ... IViewlet, name='MyAction')
现在看看如果使用了action viewlet manager,我们会得到什么:
>>> myActions.update() >>> print myActions.render() <div class="actionMenuWrapper"> <ul class="actionMenu"> <li class="inactive-menu-item"> <a href=""> <div>myAction</div> </a> </li> </ul> </div> <div class="clearActionMenu" />
CHANGES
0.6.0 (2010-07-14)
- 依赖于zope.browserpage而不是zope.app.pagetemplate 所需的代码已移到那里。
- 不再使用不推荐的zope.testing.doc[unit]test 取而代之的是doctest。
0.5.2 (2009-11-19)
- 删除了zope.app.zapi依赖项。
0.5.1 (2008-01-25)
- 错误:更新的元数据和文档。
0.5.0 (2008-01-21)
- 初次发布。
推荐PyPI第三方库
edxanalyticsdataapiclient
防止攻击的包
debmutate
Debian包控制文件的操作
kakaomail
使用kakao邮件发送简单文本
ipysegment
jupyter中的手动图像分割
googleimagesdownload
防止攻击的包
FrenchLefffLemmatizer
基于LEFFF的法语词义词典法语词义词典
pythonafl
防止攻击的包
gtfsrealtimebindings
防止攻击的包
espnetttsfrontend
防止攻击的包
principal-fft
提取FFT主分量进行特征提取
alsocodelib
爱搜浏览器功能库,由爱搜浏览器团队制作,爱搜浏览器团队版权所有。
zhujiabinSuperMan
这是第一个对外发布的模块,测试哦
tail-recursive
尾部递归与一个简单的装饰器api。
truth-table-generator
自动生成真值表的pythonapi
squinnie-securit
Squinnie是一个面向安全的Linux系统扫描工具
导 航 栏
项目 链接
标 签
许可证: BSD许可证(BSD 3条款)
作者信息:: 暂无
维护者
hathawsh tlotze hannosch agroszer cklinger icemac gary srichter davisagli pcardune ccomb projekt01 faassen chrisw baijum nadako roymath menesis mgedmin最新PyPI项目
- italian_vip_says
- UFx
- vofs
- fake_item_generator
- NerEva
- django-monologue
- fio_product_attribute_strict
- climailsystem
- pyshape
- tbb-devel
- npy-append-arra
- anthill.tal.macrorenderer
- odoo11-addon-stock-a
- uuuu
- contextil
- fyl_nester
- appomatic_renderable
- teacher
- chuletas
- slackbot_ce
最新Python常见问题
- jupyter运行一个旧的pytorch版本
- Jupyter运行不同版本的卸载库?
- Jupyter运行指定的键盘快捷键
- Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
- Jupyter重新加载自定义样式
- Jupyter错误:“没有名为Jupyter_core.paths的模块”
- jupyter错误:无法在随机林中将决策树视为png
- Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
- Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
- Jupyter隐藏数据帧索引,但保留原始样式
- Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
- Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
- Jupy上Python的读/写访问问题
- jupy上没有模块cv
- Jupy上的排序错误