官方文档上讲的很清楚,下面,我简单的叙述下流程:
首先,你需要在你的第三方产品根目录( 例如你的产品位置为: /Plone Folder/zinstance/src/example.blog/, 那么,你的文件文应该位于 /Plone Folder/zinstance/src/example.blog/example/blog/目录中 )创建一个工具的模块文件,例如 MyTool.py, 代码如下:
from Products.CMFCore.utils import UniqueObject
from OFS.SimpleItem import SimpleItem
from Globals import InitializeClass
class MyTool (UniqueObject, SimpleItem):
""" MyTool .... """
id = 'my_tool'
meta_type= 'My Utility Tool'
plone_tool = 1
def hello(self, name="world"):
"""Hello XXX"""
return "Hello %s." % name
def method(self, args ...):
""" method ... """
passInitializeClass(MyTool)
以上定义了工具的id等属性,还有相应的工具拥有的方法。
接下来,你需要初始化该工具,在你产品根目录下的 __init__.py 文件中加入如下代码,并且还需要加入一个 图标文件 tool.gif 到产品根目录下:
from Products.CMFCore import utils
import MyTool
tools = ( MyTool.MyTool, )
def initialize(context):
utils.ToolInit('My Tool', tools=tools,
product_name='MySite', icon='tool.gif',
).initialize(context)
完成以上步骤以后,你的工具就已经实现了,你可以重启Plone,到ZMI中右上角的添加类型下拉菜单中,你就能看到你的工具 my_tool。
如何使用自定义工具呢?
答:在 Script(Python) 中,可以通过 context.my_tool.method(如:context.my_tool.hello).
在 Page Template 中,通过 here/my_tool/method等方法可以使用tool.