You are previewing The Definitive Guide to Plone, Second Edition.
O'Reilly logo
The Definitive Guide to Plone, Second Edition

Book Description

The Definitive Guide to Plone, Second Edition has been completely updated to cover the latest version of Plone and its newest features. This book provides a complete and detailed overview of Plone. It is divided into three parts, which cover using, configuring, and developing and customizing Plone. After the coverage of Plone's features, the case studies in the final part of the book reveal the true power of Plone. These case studies demonstrate Plone's ability to handle all kinds of requirements, while retaining an easy-to-use interface for users. As when you're working with Plone itself, you can choose where to start in this book and how best to apply it to your own needs.

With Plone, anyone can manage a website or work with an efficient intranet. Start reading The Definitive Guide to Plone, Second Edition right away, and the World Wide Web will be yours!

  • Fully covers content management with Plone in Windows, Mac OS X, and Linux

  • Shows how to configure, administer, and maintain Plone

  • Details the development of custom applications with Plone

  • Includes case studies that show how Plone is already being deployed across networks and businesses

What you'll learn

  • Plone development fundamentals

  • How to customize Plone to develop new functionality

  • About the design and architecture of Plone

  • How to use relational databases with Plone

  • How to integrate Plone with other applications

  • How to optimize and improve the performance of Plone websites

  • How to secure Plone websites

  • How to internationalize/localize Plone websites

  • How to create and use the publication work flow

Who is this book for?

This book serves as both an introduction to those who have never used this powerful CMS and as a reference for those wishing to expand and deepen their knowledge of Plone-in short, all Plone users and all those who want to use an open source CMS.

