我正在开发一个plone portlet,它提供了一些用户界面来更改反映在不同portlet显示中的参数,类似于日历portlet。即portlet提供了更新显示的portlet内容的链接。
plone开发人员手册http://plone.org/documentation/manual/developer-manual/client-side-functionality-javascript/kss声明不推荐使用kss。
KSS是Plones标准机制,用于将行为绑定到文档节点,但它逐渐被jQuery取代。从Plone 4.1开始,KSS已被弃用。请不要创建新的KSS相关功能。制定计划以取代现有功能。
在plone.portlets中,README.txt是关于portlet基础结构功能的很好的信息,关于portlet管理,分配等等(谢谢,我认为它来自optilude!)。
在plone.app.portlets中是calendar-portlet的相关代码,我认为可以为我开发的portlet提供一些建议。生成的portlet-html包含一个hashlet值和一个与portlet相关的dict编码,当ajax请求进入时,服务器机器会使用它。但是如何“注册”我自己的portlet来参与那个不错的部分plones提供基础设施?
在plone.app.kss中是一个名为calendar.py的文件,
# --
# Calendar in-place refreshment
# --
implements(IPloneKSSView)
@kssaction
def refreshCalendar(self, month, year, portlethash):
'In-place refreshment of the calendar.'
month, year = int(month), int(year)
self.getCommandSet('plone').refreshPortlet(portlethash, year=year, month=month)
受开发手册声明的威胁,我必须做出以下决定:
我应该使用kss-way来更新我的portlet吗?如果是这样,我如何告诉plone机器我的参数设置更新?我知道将参数放入链接的href
标记中,但plone如何知道如何处理它?是提供的功能的客户端,开箱即用的已安装的js文件等,是否已准备好处理我的特定portlet的ajax响应?
干净且只有js-ajax如何提出更新portlet的方法,特别是在客户端?
有没有办法在没有javascript和/或kss的情况下更新portlet作为后备解决方案?
我正在使用在centos平台上运行buildout的清洁Plone 4.2.4,python 2.7.3。
也许有些建议,尤其是关于portlet更新功能的客户端的具体内容以及如何帮助处于类似知识水平的人。服务器端的portlet相关代码已经足够详细记录,以了解portlet机器如何工作,但是我无法找到足够的信息来理解在portlet更新刷新往返中发生的最新情况,以及如何“捕获”提供的内容机器与我自己的portlet命令集。