在portlet中呈现内容提供者

collective.portlet.contentprovider的Python项目详细描述


简介

contentprovider允许您将内容提供者 将viewletmanagers放入portlet。这个工具是供有经验的人使用的 因为现实生活中的使用需要 在zcml和通用设置配置文件中重新连接viewlets和viewlet管理器。

安装是plone插件的典型做法。添加collective.portlet.ContentProvider 把你的蛋列在你的房子里。如果使用早期版本的plone, 把它加到zcml鼻塞里。

使用collective.portlet.contentprovider

使用一个真实的用例可能是最好的演示:添加一个产品。 幻灯片演示到Portlet。通常,carousel会添加其banner viewlet, products.carousel.viewlet,转到icontentviews viewletmanager。假设我们 相反,希望将其显示在collective.portlet.ContentProvider中 portlet。

viewlet不是用来作为直接内容提供者的(它们需要一个管理器)。 所以我们需要告诉contentprovider portlet显示viewletmanager 显示products.carousel.viewlet的。所以,我们可以添加一个contentprovider portlet并告诉它(在portlet编辑器的provider字段中)显示 扑通一声。内容视图。这行得通,但也会拖累其他处理的事情 通过plone.contentviews。

因此,要正确地完成这项工作,我们需要为移动的viewlet执行典型的viewlet舞蹈 从一个经理到另一个经理。我们还将利用collective.portlet.ContentProvider 注册在其他地方不使用的Viewlet管理器。所以,在我们的主题中 产品的configure.zcml, 我们需要做的就是设置经理来处理传送带

<browser:viewlet
    name="Products.Carousel.pviewlet"
    for="*"
    manager="collective.portlet.contentprovider.interfaces.IContentProviderPortlet"
    class="Products.Carousel.browser.viewlet.CarouselViewlet"
    permission="zope2.View"
    layer=".interfaces.IThemeSpecific"
/>

并且,在viewlets.xml设置文件中,在旧管理器中隐藏carousel viewlet:

<hidden manager="plone.contentviews" skinname="plonetheme.ucdvaw">
 <viewlet name="Products.Carousel.viewlet"/>
</hidden>

最后,只需添加一个contentprovider portlet并告诉它显示collective.portlet.contentprovider_vmanager。

更改日志

1.1

  • 修复初始版本中丢失的文件

1.0

  • 初始版本

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

推荐PyPI第三方库


热门话题
使用jaxb2annotateplugin和XJC工具的java自定义注释   java组织。xeustechnologies。jcl无法加载WstxInputFactory类   java JUnit在格式化字符串上比较失败   java Bukkit配置部分getKeys   如何关闭Java流?   java Struts2正则表达式配置   链式事务注释的java奇怪行为   java在两个JButton之间使用变量   java签署APK时内容会发生什么变化?   java LWJGL:Slick:3D世界中的绘图字体   如何分解Java数组?   在Java MySql中处理多个过滤器   java如何在Firebase数据库中跳过初始OnChildaded事件触发   java如何在PreviewView中使用CameraX?   在子类#中重写父类后访问父类原始方法的java已解决   java找不到类型的属性   游戏框架游戏!框架+Java