You are previewing Building Websites with Plone: An in-depth and comprehensive guide to the Plone content management system.
O'Reilly logo
Building Websites with Plone: An in-depth and comprehensive guide to the Plone content management system

Book Description

An in-depth and comprehensive guide to the Plone content management system.

  • A comprehensive guide for Plone website administrators and developers

  • Design, build, and manage content rich websites using Plone

  • Extend Plone's skins and content types

  • Customize, secure, and optimize Plone websites

  • In Detail Built on the powerful and popular Zope application server, Plone is widely believed to be the best and most powerful open source content management system. Many regard it as the equal of, or superior to, commercially available CMS. Plone
    Plone is an open source content management system built on the powerful object-oriented Zope application server. Easy to use, powerful, extensible, and well-supported by an extensive team of developers and contributors, Plone has quickly become one of the most popular open source content management servers. Plone has support for internationalization, complies with accessibility and usability standards, can run on various platforms, and is highly extensible. Plone is ideal as an intranet and extranet server, document publishing system, portal server, and a groupware tool for collaboration between separately located entities. Like any feature-rich, complex system, Plone can have a steep initial learning curve. This makes good documentation essential for both the beginner and expert alike. For users new to Plone, this book provides a structured pathway through set up and initial customization. Experienced Plone developers will learn how to leverage the full capability of this powerful application. What you will learn from this book? Requiring only a working knowledge of Python and Zope, this book will help you gain a deep understanding of Plone.

    The book covers all aspects of understanding, implementing, and extending Plone:

  • Installing, running and managing Plone

  • The design and architecture of Plone

  • Managing users and permissions

  • Managing and publishing content

  • Using, extending, and writing Plone tools

  • Customizing the layout of Plone websites

  • Writing Plone products

  • Using relational databases with Plone

  • Integrating Plone websites with other websites and systems

  • Optimizing, securing, and improving the performance of Plone websites

  • Plone internationalization features

  • Plone real world case studies.


  • This book gives you all the skills you need to become an accomplished Plone developer. Approach This book is a practical guide to Plone. It is written in a tutorial style, using examples and case studies to take you from the basics thorough to advanced Plone implementations. Who this book is written for? Requiring only a basic knowledge of Zope and Python, this book is valuable for both beginners and experienced Plone developers.

    Table of Contents

    1. Building Websites with Plone: An in-depth and comprehensive guide to the Plone content management system
      1. Table of Contents
      2. Building Websites with Plone
      3. Credits
      4. About the Author
      5. About the Reviewers
      6. Introduction
        1. Chapter Structure
        2. What You Need for Using This Book
        3. Conventions
        4. Reader Feedback
        5. Customer Support
          1. Downloading the Example Code for the Book
          2. Errata
          3. Questions
      7. 1. Introducing Plone
        1. What Is Plone?
        2. Plone Hierarchy
          1. Operating System
          2. Python
          3. Zope
          4. CMF
          5. The Web
        3. Content Management with Plone
          1. Features
        4. The Plone Community
          1. Users
          2. Developers
        5. Plone License
        6. Summary
      8. 2. Installing and Running Plone
        1. System Requirements
          1. Server
          2. Clients
        2. Installing the Software
          1. New Installations
            1. Windows Installer
            2. Mac Installer
            3. Linux and BSD Packages
            4. From Scratch
        3. Running Plone
          1. Linux and Unix
            1. Command Line
            2. Service
          2. Windows
            1. Plone Controller
            2. Service
          3. Mac OS X
        4. Adding a Plone Site
        5. Upgrading Plone
        6. Troubleshooting
          1. Different Ports
          2. Permission Problems
          3. Password Problems
          4. Missing and Mixing Products
          5. Dependencies
          6. Zope Bugs
          7. RedHat 9 Crashes
          8. FreeBSD Segfaults
          9. Installing on Other Unix-Like Systems
        7. Summary
      9. 3. Managing Plone
        1. How to Get There
          1. Server Name
          2. Locating the Plone Web Interface
          3. Locating the ZMI
        2. The Plone Web Interface
        3. Plone Control Panel
          1. Add/Remove Products
          2. Error Log
          3. Mail Settings
          4. Portal Settings
          5. Skins
          6. Users and Groups Administration
          7. Zope Management Interface
        4. ZMI Controls
          1. Properties
            1. form_properties
            2. navigation_properties
            3. navtree_properties
            4. site_properties
          2. Types
          3. Actions
          4. Skins
          5. Workflow
          6. Catalog
          7. Form Controller
          8. Users and Groups Tools
          9. Content Type Registry
          10. Factory Tool
          11. Other Tools
          12. Products
        5. Summary
      10. 4. Users and Permissions
        1. Members
          1. Joining a Plone Site
          2. Managing Users
          3. Member Workspaces
          4. Deeper Usage
            1. Special Cases
            2. Advanced Member Management
            3. How Members Are Implemented
            4. User Properties
        2. Permissions
        3. Roles
          1. Global Roles
          2. Local Roles and the Sharing Tab
        4. Groups
          1. Managing Groups
            1. By Group
            2. By Member
          2. Advanced Discussion: How Groups Are Implemented
        5. Authentication
        6. Integrating Plone with Other Authentication Systems
          1. Extensible User Folder (XUF)
          2. Simple User Folder
          3. LDAPUserFolder
          4. etcUserFolder
          5. jcNTUserFolder
          6. smbUserFolder
          7. MySQLUserFolder
        7. Summary
      11. 5. Design and Architecture
        1. On-Disk Structure
          1. Zope Core
            1. Location
            2. Contents
          2. Instances
          3. Plone
        2. The Three-Layer Architecture
          1. Content
          2. Presentation
          3. Logic
        3. Data Storage
        4. Summary
      12. 6. Developing on the File System
        1. Why Products?
        2. Products
        3. Site Products
          1. Install Scripts
          2. CustomizationPolicies
          3. SetupWidgets
          4. Choosing an Install Method
          5. Specific Customizations
        4. Summary
      13. 7. Layout Customization
        1. Skins
          1. Layers
            1. Filesystem Directory View
          2. Skins
          3. Order of Discovery
        2. Template Systems
          1. Zope Page Templates
            1. TALES
            2. TAL
            3. METAL
            4. Empty Tags
            5. Use of ZPT in Plone
          2. DTML
            1. Namespace
            2. DTML Tags
          3. Choosing the Right Template
        3. Cascading Style Sheets
        4. JavaScript
        5. Portlets
          1. Default Portlets
            1. Navigation Tree
            2. Login
            3. Related
            4. Workflow Review
            5. News
            6. Events
            7. Recent
            8. Calendar
            9. Favorites
            10. About
          2. Creating a Portlet
        6. Actions
          1. Categories
          2. TALES Condition Names
          3. Using Actions
          4. Action Icons
        7. Forms and Navigation
          1. Forms
          2. Validators
          3. Actions
          4. Controller Scripts
          5. A Typical FormController Operation
        8. Accessibility
        9. External Editing
        10. Summary
      14. 8. Customizing and Creating Content Types
        1. Content Types
          1. Customizing Content Types
            1. Scriptable Types
          2. Creating New Content Types
            1. Creating New Content Types Using Python
            2. Creating New Content Types Using Archetypes
            3. Conceptual Overview
            4. Example
            5. Type Definition Through the Web
          3. Adapting Existing Zope Products or Python Classes
        2. Versioning
        3. Summary
      15. 9. Workflow and Publishing Content
        1. The Workflow Tool
        2. Customizing Workflows
        3. Defining Workflows in Code
          1. DCWorkflow API
            1. Permissions
            2. States
            3. Transitions
            4. Variables
            5. Worklists
            6. Scripts
          2. Workflow Tool API
          3. Example Workflow Definition
        4. Summary
      16. 10. Writing Plone Tools
        1. A New Tool
          1. Defining the Functionality
          2. Implementing the Tool
            1. Supporting Files
            2. Initialization
            3. Installation
            4. ZMI Interface
            5. Adding Functionality
        2. Using Existing Tools
          1. Current Tool Structure
        3. Summary
      17. 11. Using Relational Database Management Systems
        1. Z SQL Methods
          1. Database Adapters
          2. Composing SQL Statements
          3. Z SQL Method Skin Files
          4. Accessing Z SQL Methods
          5. Simple Result Traversal and Pluggable Brains
        2. Archetypes Storages
        3. Summary
      18. 12. Integration
        1. Virtual Hosting
          1. Virtual Hosting with Apache
          2. Other Approaches
        2. Cohabitation with Other Web Applications
        3. Syndication
        4. Using External Editors
          1. FTP and WebDAV
          2. ExternalEditor
          3. File System Representation
        5. File System Data
          1. CMFExternalFile
          2. LocalFS
        6. Other Applications
        7. Secured Mail Servers (ESMTP)
        8. Web Services
          1. REST
          2. XML-RPC
          3. SOAP
        9. Summary
      19. 13. Performance and Optimization
        1. Caches
          1. On the Server
            1. ZODB
            2. Z SQL Methods
            3. RAM Cache Manager
            4. Accelerated HTTP Cache Manager
            5. Other Cache Managers
          2. In Front of the Server
          3. On the Client and In Between
        2. Multiple Tiers
          1. ZEO Debugging
        3. Benchmarking
        4. Profiling
          1. Call Profiler
          2. Page Template Profiler
          3. Zope Profiler
            1. Zope-Level Profiling
            2. Python-Level Profiling
          4. Python Profiling
        5. An Optimization Sequence
          1. Turn Off Debug Mode
          2. Turn Up the ZODB Cache
          3. Other Tricks
          4. New or Upgraded Hardware
          5. Caching
          6. More Machines
          7. Code Improvement
            1. Python
            2. Templates
        6. Summary
      20. 14. Securing Plone
        1. Ensuring Security
        2. Platform Security
          1. Hardware
          2. Operating System
          3. System Software
        3. Human Factors
        4. Zope- and Plone-Specific Security
        5. Specific Threats to Web Applications
          1. Bad Input
          2. Cross-Site Scripting
          3. Passwords in the Clear
          4. Denial of Service Attacks
        6. Difficult or Impossible Tasks
        7. SSL
        8. Summary
      21. 15. Internationalization
        1. User Interface
          1. The PlacelessTranslationService
          2. PloneLanguageTool
          3. The Translation Mechanism
            1. Making Templates i18n Aware
            2. Text
            3. Interior Elements
            4. Attributes
            5. Complex Statements
            6. Standard Prefixes
            7. PTS in Other Circumstances
            8. Translation Files
            9. Translating Actions
        2. Content
          1. I18NLayer
          2. I18NFolder
          3. Other i18n Tools
        3. Summary
      22. Index