Book Image

Plone 3 Products Development Cookbook

Book Image

Plone 3 Products Development Cookbook

Overview of this book

The Plone Content Management System is one of the best open source CMS, because by using Plone's development framework you can extend its functionality according to the specific requirements of your website. The Plone framework has lots of components that can be used to create add-ons or extensions called Plone Products. You can optimize your site for improved usability, accessibility, and security by creating custom Plone products.This book covers recipes that will help you create custom Plone Products and implement them on your website. Every topic covered in this book is accompanied by essential fundamentals and step-by-step explanation that will help you understand it better. With the help of this book you will be able to create custom Plone products that are well suited for your website.You can read the whole book or just pick recipes relevant for you; cross references help you understand the recipes even if you do not read them in order.If you work through the book in order, you will start by setting up an example project of a news website that will be developed throughout the book. You will learn about all of the necessary tools a Plone developer must have before starting any project. You will develop the website further by detecting problems and debugging them. You will be able to modify code on-the-fly or get help on how to do some tasks by installing and using special tools such as IPython, ipdb, and PDBDebugMode. You will then create a new content type, based on an existing one, and wrap the final product into a Python egg.You will set up automated testing to prevent errors in code that have evolved in the development stage. You will use paster to automatically create a new custom content type from scratch. You will improve the performance of your application by creating lightweight content types and following other recipes covered in this book. Key features such as usability, internationalization, accessibility and security are covered to make sure that your development and customizations will be at the level of Plone core and its most remarkable add-on products.You will improve your user interface by creating simple client-side visual changes and server-side manipulation of objects. You will learn to create and manage portlets by using Portlet manager and customize your website by modifying third-party products. Finally you will learn to communicate with an external non-Python-based system and make your products available for future use.
Table of Contents (21 chapters)
Plone 3 Products Development Cookbook
Credits
About the Authors
About the Reviewers
Preface
Index

Creating a Plone site


We have no Plone site to play with yet (if you used the unified installer method, you should already have one though). A Plone site lives in the Zope Object Database (ZODB) and can be created by starting the instance and going through the Zope Management Interface (ZMI) (instructions for this a bit later). However, there is a better method to create a Plone site using the buildout automation process.

How to do it…

Edit buildout.cfg and add [plonesite] in the main parts parameter:

[buildout]
parts =
    zope2
    productdistros
    instance
    zopepy
    plonesite
...

And then add this new section at the bottom of the file:

[plonesite]
recipe = collective.recipe.plonesite
site-id = plone
instance = instance

Note

The new recipe, collective.recipe.plonesite, can be used to create or update Plone sites. We’ll learn more about it in the following chapters.

Now we’re ready to rebuild and start the instance.

./bin/buildout
./bin/instance fg

Finally, on browsing to http://localhost:8080/plone, you’ll see a Plone site.

How it works…

The new [plonesite] part makes the buildout process run the collective.recipe.plonesite recipe. With the correct parameters (site-id, instance, and some other ones that you might need), it will create or update a Plone site inside the Zope instance.

A particularly useful parameter is products, which automatically installs a list of products when buildout is run. We will use it in Opening an online Python shell on Plone using Clouseau.

For more information about this recipe and its options visit http://pypi.python.org/pypi/collective.recipe.plonesite.

There’s more…

As we said earlier, you can also create as many Plone sites as you need through the Web, that is to say, from the ZMI at the Zope root. This could be especially handy during development.

By going to http://localhost:8080/manage, you will be asked to authenticate yourself. Use the admin user you defined in the buildout.cfg file.

Depending on your Plone version, you will use different methods to create a Plone site:

Up to version 3.x of Plone, pick the Plone Site option from the combo-box at the top-right corner, and then click on the Add button (or just leave the combo-box). Then fill the short form and submit your changes. A new Plone site will be created with the ID you have specified.

With Plone 4.x, there is a new Add Plone Site button at the top-right corner, above the combo-box we have just mentioned.

As mentioned at the beginning of this chapter, we’ll incorporate more configuration options to our buildout.cfg as we create products in the project. So keep an eye open or just go to the Index of the book and look for “buildout” to go straight to them.

See also

  • Opening an online Python shell on Plone using Clouseau

  • Testing server load and benchmarking our code

  • Installing and configuring an egg repository