Ein Monkey Patch erlaubt die Änderung des Verhaltens von Zope oder eines Produkts ohne den Original-Code verändern zu müssen.
Ein Monkey Patch lässt sich einfach mit collective.monkeypatcher erstellen. Hierzu tragen wir in die configure.zcml-Datei folgendes ein:
<configure … xmlns:monkey="http://namespaces.plone.org/monkey"> … <monkey:patch description="TinyMCE JSON Folder listing should ignore INavigationRoot" class="Products.TinyMCE.adapters.JSONFolderListing.JSONFolderListing" original="getListing" replacement=".patches.getListing" />
Nun erstellen wir unseren Pach, indem wir aus Products.TinyMCE.adapters.JSONFolderListing.JSONFolderListing die Methode getListing in die Datei patches.py kopieren und entsprechend anpassen.
Anmerkung: Mit collective.monkeypatcherpanel wird ein Zope2-Control-Panel angelegt, das die mit collective.monkeypatcher erstellten Monkey Patches anzeigt.