Plone 3 Products Development Cookbook


Plone 3 Products Development Cookbook
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
$22.94
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
$44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Reviews
Support
Sample Chapters
  • Create custom content types, add utilities, and internationalize your applications using Plone products
  • Manage site installation, configuration, and customization with code instead of manual actions that are likely to be forgotten
  • Guarantee your code operation and performance by including automatic testing and caching techniques
  • Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of instructions to complete the task as efficiently as possible.

Book Details

Language : English
Paperback : 388 pages [ 235mm x 191mm ]
Release Date : May 2010
ISBN : 1847196721
ISBN 13 : 9781847196729
Author(s) : Juan Pablo Giménez, Marcos F. Romero
Topics and Technologies : All Books, CMS and eCommerce, Content Management (CMS), Open Source, Plone, Python


Table of Contents

Preface
Chapter 1: Getting Started
Chapter 2: Using Development Tools
Chapter 3: Creating Content Types with ArchGenXML
Chapter 4: Prevent Bugs through Testing
Chapter 5: Creating a Custom Content Type with Paster
Chapter 6: Creating Lightweight Content Types
Chapter 7: Improving Product Performance
Chapter 8: Internationalization
Chapter 9: Adding Security to your Products
Chapter 10: Improving User Interface with KSS
Chapter 11: Creating Portlets
Chapter 12: Extending Third-Party Products
Chapter 13: Interacting with other Systems: XML-RPC
Chapter 14: Getting our Products ready for Production
Appendix: Creating a Policy Product
Index
  • Chapter 1: Getting Started
    • Introduction
    • Installing Python on Linux
    • Installing Plone on Linux
    • Installing Plone on Windows
    • Checking out code from a version control system
    • Creating a Plone site
  • Chapter 2: Using Development Tools
    • Introduction
    • Accessing an IPython powered shell
    • Taking advantage of an enhanced interactive Python debugger with ipdb
    • Discovering Zope/Plone APIs and docstrings with DocFinderTab
    • Opening an online Python shell on Plone using Clouseau
    • Debugging Zope exceptions with PDBDebug Mode
    • Applying code changes on-the-fly using plone.reload
  • Chapter 3: Creating Content Types with ArchGenXML
    • Introduction
    • Installing ArchGenXML
    • Configuring ArgoUML
    • Creating a model
    • Generating code
    • Customizing generated code
    • Installing the product
    • Automatically installing products in your Zope instance
  • Chapter 4: Prevent Bugs through Testing
    • Introduction
    • Working with paster-generated test suites
    • Creating a test suite with ArchGenXML
    • Creating doctests with iPython
    • Zope functional testing
    • Using Selenium functional tests
  • Chapter 5: Creating a Custom Content Type with Paster
    • Introduction
    • Creating an Archetypes product with paster
    • Adding a content type into a product
    • Changing the base class in paster content types
    • Adding fields to a content type
    • Adding a custom validator to a content type
    • Modifying the view of a content type with jQuery
  • Chapter 8: Internationalization
    • Introduction
    • Adding i18ndude support to ArchGenXML
    • Installing i18ndude standalone
    • Using i18ndude
    • Using Placeless Translation Services for i18n support
    • Using zope.i18n approach
    • Overriding others' translations
    • Using i18n with ArchGenXML
    • Using i18n with paster-created products
    • Adding i18n support to any product
    • Translating content
    • Setting language options
  • Chapter 9: Adding Security to your Products
    • Introduction
    • Creating a new permission
    • Adding a new role
    • Adding user groups
    • Testing security customizations
    • Protecting operations with permissions
    • Managing security with workflows
    • Adding configuration options in Plone control panel
  • Chapter 11: Creating Portlets
    • Introduction
    • Creating a portlet package
    • Customizing a new portlet according to our requirements
    • Testing portlets
    • Assigning portlets automatically
  • Chapter 12: Extending Third-Party Products
    • Introduction
    • Using skin layers
    • Overriding Zope 3 components
    • Customizing Zope 3 browser templates and files
    • Subscribing to others' events
    • Using the ZCA to extend a third-party product: Collage

Juan Pablo Giménez

Juan Pablo Giménez is a programmer with more than 10 years of expertise in the FOSS field. He started as a C programmer and Linux sysadmin but quickly turned to web development, founding and directing Rcom, an IT firm based in Rosario, Argentina. Five years ago he started working with Plone, his last and true love.


Marcos F. Romero

