如何从 TAL Portlet(由 提供collective.portlet.tal
)调用文件系统中的方法?
我是这样做的:我定义了一个新的 BrowserView (createPictMenu.py
在我的例子中),然后将它注册为一个新的 portlet 组件的渲染器:
class AddressTAL(BrowserView)
def my_address()
address_bar = ViewTemplatePageFile('templates/address_left.pt') # this
is the page template I want for my new portlet.
并在configure.zcml
:
<plone:portlet
name="collective.portlet.tal.TALPortlet"
interface="collective.portlet.tal.talportlet.ITALPortlet"
assignment="collective.portlet.tal.talportlet.Assignment"
view_permission="zope2.View"
edit_permission="cmf.ManagePortal"
renderer=".browser.createPictMenu.AddressTAL"
addview="collective.portlet.tal.talportlet.AddForm"
editview="collective.portlet.tal.talportlet.EditForm"
/>
然后我转到 localhost:8080/myproject/@@manage-portlets 并TAL Portlet option
从 Add Portlet 下拉列表中选择。我通知标题作为地址,为了描述,我插入了下面的代码片段来调用address_tal()
:
<span tal:define="global li view/myaddress">
<span tal:replace="structure li" />
</span>
不幸的是,它没有用。请帮忙。