售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Professional Plone 4 Development
Table of Contents
Professional Plone 4 Development
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
I. Getting Ready
1. Plone in Context
A brief history of Plone
What is new in Plone 4?
Plone-the-application and Plone-the-framework
Additional considerations when deciding on Plone
Licensing
The Plone Community, and why you belong there
Summary
2. Introduction to the Case Study
Background and high-level requirements
Modeling and mockups
Information architecture
Running the project
Summary
3. The Development Environment
Installers
Glossary of terms
Prerequisites
Creating an isolated Python environment
A minimal buildout
Buildout basics
The buildout directory
Buildout defaults
Packages and distributions
The development buildout
Development tools
Buildout extensions
mr.developer
buildout.dumppickedversions
Development Zope instance
plone.reload
Products.PdbDebugMode
Products.PrintingMailHost
Products.DocFinderTab
Test runner
Coverage reporting
Continuous integration
Omelette
The zopepy interpreter
ZopeSkel
z3c.checkversions
jarn.mkrelease
Tools in the browser
Learning to help yourself
Find the documentation
Use the Source, Luke!
Become familiar with the debugger
Look at the logs
Summary
II. Customizing Plone
4. Basics of Customization
Persistent settings and the ZODB
Where are persistent settings stored?
Using GenericSetup for configuration
GenericSetup and Plone's Add-ons Control Panel
Acquisition and skin layers
Overriding Component Architecture components
Customization best practices
Using source control
Writing tests
Considering migration requirements
Summary
5. Developing a Site Strategy
Creating a policy package
Distribution details
Changes to setup.py
Changes to configure.zcml
Updating the buildout
Working sets and component configuration
Creating an extension profile
Writing tests for customizations
Making a change with the extension profile
Activating the package
Rebuildout, restart, reapply?
Summary
6. Security and Workflow
Security primitives
Users and groups
Permissions
Roles
Manipulating permissions and roles programmatically
Keeping control with workflow
Interacting with workflow in code
Installing a custom workflow
Designing a workflow for Optilux Cinemas
Building the workflow
Exporting
Amending the policy package
Role and permission settings
Workflow definition
Mapping workflows to types
Adding the Staff group
Writing the tests
Protected and trusted code
Restricted Python
Summary
7. Using Add-ons
Finding and evaluating add-ons
Playing it safe
Installing an add-on
Amending the buildout and policy package
Adding tests
Summary
8. Creating a Custom Theme
Background
Diazo primer
Creating a Diazo theme
Creating a theme distribution
Adding the theme distribution to the buildout
Installing lxml in Mac OS X
Adding the theme and rules
Managing CSS and JavaScript resources
Adding the rest of the rules
Enabling the theme automatically
Adding tests
Variations on the theming approach
Separate public and editing interfaces
Reading the theme from a separate server
Sharing a theme across multiple systems
Overriding visual elements
Registering a browser layer
The layout policy view
Overriding templates
Summary
III. Developing New Functionality
9. Nine Core Concepts of Zope Programming
About the examples
Object publishing and traversal
Containment and URLs
Acquisition chains
Path traversal
Persistence in the ZODB
Transactions
Object persistence
ZODB BLOBs
Searching for objects using the catalog
Describing functionality with interfaces
Using interfaces in catalog searches
Component configuration with ZCML or Grokkers
Python directives and grokkers
Component registries using utilities
Global utilities
Named utilities
Local utilities
Tools
Modelling component aspects with adapters
Multi-adapters
Named adapters
Adapter factories
Views and other presentation components
Content providers and viewlets
Synchronous events
Object events
Summary
10. Custom Content Types
Content-centric design
Choosing a content type framework
Creating a distribution
Contents of the distribution
Using the Dexterity framework
What is in a content type?
Basic configuration
Schemata and fields
Form hints in the schema
Validation
Vocabularies
Rich text fields
Files, images, and BLOBs
Content reference fields
Unique content identifiers
Indexers
Content security
Add permissions
Schema permissions
Views and browser resources
Icons and stylesheets
Main content views
Installing and registering types
Add permissions
Adding catalog indexes and metadata columns
Adding the stylesheet
Integration tests
Installation and configuration in the policy package
Adjusting the security policy
Adjusting navigation tree properties
Enabling content object versioning
Site policy tests
Using the schema extender
Adding the schema extender and registry
Defining the registry settings
Creating the schema extender, vocabulary, and indexer
Adding tests
Using portlets
Creating a new portlet
Configuring and registering new portlet types
Assigning portlets automatically
Summary
11. Standalone Views and Forms
Pages without a specific context
Templates in skin layers
Views available on all objects
Views on the navigation root
Invoking standalone pages
Writing custom forms
Processing form actions
Checking form submit buttons
Performing redirects
Form input converters
Generating forms automatically
Creating a control panel view
The form controller tool
Writing new viewlets
Global template variables and helper views
Functional testing of views
Summary
12. Relational Databases
Relational databases versus the ZODB
Modeling screenings and reservations
Screening query and reservation services
Setting up the database
Database connectivity in Zope
SQLAlchemy basics
Managing database connections
Working with the database
Mapping the database tables
Querying the database
Updating and inserting records
Testing the database
Adding the user interface
Updating the Film and Cinema views
Custom traversal
Implementing the screening view
Implementing the reservations form
Tests
Summary
13. Users and their Permissions
Defining a membership policy
Updating the site policy product
Managing user metadata
Collaborative workspaces
The Pluggable Authentication Service
Anatomy of a PAS plugin
A Facebook authentication plugin
Package configuration
Facebook OAuth authentication
Testing the plugin
Installation
Summary
14. Dynamic User Interfaces with jQuery
KSS and jQuery in Plone 4
Managing JavaScript resources
Overlays
Background requests and DOM manipulation
Summary
15. Summary and Potential Enhancements
What we have achieved
Additional functionality
Additional reporting and analytics
More advanced ticketing
Internationalization
Translating content
Translating user interface strings
Summary
IV. Real-world Deployments
16. Zope on the Server
Deployment checklist
Scaling Zope
Zope Enterprise Objects (ZEO)
RelStorage
A deployment buildout using RelStorage
Moving code, configuration, and data to a server
Releasing distributions
Source distributions from tags
Tagging the build
Deploying the build
Managing data
Managing Zope processes
Supervisor
Unix init scripts
Windows services
Backups and maintenance
Backups
ZODB packing
Log monitoring and rotation
Summary
17. Setting up a Production Server
Server components
Virtual hosting
Web server
Caching reverse proxy
Load balancer
Other services
Common configurations
Deploying on UNIX with minimal configuration
Deploying on UNIX with SSL
Deploying on UNIX with maximum flexibility
Deploying on Windows
Hardware and operating system concerns
Hardware
Buildout or system packages
Operating system configuration
Caching and optimization
Application-level problems
Optimizing resources
Resource Registries resource merging
A crash course in caching
Caching configuration and rulesets
Testing and benchmarking
Summary
18. Authenticating with LDAP or Active Directory
LDAP and Active Directory
Setting up a test environment
Connecting Plone to an LDAP repository
Configuring PAS plugins manually
Summary
19. Looking to the Future
Making future releases
Managing migrations and upgrades
Migration profiles
What we have achieved
Where to go next
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