Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Eine External Method in Plone anlegen

Eine External Method in Plone anlegen

Eine External Method ist in Plone genau so ansprechbar wie ein Script (Python), bietet aber die volle Power von Python. Sie besteht aus 2 Teilen, einem Python-Skript im Dateisystem und einem Wrapper-Objekt in der Datenbank. Nachfolgend wird erleutert wie man beides in einem eigenen Package verwendet.

Wir legen ein Python Script in unserem package, unter Extensions/ExternalMethods.py mit folgendem Inhalt an.

def external_method(self, context):
"""
"""
#do some thing here 

Für diese Methode muss nun in der ZODB ein Wrapper angelegt werden. Im ZMI geht dies über hinzufügen einer External Method. Da wir dies aber direkt in unserem package erledigen wollen, verwenden wir hierfür ein paar Aufrufe in der setuphandler.py.

def setupVarious(context):
"""
"""
portal = context.getSite()
em_properties = {
'id': 'validate_schema_constrains',
'title': 'Validate archetypes schema constrains',
'module': 'inqbus.archetypes_schema_constrains.ValidateSchemaConstrains',
'function': 'validate_schema_constrains'
}
if em_properties['id'] not in portal.objectIds():
em = portal.manage_addProduct['ExternalMethod']
em.manage_addExternalMethod(
em_properties['id'],
em_properties['title'],
em_properties['module'],
em_properties['function']
)

Es existiert nun eine ExternalMethod mit der id "validate_schema_constrains" im Plone-Root. Diese kann wie von normalen Script (Python) gewohnt in beliebigem Kontext aufgerufen werden.

z.B. über portal.validate_schema_constrains(context)