Marcos F. Romero has been a software developer since 1997. Since 1999 he has worked on numerous projects of sites and web applications. In 2007 he started to participate in Plone projects. For over 10 years he has been interested in Usability as a discipline applicable to everyday activities, which he can luckily actively employ in Inter-Cultura, a company that specializes in this discipline, where he has been working for several years.

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


Errata

- 7 submitted: last submission 13 Nov 2013

Errata type: Note | Page number: 48 |

[agx-profile]
recipe = iw.recipe.cmd
on_install=true on_update=false
cmds =
[ ! -d ${buildout:directory}/profiles ] && \
mkdir ${buildout:directory}/profiles
cd ${buildout:directory}/profiles
${buildout:directory}/bin/agx_argouml_profile
should be:
[agx-profile]
recipe = iw.recipe.cmd
on_install=true
on_update=false
cmds = mkdir ${buildout:directory}/profiles
cd ${buildout:directory}/profiles
${buildout:directory}/bin/agx_argouml_profile

 

Errata type: Note | Page number: 65 |

[plonesite]
recipe = collective.recipe.plonesite
site-id = plone
instance = instance
products =
Products.poxContentTypes
should be:
[plonesite]
recipe = collective.recipe.plonesite
site-id = plone
instance = instance
products =
poxContentTypes

 

p>Errata type: Others | Page number: 106 |

 

Open the interface file in ./src/pox.video/pox/video/interface/video.py:
should be:
> Open the interface file in ./src/pox.video/pox/video/interfaces/video.py:

 

Errata type: Note | Page number: 148 |

The first bullet in How it works... reads about changing filter_content_types and allowed_content_types properties, but we don't specify how to do this:
<property name="filter_content_types">True</property>
<property name="allowed_content_types">
<element value="Banner">
</property>

 

Errata type: Note | Page number: 158 |

The third line in the code block of step 1 should be
> from pox.banner.interfaces import IBanner
instead of
> from pox.banner.content.banner import IBanner
Besides, we forgot to add this line at the beginning of the code block:
> from zope.interface import Interface

 

Errata type: Note | Page number: 346 and 347 |

pox.customs
should be:
pox.customizations

 

Errata type: Note | Page number: 156 |

The code block in step 1 should start like this (the second line is missing in the book):
Check that our content types are properly configured
from Products.CMFCore.utils import getToolByName
pcs = getToolByName(self.portal, 'portal_cache_settings')

 

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Plone 3 Products Development Cookbook +    PostgreSQL 9.0 High Performance =
50% Off
the second eBook
Price for both: €20.39

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Set up a news website with many banners hosted in OpenX and get to know about all the tools you must have before starting any project
  • Easily detect and debug existing errors in the code by installing some special tools such as IPython, ipdb, and PDBDebugMode among others
  • Create a new content type (based on an existing one) using ArchGenXML and wrap the final product into a Python egg
  • Create a new content type from scratch automatically using paster
  • Complement your content types by placing related information in new portlets and manage these portlets
  • Improve the performance of your product by creating lightweight content types and taking advantage of other features of Plone
  • Secure some tasks and content types by setting permissions, roles, groups, workflows and configuration options
  • Protect the operation of your code from accidental changes by setting up some automatic tests such as unit tests, functional tests, and integration tests
  • Easily translate your website by using internationalization facilities in Plone
  • Display your final web page as per your requirement by adding new features to existing third-party products
  • Integrate your products with external software like Python packages or other systems via XML-RPC
  • Improve the user interface by creating simple client-side visual changes and server-side manipulation of objects with KSS

In Detail

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.

Get solutions to easily create and manage Plone add-on products to make your site better, smarter, more usable, and more secure along with a brief explanation of common use cases

Approach

The examples in this book follow a sample project creating a digital newspaper website to meet the requirements of a fictional customer who wants to place commercial advertisements all over the site. The whole book is a comprehensive collection of recipes that elaborate a series of well known use cases. You will find an organized step-by-step procedure to accomplish each task followed by detailed explanations to better understand how and why each topic was undertaken, and many links to online references and other related sections in the book that can supplement the subject in question. You can read the whole book or just pick the recipes that are relevant for you; where necessary, cross references will help you understand the recipes even if you do not read them in sequential order.

Who this book is for

This book is for programmers who have some knowledge of Python, Plone, and Zope. If you want to develop feature-rich add-on products in Plone, this book is for you. It is aimed at the development of backend features, so you need not have other web-related skills such as HTML, CSS, or JavaScript.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software