Table of Contents

  1. Copyright
  2. Foreword
  3. About the Authors
  4. About the Technical Reviewers
  5. About the Foreword Writer
  6. Introduction
  7. 1. Using Plone
    1. 1. Introducing Plone
      1. 1.1. What Is a Content Management System?
        1. 1.1.1. The History of Web Development and CMSs
        2. 1.1.2. What a CMS System Gives You
      2. 1.2. Who Needs Plone?
        1. 1.2.1. Packaging
        2. 1.2.2. Internationalization
        3. 1.2.3. Usability
        4. 1.2.4. Easy Theming
        5. 1.2.5. Registration and Personalization
        6. 1.2.6. Workflow and Security
        7. 1.2.7. Extensibility
        8. 1.2.8. Content Customization
        9. 1.2.9. Documentation
        10. 1.2.10. Reliability, Growth, and the CMS Future
      3. 1.3. The History and Origins of Plone
        1. 1.3.1. Zope and the CMF
      4. 1.4. Python
      5. 1.5. The Plone World
        1. 1.5.1. The Community
        2. 1.5.2. The Foundation
        3. 1.5.3. The Framework Team
        4. 1.5.4. Getting Involved
        5. 1.5.5. Plone.org and Plone.net
      6. 1.6. Summary
    2. 2. Installing Plone
      1. 2.1. Installing Plone on Windows 2000/XP/Vista
      2. 2.2. Configuring the Server on Windows
        1. 2.2.1. Changing the Ports
        2. 2.2.2. Starting Plone in Debug Mode
      3. 2.3. Installing Plone on Mac OS X
      4. 2.4. Installing Plone on Gnu/Linux
        1. 2.4.1. Ubuntu and Other Debian-Like Distributions
        2. 2.4.2. Installing on Fedora and Red Hat/CentOs
        3. 2.4.3. Installing with the Unified Installer
      5. 2.5. Installing Plone with zc.buildout
        1. 2.5.1. The Buildout Directory Tree
        2. 2.5.2. Managing Your Buildout
      6. 2.6. Adding a Plone Site
      7. 2.7. Installing an Add-on Product
        1. 2.7.1. Installing a Traditional Zope 2 Product
        2. 2.7.2. Installing a Product Packaged As an Egg with Buildout
      8. 2.8. Summary
    3. 3. Managing Content with Plone
      1. 3.1. Logging in As a New User
      2. 3.2. A First Look at the Plone Interface
      3. 3.3. Organizing Your Site
        1. 3.3.1. Setting Up Your Dashboard
        2. 3.3.2. Setting Up Your Preferences
      4. 3.4. Adding and Editing Site Content
        1. 3.4.1. Adding and Editing Pages
        2. 3.4.2. Adding and Editing Images
        3. 3.4.3. Adding and Editing Files
        4. 3.4.4. Adding and Editing Events
        5. 3.4.5. Adding and Editing Links
        6. 3.4.6. Adding and Editing News Items
        7. 3.4.7. Inline Editing
        8. 3.4.8. Automatic Item Locking and Unlocking
      5. 3.5. Managing and Sharing Your Content
        1. 3.5.1. Publishing Your Documents
        2. 3.5.2. Restricting Content Types in a Folder
        3. 3.5.3. Using the Display Drop-Down Menu
        4. 3.5.4. Tracking the History of Content and Versioning
        5. 3.5.5. Sharing Your Content
      6. 3.6. Gathering Disparate Elements into Coherent Collections
        1. 3.6.1. Adding a New Collection
        2. 3.6.2. Setting the Search Criteria
      7. 3.7. Finding Content in Your Site
        1. 3.7.1. Performing an Advanced Search
        2. 3.7.2. The LiveSearch Feature
      8. 3.8. Commenting Content
      9. 3.9. Summary
    4. 4. Administering a Plone Site
      1. 4.1. Main Site Setup
        1. 4.1.1. Managing Your Site Settings
        2. 4.1.2. Managing Language Settings
        3. 4.1.3. Managing Security Settings
        4. 4.1.4. Managing Theme Settings
        5. 4.1.5. Managing Mail Settings
        6. 4.1.6. Managing the Site Maintenance Options
        7. 4.1.7. Using the Error Log
        8. 4.1.8. Navigation Settings
        9. 4.1.9. Managing Search Settings
        10. 4.1.10. Adding/Removing Products in Your Site
        11. 4.1.11. Managing the Calendar Settings
        12. 4.1.12. Managing the Collection Settings
        13. 4.1.13. Markup Settings
        14. 4.1.14. Type Settings
      2. 4.2. Managing Users and Permissions
        1. 4.2.1. Users, Roles, and Groups
        2. 4.2.2. Managing Users Through the Web
          1. 4.2.2.1. Adding New Users
          2. 4.2.2.2. Changing Users Details
        3. 4.2.3. Managing Groups Through the Web
          1. 4.2.3.1. Adding New Groups
          2. 4.2.3.2. Changing Group Details
          3. 4.2.3.3. User/Group Settings
      3. 4.3. Configuring the WYSIWYG Editor
        1. 4.3.1. Main Configuration
        2. 4.3.2. Library Configuration
        3. 4.3.3. Kupu Resource Types
        4. 4.3.4. Documentation
        5. 4.3.5. Links
        6. 4.3.6. Toolbar Configuration
      4. 4.4. Managing HTML Filtering
        1. 4.4.1. Tags
        2. 4.4.2. Attributes
        3. 4.4.3. Styles
      5. 4.5. Managing Portlets
        1. 4.5.1. Managing and Adding Portlets
        2. 4.5.2. Using the Block/Unblock Portlets Controls
          1. 4.5.2.1. Parent Portlets
          2. 4.5.2.2. Group Portlets
          3. 4.5.2.3. Content Type Portlets
        3. 4.5.3. Using Classic Portlets
      6. 4.6. Managing Automatic Rules
        1. 4.6.1. Creating a New Rule
        2. 4.6.2. Assigning Rules
      7. 4.7. Summary
  8. 2. Configuring Plone
    1. 5. Behind the Scenes
      1. 5.1. Understanding Object-Oriented Web Development
      2. 5.2. Doing Through-the-Web Development: The ZMI
      3. 5.3. Understanding Object Publishing and Acquisition
      4. 5.4. Managing Content Types Through the ZMI
        1. 5.4.1. Configuring Content Types
        2. 5.4.2. Changing Icons for a Content Type
        3. 5.4.3. Looking at Actions
        4. 5.4.4. Exporting Your Configuration
        5. 5.4.5. Creating a New Content Type from an Existing Type
      5. 5.5. Understanding the Portal Catalog
        1. 5.5.1. Indexing Content
        2. 5.5.2. Searching the Catalog
        3. 5.5.3. Using Search Results
        4. 5.5.4. Tying It All Together: Making a Search Form
        5. 5.5.5. Taking Advantage of the ZCA: Searching by Interfaces
      6. 5.6. Summary
    2. 6. Customizing Plone's Look and Feel
      1. 6.1. Changing the Entire Site's Look Quickly
      2. 6.2. Introducing Plone Skins
        1. 6.2.1. Using Layers Within a Skin
        2. 6.2.2. Your First Customization
      3. 6.3. Templates and CSS: Customizing Your Plone Skin
        1. 6.3.1. DTML and ZPT
        2. 6.3.2. Managing Viewlets
        3. 6.3.3. Editing CSS
        4. 6.3.4. Examining Example Customization Snippets
      4. 6.4. Working with JavaScript
      5. 6.5. KSS: Ajax Made Easy
        1. 6.5.1. What Can You Do with KSS?
        2. 6.5.2. How to Disable KSS in Plone
      6. 6.6. Summary
    3. 7. Managing Security and Workflows
      1. 7.1. Implementing Security in Zope
        1. 7.1.1. Adding New Roles
        2. 7.1.2. Understanding the Way Zope Stores Users' Information
      2. 7.2. Using Plone Workflows
        1. 7.2.1. Using the portal_workflow Tool
        2. 7.2.2. Managing an Existing Workflow
      3. 7.3. Adding Plone Policy Support
      4. 7.4. Creating and Customizing Plone Workflows
        1. 7.4.1. Customizing an Existing Workflow
        2. 7.4.2. Duplicating and Creating New Workflows
      5. 7.5. Summary
    4. 8. Advanced User Management
      1. 8.1. The Pluggable Authentication Service (PAS)
        1. 8.1.1. The PAS in Plone
        2. 8.1.2. The Plug-in Types
        3. 8.1.3. Managing Users Through the acl_users Tool
          1. 8.1.3.1. Users Will Not Appear in Search Results
          2. 8.1.3.2. Users Can Be Searched but Cannot Authenticate
          3. 8.1.3.3. No Other Users Will Be Created in This Source
      2. 8.2. Authentication with LDAP
        1. 8.2.1. Installing Plone.app.ldap
        2. 8.2.2. Configuring Your LDAP Connection
        3. 8.2.3. Configuring Your LDAP Connection Through the ZMI
      3. 8.3. Authentication with Relational Databases
      4. 8.4. Summary
  9. 3. Developing Plone
    1. 9. Writing an Add-On Product
      1. 9.1. Structure of a Plone Product
        1. 9.1.1. Building a Regional News Reader: Requirements and Discussion
      2. 9.2. Building a Plone Product the Easy Way
      3. 9.3. Writing a Custom Content Type
      4. 9.4. Theming
      5. 9.5. Forms
        1. 9.5.1. Getting and Using z3c.form
        2. 9.5.2. Understanding the Plone Catalog
      6. 9.6. Viewlets and Portlets
      7. 9.7. Plone Configuration
      8. 9.8. Tools and Utilities
      9. 9.9. Summary
    2. 10. Integrating Plone with Other Systems
      1. 10.1. Publishing the File System
      2. 10.2. Relational Databases
        1. 10.2.1. ZODB vs. Relational Databases
        2. 10.2.2. Adopting a Relational Database in Zope
        3. 10.2.3. SQLAlchemy and Plone
      3. 10.3. Accessing Plone Without a Web Browser
        1. 10.3.1. Accessing Plone over FTP
        2. 10.3.2. Using Plone Through the WebDAV Protocol
      4. 10.4. Integrating Plone with Other Frameworks
        1. 10.4.1. RSS Integration into Plone
        2. 10.4.2. XML-RPC and Plone
        3. 10.4.3. And Now for Something Completely Different: Plone on WSGI
      5. 10.5. Summary
    3. 11. System Architectures and Deployment Configurations
      1. 11.1. Optimizing Storage Configurations
        1. 11.1.1. Configuring BLOB Storage
        2. 11.1.2. Configuring RelStorage
      2. 11.2. Asynchronous Indexing
      3. 11.3. Plone Behind a Web Server
      4. 11.4. Caching, Clustering, and Load Balancing
        1. 11.4.1. Zope Clustering with ZEO
        2. 11.4.2. Installing a Load-Balancing ZEO Cluster with buildout
        3. 11.4.3. Caching Proxies and Your Plone Site
        4. 11.4.4. Installing a Proxy Cache Server with buildout
      5. 11.5. Multiple ZODBs
        1. 11.5.1. Speeding Up Plone by Putting portal_catalog on a Different ZODB with a Stand-Alone Zope Instance
        2. 11.5.2. Speeding Up Plone by Putting portal_catalog on a Different ZODB with a ZEO Cluster
      6. 11.6. Automatic ZODB Packing
      7. 11.7. Summary
    4. 12. Case Studies
      1. 12.1. Management of Enterprise Workflow
      2. 12.2. E-Commerce with Plone: Your Business Online
        1. 12.2.1. Integrating E-Commerce Functionality into a Plone Portal
        2. 12.2.2. Atypical E-Commerce Use Cases with Plone
      3. 12.3. Automatic Handling of Documents and Images
        1. 12.3.1. Watermarks on Images
        2. 12.3.2. Dynamic Document Generation from Your Web Content
      4. 12.4. Plone and Multimedia
      5. 12.5. Handling Many Large Objects with Plone
      6. 12.6. Integration of External Applications and Single-Sign-On
      7. 12.7. Custom Member Profiles
      8. 12.8. Community Portals and Social Networks
      9. 12.9. Intranets and Document Management Systems
      10. 12.10. Plone: Faster Than Light
      11. 12.11. Summary
  10. A. Creative Commons Legal Code
    1. A.1. Attribution-NonCommercial-ShareAlike 3.0 Unported
    2. A.2. License
    3. A.3. Creative Commons Notice