Applications¶
Applications are used to provide additional functionality to plone.server.
Community Addons¶
Some useful addons to use in your own development:
- pserver.elasticsearch: Index content in elastic search
- pserver.zodbusers: Store and authenticate users in the database
- pserver.mailer: async send mail
Creating¶
An application is a python package that implements an entry point to tell plone.server to load it.
If you’re not familiar with how to build python applications, please read documentation on building packages before you continue on.
In your setup.py file, include an entry point like this for your application:
setup(
entry_points={
'plone.server': [
'include = pserver.myaddon',
]
})
In this example, pserver.myaddon
is your package module.
Initialization¶
Creating the plone.server
entry point only tells plone.server
that your
application is available to be used. Your config.json
file will also need
to provide the application name in the applications
array for it to be initialized.
{
"applications": ["pserver.elasticsearch"]
}
Configuration¶
Once you create a plone.server
application, there are three primary ways for it
to hook into plone.server
.
Call includeme function¶
Your application can provide an includeme
function at the root of the module
and plone.server
will call it with the instance of the root
object.
def includeme(root):
# do initialization here...
pass
Load app_settings¶
If an app_settings
dict is provided at the module root, it will automatically
merge the global plone.server
app_settings with the module’s. This allows you
to provide custom configuration.
ZCML¶
If you’re application is activated and has a configure.zcml
file in it, it
will automatically be loaded.