Table of Contents
Preface
Chapter 1: Introducing Plone
Chapter 2: Installing Plone
Chapter 3: A Brief Tour Of Plone
Chapter 4: Create Web Pages
Chapter 5: Add News Items, Events, Links, and Files
Chapter 6: Structure Your Content
Chapter 7: Safely Manage Different Versions Of Content
Chapter 8: Delegate Content Management to Other People
Chapter 9: Manage Approvals and Other Workflow for my Content
Chapter 10: Show Additional Information to Users and Visitors
Chapter 11: Automate Tasks with Content Rules
Chapter 12: Control My Site's Configuration
Chapter 13: Set up a Repeatable Environment using Buildout
Chapter 14: Find and Install Add-Ons that Expand Plone Functionality
Chapter 15: Build Forms
Chapter 16: Create New Content Types
Chapter 17: Customize Plone
Chapter 18: Change the Look and Feel
Chapter 19: Take My Site Live
Chapter 20: Make it Go Faster
Chapter 21: Connect to Your LDAP/Active Directory Repository
Index
- Chapter 1: Introducing Plone
- What is a content management system?
- What is Plone?
- Plone: the product
- Plone: the framework
- Plone: the community
- Online
- In the real world
- What does it mean that Plone is open source?
- Planning your web site
- Summary
- Chapter 2: Installing Plone
- Background
- Downloading Plone installers
- Installing on Windows
- Running the Windows installer
- Running Plone
- Setting ports
- Starting and stopping the Plone service
- Customizing startup
- The installation layout
- Uninstalling
- Installing on Mac OS X
- Running the installer
- Custom install options
- Finishing up
- Starting and stopping Plone
- Uninstalling Plone
- Running the installer
- Installing on Linux
- Installation options
- Preparing your system
- Extra packages
- Downloading and unpacking the Unified Installer
- Running the Unified Installer
- Starting and stopping Plone
- The installation layout
- Installation options
- Installation from source
- The software stack: Python, Zope, and Plone
- Traditional source install
- A better build with buildout
- Testing your installation
- Summary
- Background
- Chapter 3: A Brief Tour Of Plone
- Logging into a Plone based site
- Portlets
- Navigating the home page
- Search
- User link
- Personal dashboard
- Change password
- Dashboard edits
- Tabs on the Home page
- Home tab
- Users tab
- News
- Events
- Breadcrumbs
- My folder
- Colophon
- Summary
- Logging into a Plone based site
- Chapter 4: Create Web Pages
- Viewing site contents
- Adding a new page
- Title
- Description
- Body Text
- Using the formatting tools
- Bold and Italics
- Left, center, and right align
- Numbered and bulleted lists
- Definition list
- Indent text
- Using the style menu
- Saving your work
- Editing a page
- Edit all parts of a page
- Edit a single part of a page
- Editing the HTML of a page
- Using full screen mode
- Creating hyperlinks
- Internal Links
- External Links
- Linking to a specific part of a page: anchors
- Defining the anchors
- Linking to an anchor from a different page
- Linking to an anchor on the same page
- Working with images
- Uploading an image
- Inserting an image on a Page
- Preparing images for the web
- Controlling the layout of a page: tables
- Publishing your work
- Publishing a page
- Publishing multiple pages
- Publishing a folder
- Summary
- Chapter 5: Add News Items, Events, Links, and Files
- News items
- Creating a news item
- The news folder
- Events
- The events folder
- Creating events
- Using the vCal and iCal links
- Creating a news item
- Links
- Files
- Adding a file
- Summary
- News items
- Chapter 6: Structure Your Content
- Real world information architecture tips
- Structuring your content
- Adding Collections to your site
- Additional Collections
- Restricting types of content
- Moving content
- Changing the order of pages
- Summary
- Real world information architecture tips
- Chapter 7: Safely Manage Different Versions Of Content
- Introducing versioning
- Creating a new version
- Viewing the version history
- Previewing previous versions
- Comparing versions
- Reverting to a previous version
- Summary
- Chapter 8: Delegate Content Management to Other People
- Creating users and groups
- Creating a user
- Allowing users to register themselves
- Creating users with initial passwords
- Roles and permissions
- Contributor
- Editor
- Reader
- Reviewer
- Manager
- Using groups to control security
- Creating groups
- Adding users to groups
- Assigning roles to specific places in your site
- Summary
- Creating users and groups
- Chapter 9: Manage Approvals and Other Workflow for my Content
- Background
- Roles
- States
- Transitions
- Changing your site's workflow
- Understanding Plone's supplied workflows
- Making our own collaboration workflow
- Summary
- Background
- Chapter 10: Show Additional Information to Users and Visitors
- What's a portlet, anyway?
- Plone's built-in portlets
- Add-on portlets
- Adding portlets
- Adding portlets to specific sections of your site
- Adding portlets to specific content types
- Adding portlets to specific groups of users
- Hiding portlets for specific content objects
- Unblocking portlets that have been blocked
- Creating new types of portlets
- Installing collective.portlet.tal
- Adding a simple TAL portlet
- Variable declaration
- Conditionals
- Choosing a random item
- Filling in the value of an HTML tag
- Attributes on an HTML tag
- More information
- Summary
- Chapter 11: Automate Tasks with Content Rules
- Understanding content rules
- Getting into action
- Receiving an email when someone adds a page
- Moving published news items to a top-level news folder
- Triggering events
- Conditions
- Actions
- Notify site users of a successfully-completed action
- Summary
- Chapter 12: Control My Site's Configuration
- The Plone control panel
- Walk-through of each preference panel
- Add/Remove Products
- Calendar
- Collection
- Content Rules
- Errors
- HTML filtering
- Language
- Maintenance
- Markup
- Navigation
- Search
- Security
- Site settings
- Themes
- Types
- Users and Groups
- Kupu visual editor
- Styles
- Zope Management Interface
- Syndicating content with RSS
- Navigation options
- Global sections
- Navigation portlet
- Summary
- Chapter 13: Set up a Repeatable Environment using Buildout
- Terms
- Why zc.buildout?
- Default settings
- Buildout quick start
- Cooking with buildout
- Buildout configuration
- Advanced configuration
- Debug configuration
- Version pinning
- Summary
- Chapter 14: Find and Install Add-Ons that Expand Plone Functionality
- Background
- Where to find products
- Using the Plone product pages
- Playing it safe with add-on products
- Product choice strategy
- Evaluating a product
- Testing a product
- Looking to the future
- Installing and testing products
- Zope installation
- Downloading and unpacking a product
- Traditional product installation
- Eggs
- Plone installation
- Installation problems
- Widely-used Plone products
- Integration
- Content management
- Community
- Feedback
- Page composition
- Media
- E-commerce
- Mashups
- Internationalization
- Development and examples
- Examples
- API exploration
- Code generators
- Summary
- Chapter 15: Build Forms
- Installing PloneFormGen
- Creating a form
- Adding a Form Folder
- Configure the basic properties of your form
- Adding and editing form fields
- Adding selection fields and multi-select fields
- Action Adapters
- Mailer Adapter
- Save Data Adapter
- Custom Script Adapter
- Overrides
- Configuration
- References
- Summary
- Chapter 16: Create New Content Types
- Background
- When do I actually need a custom content type?
- But I'm not a programmer!
- The tools—or drawing code for fun and profit
- Archetypes and object-oriented programming
- The concept of schema
- Object-oriented programming concepts
- UML and a quick introduction of the symbols you'll use
- A quick look at the programs that make it possible
- The class, the package, composition, aggregation, and generalization
- Stereotypes and tagged values
- Our bridge to happiness: ArchGenXML
- Archetypes and object-oriented programming
- Building a custom newsroom
- A rough outline of the types we'll use
- Press release
- Press kit folder
- Drawing your first new product
- Creating a package for your types
- Creating your first classes
- Generate your product!
- Adding your fields
- Adding a custom folder type
- Cleaning things up a bit
- Tagged values for greater precision
- Moving around in the code and renaming fields them
- A rough outline of the types we'll use
- Summary
- Background
- Chapter 17: Customize Plone
- Background
- Make changes to tabs, buttons, and menu options
- Document actions category
- Site actions category
- Folder buttons category
- Object category
- Object buttons category
- Portal tabs category
- User category
- Customization using templates
- Skin layer customization—The old fashioned way
- Registering and installing a new filesystem-based skin layer
- Getting started
- Zope 3 basics
- Zope 3 browser layers
- Using plone.theme to enable a custom browser layer interface
- Using browser layer technology to allow additive layers
- About Zope 3 browser resources
- Images and stylesheets
- Browser views and pages
- Using portal_view_customizations
- Finding views
- Viewlets
- Portlets
- Writing a filesystem product
- About GenericSetup
- Base profile
- Extension profiles
- An example extension profile
- Taking snapshots
- Export profile
- Import profile
- About GenericSetup
- Summary
- Chapter 18: Change the Look and Feel
- Developing on the filesystem
- Assumptions
- Setting up a development environment
- Windows users
- Generating your theme product
- Installing a theme product on a Plone site
- Updating your buildout to recognize your theme product
- Creating a Plone site
- Putting your site into debug mode
- Installing your product
- Getting started with an example theme product
- Generating the theme product
- Altering important boilerplate code
- Working with images
- Overriding the default Plone icons
- Using Firebug to inspect CSS code
- Examining the images in our theme product
- Modifying your folder structure to add an additional skin layer
- Adding a favicon
- Modifying other skin layer images
- Adding new images to our theme product
- Images as Zope 3 browser resources
- Working with stylesheets
- Stylesheets as Zope 3 resources
- Working with base properties
- Registering a new stylesheet for your theme product
- Stylesheets located in our theme product
- Basic theming of a Plone site
- Altering the logo
- Altering the image using base properties
- Altering the Logo viewlet
- Identifying if the Logo is template-based or class-based
- Customize the template that renders the Logo or create a new one
- Overriding or referencing the class that controls the Logo viewlet
- Registering the viewlet for the Logo
- Reworking the header area viewlets
- Moving the breadcrumbs to a new viewlet
- Register the breadcrumbs viewlet for the correct viewlet manager
- Ordering the viewlet in the correct location in our profiles
- Moving the Logo viewlet to a new viewlet manager
- Moving the site actions viewlet to a new viewlet manager
- Reordering the personal bar viewlet
- Styling the header
- Styling the central region of the page
- Altering the footer area viewlets
- Altering the header area title
- Backward-Compatibility of 3.x themes
- Creating the template
- Working with section colors
- Generating the theme product
- Summary
- Chapter 19: Take My Site Live
- Reverse proxying
- What is a reverse proxy and why do you need one?
- But I have to use IIS!
- Reverse proxying with Apache
- Apache virtual hosting
- Securing a production server
- Securing the ports
- Locking down the service
- Running Zope as a special user
- Turning off debug modes
- Checking Zope debug mode
- Resource registry debug modes
- Starting Zope automatically
- Linux
- Windows
- OS X
- Backing up Plone and packing down the database
- What to back up
- Backing up the Zope database
- Repozo
- Restoring backups
- Packing the ZODB
- Packing interactively
- Automated packing
- Log rotation
- Staging from development to a live server
- Synchronizing add-on products and code
- Moving object data
- Summary
- Reverse proxying
- Chapter 20: Make it Go Faster
- Getting and installing CacheFu
- Installing locally with buildout
- Installing locally as an old-style Zope 2 product
- Enabling CacheFu
- Picking a proxy
- Squid or Varnish?
- Installing a caching proxy with buildout
- Squid buildout recipe
- Varnish buildout recipe
- Installing a caching proxy without buildout
- Traditional Squid build
- Traditional Varnish build
- Generating proxy configuration from CacheFu templates
- CacheFu squid template
- CacheFu varnish template
- Setting up proxy purging
- Setting up compression and Vary headers
- Caches and cache control
- Controlling your caches
- Freshness headers
- Validation headers
- Zope memory cache control
- Other cache control mechanisms
- Exploring the CacheFu control panel
- Making it go even faster
- Starting with the default
- Aggressively-cached items
- Moderately-cached items
- Weakly-cached items
- Speed tip 1: Speed up weakly-cached items
- Speed tip 2: Speed up non-cached items
- Speed tip 3: Watch out for authenticated versus anonymous users
- Speed tip 4: Set a short lifetime on purgeable content
- Starting with the default
- Summary
- Getting and installing CacheFu
- Chapter 21: Connect to Your LDAP/Active Directory Repository
- LDAP and Active Directory
- Installing LDAP/Active Directory support
- Installing prerequisites
- Installing on Linux
- Installing on OS X
- Installing on Windows
- Installing PloneLDAP
- Installing plone.app.ldap
- Activate LDAP support
- Installing prerequisites
- Configuring LDAP connections
- Configure Global Settings
- Configure LDAP Schema
- Configure LDAP Servers
- Testing your LDAP connection
- Advanced LDAP configuration
- Summary



