Portlets have a new infrastructure
Portlets have been re-implemented using the Zope 3 component architecture. Change custom portlets to use plone.app.portlets if possible. Check the Portlets Developer Manual to learn about the new portlets architecture.
Old portlets are supported via a fallback mechanism called Classic Portlet; the portlet management screen has functionality for doing inline migration for old portlets. Note that using the old portlets mechanism will affect your site performance negatively, since they will load up the old global_defines.
How to add a Classic Portlet
You will see in the Add portlet pull-down menu on the Manage portlets page an item called Classic Portlet. This item allows you to use portlets created for earlier versions of Plone.
For instance, suppose you have a Classic Portlet that you have created in your-site-instance/portal_skins/custom in the Zope Management Interface (ZMI) that displays "Hello world", using a Page Template named portlet1 with the following code:
<html> <body> <div metal:define-macro="portlet"> <p>hello world</p> </div> </body> </html>
Here's how you can include this portlet in your site:
- Login as an user with the Manage Portlets permission.
- Click the manage portlets link.
- Select Classic Portlet from the pull-down menu.
- Type the template id in the Add Classic Portlet form. In the example, portlet1.
- Leave the macro as portlet.

- Click save.
This is all you have to do to add the Classic Portlet to your folder, page, or content type.

